TapHome

Shelly 3EM Gen3

Packet Parser → HTTP
Inviato da
Ultimo aggiornamento: 03. 2026
Shelly 3EM Gen3

Lo Shelly 3EM Gen3 è un contatore di energia trifase su guida DIN con trasformatori di corrente integrati (fino a 63 A per fase). Si connette alla rete locale tramite Wi-Fi e fornisce misurazioni in tempo reale attraverso l’API HTTP RPC Gen2+/Gen3. TapHome interroga il dispositivo via HTTP sulla porta 80 — non è necessaria alcuna connessione cloud.

Il template fornisce quattro dispositivi contatore di energia: un contatore totale combinato e tre contatori per le singole fasi (A, B, C). Ogni contatore mostra la potenza attiva istantanea e il consumo energetico cumulativo, mentre i contatori delle singole fasi forniscono anche tensione, corrente, fattore di potenza e frequenza di rete come attributi di servizio.

Collegamento hardware

Lo Shelly 3EM Gen3 è disponibile in due varianti — 3EM-63W (modello a cavo) e 3EM-63T (modello a morsetti piatti). Entrambi si montano sopra o sotto gli interruttori automatici su guida DIN.

Il dispositivo richiede un collegamento Y (stella) a 4 fili:

  • LA, LB, LC — tre ingressi di fase, uno per fase
  • N — neutro
  • L’alimentazione è prelevata tra la fase LA e il neutro (220-240 V~ 50/60 Hz)

La protezione esterna dovrebbe essere dimensionata a 63 A con caratteristica B o C e potere di interruzione di 6 kA.

La tensione operativa massima sicura è 280 V per fase. L’intervallo di corrente è 0-63 A con saturazione a 130 A. Il superamento di questi limiti può danneggiare il dispositivo.

Configurazione

Lo Shelly 3EM Gen3 si connette tramite Wi-Fi. Durante l’importazione del template in TapHome, inserisci l’indirizzo IP del dispositivo (segnaposto predefinito 192.168.0.1).

Autenticazione

TapHome non supporta l’HTTP Digest Authentication. Assicurati che l’autenticazione sia disabilitata sul dispositivo Shelly prima di aggiungerlo a TapHome. Questa impostazione si configura nell’interfaccia web Shelly in Settings → Authentication.

Selezione del profilo

Lo Shelly 3EM Gen3 supporta due profili — Triphase (predefinito) e Monophase. Il template TapHome è progettato per il profilo Triphase, che espone un singolo componente EM (em:0) con letture per fase e totali. Assicurati che il dispositivo sia impostato sul profilo Triphase (impostazione di fabbrica).

Modalità ECO

Se la modalità ECO è abilitata sul dispositivo Shelly, può causare timeout di comunicazione a causa dell’intervallo di polling di 3 secondi del modulo TapHome. Disabilita la modalità ECO per un funzionamento affidabile.

Funzionalità del dispositivo

Misurazione energetica totale

Il dispositivo Contatore energia totale fornisce una vista combinata di tutte e tre le fasi:

  • Potenza attivatotal_act_power da EM.GetStatus, convertita da W a kW (diviso per 1000)
  • Energia cumulativatotal_act da EMData.GetStatus, convertita da Wh a kWh (diviso per 1000)
  • Corrente totale (attributo di servizio) — somma della corrente su tutte e tre le fasi
Misurazione energetica per fase

Tre contatori individuali per fase (Fase A, Fase B, Fase C) forniscono misurazioni dettagliate per ogni fase. Ogni contatore di fase mostra:

  • Potenza attiva — potenza istantanea in kW (convertita da W)
  • Energia cumulativa — consumo energetico totale in kWh (convertito da Wh)

Ogni contatore di fase espone anche quattro attributi di servizio:

  • Corrente elettrica — corrente di fase in A
  • Tensione elettrica — tensione di fase in V
  • Fattore di potenza — rapporto adimensionale tra potenza attiva e apparente
  • Frequenza di rete — frequenza di rete in Hz

I contatori per fase utilizzano un intervallo di polling di 15 secondi (rispetto ai 3 secondi del modulo), sufficiente per il monitoraggio energetico.

Diagnostica del modulo

Il template espone quattro attributi di servizio a livello di modulo:

  • Wifi — SSID della rete Wi-Fi connessa
  • Indirizzo IP — indirizzo IP del dispositivo sulla rete locale
  • Potenza del segnale — Wi-Fi RSSI in dBm
  • MAC — indirizzo MAC del dispositivo

Sono disponibili due azioni di servizio:

  • Aggiornamento FW — avvia un aggiornamento firmware all’ultima versione stabile
  • Riavvio — avvia un riavvio del dispositivo

Lo script di lettura del modulo verifica anche la disponibilità di aggiornamenti firmware e le richieste di riavvio in sospeso, mostrando avvisi in TapHome quando viene rilevata una di queste condizioni.

Funzionalità aggiuntive

Lo Shelly 3EM Gen3 espone anche la potenza apparente per fase e totale, la corrente del neutro e i contatori di energia restituita (immessa in rete) per fase e totale. Il rilevamento degli errori di sequenza delle fasi e l’archiviazione dei dati storici con risoluzione di 1 minuto sono disponibili nativamente. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Risoluzione dei problemi

Il dispositivo non risponde
  1. Verifica che lo Shelly sia connesso al Wi-Fi e abbia un indirizzo IP valido
  2. Prova a usare il nome host mDNS (Shelly3EM63G3-XXXXXXXXXXXX.local) invece dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP
  3. Apri http://{device-ip}/rpc/Shelly.GetDeviceInfo nel browser — se risponde con JSON, il dispositivo è raggiungibile
  4. Controlla che TapHome Core e Shelly siano sulla stessa rete / VLAN
Errore ct_type_not_set

Se il componente EM segnala un errore ct_type_not_set, il tipo di trasformatore di corrente non è stato configurato. Imposta il tipo CT tramite l’interfaccia web Shelly o chiamando EM.SetConfig con il valore ct_type appropriato. Usa EM.GetCTTypes per elencare i tipi supportati.

Errore sequenza fasi

Se l’errore phase_sequence appare in EM.GetStatus, le fasi sono collegate in ordine inverso (A-C-B invece di A-B-C). Ricollega le fasi nell’ordine corretto oppure abilita monitor_phase_sequence nella configurazione EM per sopprimere l’errore se l’ordine inverso è intenzionale.

I dispositivi Shelly Gen2+/Gen3 supportano fino a 6 connessioni HTTP simultanee. Questo è più dei dispositivi Gen1 (2 connessioni), ma tieni presente che ogni sistema di polling (TapHome, Home Assistant, ecc.) consuma connessioni. Evita di eseguire troppe integrazioni contemporaneamente sullo stesso dispositivo.

Come installare in TapHome

Prerequisiti

  • Dispositivo Shelly installato e acceso
  • Rete Wi-Fi locale (2,4 GHz)
  • TapHome CCU sulla stessa rete

Passaggio 1 — Collegare Shelly al Wi-Fi

Opzione A — App Shelly (consigliata):

  1. Scarica l’app Shelly (iOS / Android)
  2. Tocca +Add Device e segui la procedura guidata di associazione Bluetooth
  3. Inserisci le credenziali Wi-Fi quando richiesto

Opzione B — Modalità AP (senza app):

  1. Al primo avvio il dispositivo crea un hotspot: ShellyXXX-AABBCCDDEE
  2. Collega il tuo telefono/PC a questo hotspot
  3. Apri http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Inserisci SSID e password → Save

Shelly supporta solo reti a 2,4 GHz. Le reti a 5 GHz non appariranno nella scansione.

Passaggio 2 — Trovare l’indirizzo IP

Dopo la connessione al Wi-Fi, trova l’indirizzo IP assegnato tramite uno di questi metodi:

  • App Shelly: Dettaglio dispositivo → Device info → Indirizzo IP
  • Interfaccia web Shelly: Connettiti all’AP del dispositivo prima della configurazione Wi-Fi — l’IP viene mostrato dopo il salvataggio
  • Tabella DHCP del router: Cerca un hostname come shelly1pm-AABBCCDDEE
  • mDNS: Esegui il ping di shelly<model>-<mac>.local (es. shelly1pm-AABBCCDDEE.local) dalla stessa rete

Assegna un IP statico (prenotazione DHCP) nel tuo router per il dispositivo Shelly per evitare che l’indirizzo cambi dopo un riavvio del router.

Passaggio 3 — Configurazione in TapHome

  1. In TapHome, aggiungi un nuovo modulo Packet Parser (HTTP)
  2. IP Address: inserisci l’IP dal passaggio 2 (es. 192.168.1.50)
  3. Port: 80 (predefinito, nessuna modifica necessaria)
  4. Importa il template — TapHome interrogherà periodicamente /status per leggere lo stato del dispositivo

L’autenticazione HTTP è disabilitata per impostazione predefinita sui dispositivi Shelly. Se hai abilitato la protezione con accesso, TapHome attualmente non supporta HTTP Basic Auth — mantieni l’autenticazione disabilitata per l’integrazione con TapHome.

Dispositivi disponibili

Shelly 3EM Gen3 Modulo
Attributi di servizio
Wifi
Indirizzo IP
Potenza del segnale
MAC
Azioni di servizio
Aggiornamento FWAvvia un aggiornamento firmware all'ultima versione stabile
Riavvio
Variabili personalizzate

Shelly 3EM Gen3

Lettura (modulo)
VAR response := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF response.IsSuccess
    Sys.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Sys.GetConfig");
IF response.IsSuccess
    Sys.GetConfig := response.Content;
END

response := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF response.IsSuccess
    WiFi.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/EM.GetStatus?id=0");
IF response.IsSuccess
    EM.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/EMData.GetStatus?id=0");
IF response.IsSuccess
    EMData.GetStatus := response.Content;
END

if ! ISNULL(parsejson(Sys.GetStatus, "available_updates.stable", true))
    addwarning("New firmware update is available");
end

if parsejson(Sys.GetStatus, "restart_required", true)
    addwarning("Restart required");
end
Attributi di servizio
Wifi
PARSEJSON(WiFi.GetStatus, "ssid")
${ipAddress}
PARSEJSON(WiFi.GetStatus, "sta_ip")
${xml_signal_strength} [dB]
PARSEJSON(WiFi.GetStatus, "rssi")
MAC
PARSEJSON(Sys.GetStatus, "mac")
Azioni di servizio
${xml_update_fw}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END

Reboot
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Contatore energia totale Contatore elettrico Solo lettura

Potenza attiva trifase combinata (kW) e consumo energetico cumulativo totale (kWh)

numeric Unità: kW / kWh json_path
Attributi di servizio
Corrente elettricaSomma della corrente su tutte e tre le fasi
Variabile: EM.GetStatus

Contatore energia totale

Lettura consumo totale
return(parsejson(EMData.GetStatus,"total_act")/1000);
Lettura domanda
return(parsejson(EM.GetStatus,"total_act_power")/1000);
Attributi di servizio
${electric_current} [A]
return(parsejson(EM.GetStatus,"total_current"));
Contatore energia fase A Contatore elettrico Solo lettura

Potenza attiva fase A (kW), energia cumulativa (kWh), tensione, corrente, fattore di potenza e frequenza

numeric Unità: kW / kWh json_path
Attributi di servizio
Corrente elettrica
Tensione elettrica
Fattore di potenza
Frequenza di rete

Contatore energia fase A

Lettura consumo totale
return(parsejson(EMData.GetStatus,"a_total_act_energy")/1000);
Lettura domanda
return(parsejson(EM.GetStatus,"a_act_power")/1000);
Attributi di servizio
${electric_current} [A]
return(parsejson(EM.GetStatus,"a_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"a_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"a_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"a_freq"));
Contatore energia fase B Contatore elettrico Solo lettura

Potenza attiva fase B (kW), energia cumulativa (kWh), tensione, corrente, fattore di potenza e frequenza

numeric Unità: kW / kWh json_path
Attributi di servizio
Corrente elettrica
Tensione elettrica
Fattore di potenza
Frequenza di rete

Contatore energia fase B

Lettura consumo totale
return(parsejson(EMData.GetStatus,"b_total_act_energy")/1000);
Lettura domanda
return(parsejson(EM.GetStatus,"b_act_power")/1000);
Attributi di servizio
${electric_current} [A]
return(parsejson(EM.GetStatus,"b_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"b_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"b_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"b_freq"));
Contatore energia fase C Contatore elettrico Solo lettura

Potenza attiva fase C (kW), energia cumulativa (kWh), tensione, corrente, fattore di potenza e frequenza

numeric Unità: kW / kWh json_path
Attributi di servizio
Corrente elettrica
Tensione elettrica
Fattore di potenza
Frequenza di rete

Contatore energia fase C

Lettura consumo totale
return(parsejson(EMData.GetStatus,"c_total_act_energy")/1000);
Lettura domanda
return(parsejson(EM.GetStatus,"c_act_power")/1000);
Attributi di servizio
${electric_current} [A]
return(parsejson(EM.GetStatus,"c_current"));
${electric_voltage} [V]
return(parsejson(EM.GetStatus,"c_voltage"));
${power_factor}
return(parsejson(EM.GetStatus,"c_pf"));
${grid_frequency} [Hz]
return(parsejson(EM.GetStatus,"c_freq"));
Connessione: Packet Parser → HTTP
Possibili miglioramenti (8)
  • Phase A Apparent Power — Apparent power in VA, available per phase — could complement active power
  • Total Apparent Power — Sum of apparent power on all phases [VA]
  • Neutral Current — Current on neutral conductor [A]
  • Total Returned Energy — Total active returned energy [Wh] — relevant for solar/grid feed-in
  • Phase A Returned Energy — Per-phase returned energy [Wh] — same available for B and C
  • Uptime — Seconds since last reboot, available in Sys.GetStatus
  • Free RAM — Available RAM in bytes
  • Phase Sequence Monitoring — Enable/disable phase sequence error detection via EM.SetConfig

Fonti