TapHome

Shelly 1PM Gen3

Packet Parser → HTTP
Inviato da
Ultimo aggiornamento: 03. 2026
Shelly 1PM Gen3

Lo Shelly 1PM Gen3 è un relè Wi-Fi compatto con misurazione della potenza integrata. Si inserisce dietro un interruttore a parete standard e può controllare un circuito fino a 16 A (3500 W a 230 V AC) o 10 A (a 24–30 V DC). TapHome comunica con il dispositivo via HTTP utilizzando l’API Gen2+/Gen3 JSON-RPC 2.0 sulla rete locale — non è necessaria alcuna connessione cloud.

A differenza dello Shelly 1PM originale (Gen1), che utilizza un’API REST con l’endpoint /status, la versione Gen3 usa l’API RPC con chiamate di metodo come /rpc/Switch.GetStatus. L’hardware Gen3 dispone di un processore ESP più veloce con 8 MB di memoria flash, supporta fino a 6 connessioni HTTP simultanee (contro 2 del Gen1) ed è predisposto per Matter.

Il template fornisce il controllo del relè e un contatore elettrico che rileva il consumo energetico in tempo reale e il consumo cumulativo.

Configurazione

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

L’autenticazione deve essere disabilitata sul dispositivo Shelly per l’integrazione con TapHome. TapHome non supporta l’HTTP Digest Auth utilizzata dai dispositivi Gen2+/Gen3. Aprire l’interfaccia web Shelly (http://{device-ip}) → Impostazioni → Autenticazione e assicurarsi che sia disattivata.

Se la modalità ECO è abilitata sul dispositivo Shelly, può causare timeout di comunicazione a causa degli intervalli di polling rapidi utilizzati dal template (2,5–3 secondi). Disabilitare la modalità ECO nell’interfaccia web Shelly se si riscontrano problemi di connettività intermittenti.

Funzionalità del dispositivo

Controllo relè

Il template espone il relè come interruttore. Lo stato del relè viene letto dalla risposta di /rpc/Switch.GetStatus?id=0 (campo output, booleano) e controllato tramite /rpc/Switch.Set?id=0&on=true o on=false.

Misurazione della potenza

Il contatore elettrico integrato legge due valori dalla risposta di /rpc/Switch.GetStatus?id=0:

  • Potenza istantaneaapower in watt, convertita in kW dal template
  • Consumo totaleaenergy.total in wattora, convertito in kWh dal template

Il contatore espone anche tre attributi di servizio:

  • Corrente elettrica — corrente di carico in ampere (campo current)
  • Tensione elettrica — tensione di alimentazione in volt (campo voltage)
  • Temperatura — temperatura interna del dispositivo in °C (campo temperature.tC)

Il contatore è in sola lettura — si aggiorna automaticamente ad ogni ciclo di polling (intervallo di 15 secondi).

Diagnostica di servizio

Il template espone attributi di servizio a livello di modulo per il monitoraggio del dispositivo:

  • WiFi — nome SSID della rete connessa
  • Indirizzo IP — IP attuale della stazione
  • Potenza del segnale — WiFi RSSI in dB
  • MAC — indirizzo MAC del dispositivo

Lo script di lettura del modulo verifica anche la disponibilità di aggiornamenti firmware e la necessità di riavvio, mostrandoli come avvisi nell’interfaccia TapHome.

Azioni di servizio

A livello di modulo sono disponibili due azioni di servizio:

  • Aggiornamento firmware — avvia un aggiornamento firmware all’ultima versione stabile tramite /rpc/Shelly.Update
  • Riavvio — avvia un riavvio del dispositivo tramite /rpc/Shelly.Reboot
Funzionalità aggiuntive

Lo Shelly 1PM Gen3 espone nelle sue risposte RPC anche il fattore di potenza, la frequenza di rete (Hz), i contatori di energia restituita/esportata, lo stato dell’ingresso fisico (input:0), il tempo di attività, l’utilizzo della RAM e l’ora del dispositivo. È disponibile un timer di spegnimento automatico tramite il parametro toggle_after, e la protezione da sovraccarico può essere configurata tramite Switch.SetConfig → power_limit. I contatori di energia possono essere azzerati tramite /rpc/Switch.ResetCounters. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Risoluzione dei problemi

Il dispositivo non risponde
  1. Verificare che lo Shelly sia connesso al Wi-Fi e abbia un indirizzo IP valido
  2. Provare a utilizzare il nome host mDNS (shelly1pmg3-AABBCCDDEE.local) al posto dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP
  3. Aprire http://{device-ip}/rpc/Shelly.GetDeviceInfo nel browser — se risponde con JSON, il dispositivo è raggiungibile
  4. Verificare che TapHome Core e Shelly siano sulla stessa rete / VLAN
  5. Confermare che l’autenticazione è disabilitata sul dispositivo Shelly
I valori di potenza mostrano zero
  1. Confermare che il carico è collegato attraverso il relè Shelly (non bypassato)
  2. Verificare che il relè sia acceso — il contatore rileva solo quando la corrente scorre attraverso il relè
  3. Interrogare manualmente /rpc/Switch.GetStatus?id=0 e verificare che apower restituisca un valore diverso da zero
Avviso di sovratemperatura

Lo Shelly 1PM Gen3 dispone di protezione termica interna. Se la temperatura del dispositivo supera i limiti di sicurezza, il valore temperature negli attributi di servizio del contatore aumenterà. Assicurare una ventilazione adeguata attorno al dispositivo, specialmente durante la commutazione continua di carichi elevati.

I dispositivi Shelly Gen2+/Gen3 supportano fino a 6 connessioni HTTP simultanee. Sebbene questo sia un miglioramento significativo rispetto al Gen1 (2 connessioni), evitare il polling simultaneo da troppi sistemi (TapHome, Home Assistant, script personalizzati) per prevenire l’esaurimento delle connessioni.

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 1PM Gen3 Modulo
Attributi di servizio
WiFi
Indirizzo IP
Potenza del segnale
MAC
Azioni di servizio
Aggiornamento firmware
Riavvio
Variabili personalizzate

Shelly 1PM 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

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
Interruttore Interruttore
boolean
Valori / Stati: ON · OFF

Interruttore

Lettura stato interruttore
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
var status := x.Content;
return(PARSEJSON(status, "$.output", true));
Scrittura stato interruttore
VAR response := SENDHTTPREQUEST("rpc/Switch.Set?id=0&on=" + if(St,"true","false"));
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
Contatore elettrico Contatore elettrico Solo lettura

Misurazione consumo energetico — potenza istantanea (kW) ed energia cumulativa (kWh) con letture di corrente, tensione e temperatura

numeric Unità: kW / kWh
Attributi di servizio
Corrente elettrica
Tensione elettrica
Temperatura

Contatore elettrico

Lettura consumo totale
return(parsejson(parsejson(Switch.GetStatus,"aenergy"), "total")/1000);
Lettura domanda
return(parsejson(Switch.GetStatus,"apower")/1000);
Lettura (modulo)
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=0");
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
Attributi di servizio
${electric_current} [A]
return(parsejson(Switch.GetStatus,"current"));
${electric_voltage} [V]
return(parsejson(Switch.GetStatus,"voltage"));
${temperature} [°C]
return(parsejson(parsejson(Switch.GetStatus,"temperature"), "tC"));
Connessione: Packet Parser → HTTP
Possibili miglioramenti (10)
  • Power Factor — Power factor value, available in Switch.GetStatus response for metered devices
  • Network Frequency — AC network frequency in Hz, available in Switch.GetStatus response
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Input State — Physical switch/button input state, available via /rpc/Input.GetStatus?id=0
  • Uptime — Seconds since last reboot, available in Sys.GetStatus response
  • RAM Usage — Total and free RAM in bytes, available in Sys.GetStatus response
  • Device Time — Current device time in HH:MM format, available in Sys.GetStatus response
  • Auto-off Timer — Auto-reset timer in seconds via toggle_after parameter, could be added as switch parameter
  • Reset Energy Counters — Resets energy measurement counters (aenergy, ret_aenergy)
  • Overpower Protection — Configurable power limit threshold in Watts, relay turns off when exceeded

Fonti