TapHome

Shelly Plus 1PM

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

Lo Shelly Plus 1PM è un interruttore relè Wi-Fi Gen2+ compatto con misurazione della potenza integrata. Si installa dietro un interruttore a parete standard e può controllare un circuito fino a 16 A (3500 W a 230 V AC) o 10 A (30 V DC). Il dispositivo supporta alimentazione 110-240 VAC o 24-30 VDC, rendendolo adatto sia per installazioni a tensione di rete che a bassa tensione. TapHome comunica con il dispositivo localmente tramite Wi-Fi — non è richiesta alcuna connessione cloud.

Sono disponibili due template TapHome: un template HTTP che interroga l’API RPC Gen2+ del dispositivo, e un template MQTT che riceve dati tramite un broker MQTT. Entrambi espongono gli stessi due dispositivi — un contatore di energia e un interruttore relè.

Configurazione

Template HTTP

Il template HTTP richiede solo l’indirizzo IP del dispositivo (valore predefinito 192.168.0.1). TapHome interroga l’endpoint /rpc/Switch.GetStatus?id=0 sia per lo stato del relè che per i dati di misurazione della potenza. Il modulo memorizza la risposta JSON in una variabile status così che i singoli script dei dispositivi possano analizzare i dati senza chiamate HTTP ridondanti.

Template MQTT

Il template MQTT richiede tre parametri durante l’importazione:

  • IP del broker MQTT — l’indirizzo IP del broker MQTT (non del dispositivo Shelly stesso)
  • Porta del broker MQTT — predefinita 1883
  • MQTT Client ID dello Shelly — formato shellyplus1pm-{deviceid}, si trova nell’interfaccia web Shelly in Settings > MQTT Settings > Client ID

Dopo aver abilitato MQTT sullo Shelly Plus 1PM (Settings > MQTT), TapHome si iscrive a shellyplus1pm-{deviceid}/status/switch:0 e pubblica comandi di controllo su shellyplus1pm-{deviceid}/command/switch:0.

Funzionalità del dispositivo

Controllo relè

Il template espone il relè come dispositivo interruttore. Lo stato del relè viene letto dal campo output (boolean) e controllato tramite /rpc/Switch.Set?id=0 con on=true o on=false (HTTP) o pubblicando on/off sul topic di comando (MQTT).

Il template HTTP interroga il relè con un intervallo di 2,5 secondi, fornendo un feedback dello stato quasi in tempo reale. Il template MQTT riceve aggiornamenti in tempo reale tramite lo script listener.

Misurazione della potenza

Il contatore di energia integrato legge due valori dalla risposta Switch.GetStatus:

  • Potenza istantaneaapower in watt, convertita in kW dal template (divisione per 1000)
  • Energia cumulativaaenergy.total in wattora, convertita in kWh dal template (divisione per 1000)

Il contatore è di sola lettura — si aggiorna automaticamente a ogni ciclo di polling (HTTP) o con ogni messaggio di stato MQTT.

Il template HTTP espone anche tre attributi di servizio sul contatore di energia:

AttributoUnitàDescrizione
CorrenteACorrente assorbita istantanea
TensioneVTensione di rete RMS
Temperatura°CTemperatura interna del dispositivo

Il template MQTT espone temperatura interna, tensione e corrente come attributi di servizio a livello di modulo con gli stessi dati, analizzati dal payload di stato MQTT.

Funzionalità aggiuntive

Lo Shelly Plus 1PM espone tramite l’API RPC anche fattore di potenza, frequenza di rete, energia restituita (per misurazione bidirezionale), stato dell’ingresso fisico, intensità del segnale Wi-Fi, indirizzo MAC, tempo di attività, utilizzo RAM e ora del dispositivo. Sono disponibili anche aggiornamento firmware, riavvio dispositivo, timer di spegnimento automatico, reset contatore energia e configurazione protezione sovraccarico. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.

Risoluzione dei problemi

Il dispositivo non risponde (HTTP)
  1. Verifica che lo Shelly sia connesso al Wi-Fi e abbia un indirizzo IP valido
  2. Prova a utilizzare l’hostname mDNS (shellyplus1pm-AABBCCDDEE.local) invece dell’indirizzo IP — l’IP potrebbe essere cambiato dopo un rinnovo DHCP
  3. Apri http://{ip-dispositivo}/rpc/Shelly.GetDeviceInfo nel browser — se risponde con JSON, il dispositivo è raggiungibile
  4. Verifica che TapHome CCU e Shelly siano sulla stessa rete / VLAN
  5. Assicurati che l’autenticazione HTTP Digest sia disabilitata nell’interfaccia web dello Shelly — TapHome non supporta richieste autenticate
I messaggi MQTT non arrivano
  1. Verifica che MQTT sia abilitato nell’interfaccia web dello Shelly (Settings > MQTT)
  2. Conferma che indirizzo e porta del broker siano corretti sia nel dispositivo Shelly che nelle impostazioni del modulo TapHome
  3. Verifica che la variabile personalizzata plug1topic corrisponda esattamente al MQTT Client ID del dispositivo Shelly (es. shellyplus1pm-AABBCCDDEE)
  4. Usa un client MQTT (es. MQTT Explorer) per iscriverti a shellyplus1pm-# e verificare che il dispositivo pubblichi messaggi
Le letture di potenza mostrano zero
  1. Conferma che il carico sia collegato attraverso il relè Shelly (non bypassato)
  2. Verifica che il relè sia acceso — il contatore misura solo quando la corrente scorre attraverso il relè
  3. Interroga manualmente /rpc/Switch.GetStatus?id=0 e verifica che apower restituisca un valore diverso da zero
Risposta lenta o timeout
  1. I dispositivi Gen2+ supportano fino a 6 connessioni HTTP simultanee (contro 2 su Gen1) — evita però il polling eccessivo da più sistemi
  2. Disabilita la modalità ECO nell’interfaccia web dello Shelly se abilitata — mette il dispositivo in modalità sleep tra i polling e può causare timeout con intervalli di polling brevi
  3. Utilizza un IP statico o una prenotazione DHCP per evitare cambi di indirizzo
  4. Considera il passaggio al template MQTT in ambienti multi-sistema — MQTT evita completamente il problema del limite di 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 Plus 1PM Modulo
Variabili personalizzate
Contatore elettrico Contatore elettrico Solo lettura

Potenza istantanea (kW) ed energia cumulativa (kWh) con diagnostica corrente, tensione e temperatura

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

Contatore elettrico

Lettura consumo totale
return(parsejson(parsejson(status,"aenergy"), "total")/1000);
Lettura domanda
return(parsejson(status,"apower")/1000);
Lettura (modulo)
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
status := x.Content;
Attributi di servizio
${current} [a]
return(parsejson(status,"current"));
${electric_voltage} [v]
return(parsejson(status,"voltage"));
${temp} [C]
return(parsejson(parsejson(status,"temperature"), "tC"));
Interruttore Interruttore
boolean
Valori / Stati: ON · OFF

Interruttore

Lettura stato interruttore
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
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
Connessione: Packet Parser → HTTP
Possibili miglioramenti (16)
  • 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
  • WiFi SSID — Connected WiFi network name, available via /rpc/WiFi.GetStatus
  • WiFi Signal Strength — WiFi RSSI in dBm, available via /rpc/WiFi.GetStatus
  • IP Address — Device IP address, available via /rpc/WiFi.GetStatus
  • MAC Address — Device MAC address, available via /rpc/Sys.GetStatus
  • 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
  • Firmware Update — Trigger firmware update to stable channel, available via Shelly.Update RPC method
  • Reboot — Reboot the device, available via Shelly.Reboot RPC method
  • 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