
Lo Shelly 3EM è un contatore di energia trifase Wi-Fi della prima generazione di dispositivi Shelly (Gen1). Misura potenza attiva, tensione, corrente, fattore di potenza ed energia totale in modo indipendente per ciascuna delle tre fasi tramite tre TA apribili da 120 A inclusi e dispone di un relè integrato da 10 A, tipicamente usato per pilotare la bobina di un contattore di potenza esterno. TapHome comunica con il dispositivo via MQTT — il dispositivo invia le misure per fase a un broker, il modulo TapHome PacketParser si iscrive al ramo dei topic shellies/# e instrada i valori a quattro dispositivi figli (3 contatori elettrici + 1 interruttore contattore).
Questa è la variante MQTT del template Shelly 3EM. È disponibile anche una variante HTTP — scegli MQTT se hai già un broker MQTT locale, vuoi aggiornamenti push invece del polling, oppure devi condividere il contatore con più consumatori (TapHome più un altro sistema). Abilitare MQTT sul firmware Gen1 disabilita Shelly Cloud — i due servizi non possono funzionare contemporaneamente.
Configurazione
Abilitare MQTT nello Shelly 3EM
Apri l’interfaccia web dello Shelly 3EM (http://{device-ip} o http://shelly3em-{MAC}.local) e configura il client MQTT:
- Vai su Internet & Security → Advanced - Developer Settings
- Seleziona Enable action execution via MQTT
- Compila Server con
{indirizzo IP del broker MQTT}:{port}— tipicamente192.168.1.10:1883 - (Opzionale) Imposta Username e Password se il broker richiede autenticazione
- Clicca SAVE — il dispositivo si riavvia e si connette al broker
I dispositivi Shelly Gen1 non supportano MQTT su TLS. La comunicazione tra dispositivo e broker è in plain TCP non cifrato sulla porta 1883. Username e password vengono inviati in chiaro. Usa il broker MQTT solo su una rete locale fidata.
Abilitare MQTT disabilita automaticamente Shelly Cloud sul firmware Gen1. Per ripristinare, deseleziona MQTT e riabilita Cloud in Internet & Security.
Trovare il Device ID
Il template TapHome si iscrive a shellies/shellyem3-{dID}/#, dove {dID} è il suffisso MAC del dispositivo usato come prefisso del topic MQTT.
Per trovarlo nell’interfaccia web di Shelly 3EM:
- Apri l’interfaccia web del dispositivo nel browser
- Vai su Settings → Device Info
- Copia la prima stringa Device ID (NON il valore tra parentesi) — corrisponde all’indirizzo MAC dell’interfaccia WiFi (es.
DC4F227649A1)
In alternativa, chiama GET http://{device-ip}/settings e leggi il campo mqtt.id.
Configurazione del template
Dopo aver importato il template in TapHome, imposta i tre parametri di import:
| Parametro | Descrizione | Esempio |
|---|---|---|
| IpAddress | Indirizzo IP del broker MQTT | 192.168.1.10 |
| Port | Porta del broker MQTT | 1883 |
| dID | Device ID (suffisso MAC) dello Shelly 3EM | DC4F227649A1 |
Il modulo si iscrive quindi a shellies/# (QoS 0) e gli script listener instradano i messaggi emeter e relay per fase ai corrispondenti dispositivi figli. Il periodo di aggiornamento MQTT predefinito del dispositivo è 30 secondi — può essere ridotto tramite GET http://{device-ip}/settings?mqtt_update_period=N (valore 0 per pubblicare solo al cambio di stato).
Il prefisso del topic MQTT in linea è
shellyem3-{MAC}, mentre il nome host mDNS del dispositivo èshelly3em-{MAC}.local— Shelly usa due forme diverse per lo stesso dispositivo. Il template segue l’effettivo prefisso del topic MQTT (shellyem3-). Se i messaggi MQTT non arrivano, iscriviti ashellies/#con un client MQTT per verificare quale prefisso il firmware sta effettivamente usando.
Funzionalità del dispositivo
Potenza attiva ed energia totale per fase
Il template crea tre dispositivi contatore elettrico — uno per ogni fase (TA 1 → fase A, TA 2 → fase B, TA 3 → fase C). Ogni contatore legge due valori:
- Potenza attiva — potenza istantanea da
shellies/shellyem3-{dID}/emeter/{i}/power(W), divisa per 1000 e memorizzata come kW - Energia totale consumata — energia cumulativa per l’intero ciclo di vita da
.../emeter/{i}/total(Wh), divisa per 1000 e memorizzata come kWh
Ogni TA è dimensionato per 120 A ed è non invasivo (clip-on, senza tagliare il cavo). I 3 TA inclusi sono singolarmente marcati e calibrati — NON sono intercambiabili tra i canali.
Parametri elettrici per fase
Ogni contatore espone quattro service attribute per il monitoraggio avanzato:
- Tensione [V] — tensione RMS fase-neutro sulla fase corrispondente (
.../emeter/{i}/voltage) - Corrente [A] — corrente RMS misurata dal TA corrispondente (
.../emeter/{i}/current) - Fattore di potenza — rapporto tra potenza attiva e apparente, intervallo da −1.00 a 1.00 (
.../emeter/{i}/pf) - Energia restituita [Wh] — energia totale restituita alla rete sulla fase corrispondente (
.../emeter/{i}/total_returned), utile per misure PV / bidirezionali
La combinazione di total (consumata) e total_returned (esportata) per fase rende il template adatto a installazioni solari / con immissione in rete.
Reset dei contatori di energia
Ogni fase dispone di un service action Reset Total che pubblica reset_totals su shellies/shellyem3-{dID}/emeter/{i}/command. Questo azzera i contatori total e total_returned per la fase specifica — utile quando si riassegna l’uso del contatore o si avvia un nuovo periodo di misura.
Relè contattore
Il relè da 10 A integrato è esposto come dispositivo interruttore. Lo stato è letto da shellies/shellyem3-{dID}/relay/0 (on → 1, qualsiasi altro valore → 0) e si controlla pubblicando on o off su .../relay/0/command. Il relè è dimensionato per 10 A / 240 V AC e tipicamente viene cablato tramite i morsetti I (ingresso fase) e O (uscita relè) per pilotare la bobina di un contattore di potenza esterno per la commutazione di carichi più elevati.
Il template MQTT non pubblica una somma trifase della potenza (
total_powerè disponibile solo via HTTP su Gen1). Crea un dispositivo virtuale TapHome che sommi i tre valori di potenza per fase se ti serve un singolo valore di potenza domestica.
Risoluzione dei problemi
Nessun messaggio MQTT ricevuto
- Conferma che MQTT è abilitato nell’interfaccia web di Shelly (Internet & Security → Advanced - Developer Settings → Enable action execution via MQTT) e che il dispositivo si è riavviato dopo il salvataggio
- Verifica che IP e porta del broker nel dispositivo corrispondano ai parametri di import
IpAddress/Portin TapHome - Iscriviti a
shellies/#con un client MQTT (es. MQTT Explorer,mosquitto_sub) e controlla se il dispositivo pubblica qualcosa — verifica che il prefisso del topic effettivo (shellyem3-{dID}) corrisponda aldIDinserito in TapHome - Assicurati che il broker MQTT sia in esecuzione e raggiungibile sia dallo Shelly 3EM sia dal TapHome Core
- Se l’IP del dispositivo è cambiato di recente, prova a connetterti tramite il nome host mDNS
shelly3em-{MAC}.localper verificare la raggiungibilità in rete
I valori di energia sono zero o non plausibili
- Conferma che ogni TA è collegato all’ingresso corretto — il TA marcato
IAdeve essere cablato ai morsettiIA-/IA+,IBaIB-/IB+,ICaIC-/IC+. I TA sono calibrati per canale e non sono intercambiabili. - Verifica che la freccia sul corpo del TA indichi il verso del flusso di corrente (dalla sorgente al carico). Un TA invertito produce un fattore di potenza negativo e inverte la classificazione consumo / restituzione.
- Controlla che gli ingressi di tensione
VA,VB,VCsiano collegati alle stesse fasi misurate dai TA — un abbinamento errato tensione / corrente produce valori di potenza e fattore di potenza scorretti. - Se una sola fase legge zero mentre le altre sono corrette, scambia quel TA con uno noto funzionante per isolare il problema tra TA e circuito.
Impossibile abilitare MQTT — Cloud è in uso
Sul firmware Gen1, MQTT e Shelly Cloud sono mutuamente esclusivi. Se la casella Enable action execution via MQTT appare disabilitata, disattiva prima Shelly Cloud in Internet & Security → Cloud, poi riapri le impostazioni MQTT.
Lo storico Shelly Cloud è scomparso dopo aver abilitato MQTT
È un comportamento atteso — abilitare MQTT disabilita Cloud, inclusa la sua conservazione storica di 365 giorni. Se hai bisogno sia del controllo MQTT in tempo reale in TapHome sia dello storico a lungo termine, instrada i messaggi MQTT attraverso il tuo broker e mantieni i dati storici in TapHome (o in un sistema di logging separato).
Ogni TA deve essere sempre collegato ai morsetti dello Shelly 3EM prima di essere agganciato attorno a un conduttore in tensione. La tensione indotta su un avvolgimento secondario aperto del TA può raggiungere livelli pericolosi e danneggiare il TA.