
Lo Shelly Plus 1PM è un compatto relè Wi-Fi Gen2+ 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 (30 V DC). Questa è la variante MQTT del template TapHome — il dispositivo comunica tramite un broker MQTT anziché tramite polling HTTP diretto, utile in ambienti con più controller o quando il dispositivo si trova in una VLAN diversa.
Il template espone due dispositivi: un Contatore elettrico per il monitoraggio di potenza ed energia e un Interruttore per il controllo del relè. Tre attributi di servizio a livello di modulo mostrano temperatura interna, tensione e corrente.
Configurazione
MQTT Client ID
Ogni Shelly Plus 1PM ha un MQTT Client ID univoco nel formato shellyplus1pm-<DEVICEID>, dove <DEVICEID> è l’indirizzo MAC esadecimale a 12 caratteri (es. shellyplus1pm-AABBCCDDEE00).
Il Client ID si trova:
- Nell’interfaccia web Shelly: Settings → MQTT → Client ID
- Tramite API:
GET http://<device-ip>/rpc/MQTT.GetConfig→ campoclient_id - Sull’etichetta del dispositivo (indirizzo MAC)
Questo dispositivo supporta il discovery mDNS. È possibile utilizzare l’hostname
shellyplus1pm-{MAC}.localanziché un indirizzo IP per verificare la connettività. Sostituire{MAC}con l’indirizzo MAC completo del dispositivo in formato esadecimale minuscolo (es.shellyplus1pm-aabbccddee00.local).
Abilitazione MQTT
- Aprire l’interfaccia web Shelly:
http://<device-ip>/ - Navigare su Settings → MQTT
- Abilitare MQTT
- Impostare Server:
<broker-ip>:<port>(es.192.168.1.10:1883) - Il Client ID è precompilato — lasciarlo invariato a meno che non ci sia un motivo specifico per modificarlo
- Cliccare Save e riavviare il dispositivo
Per verificare che MQTT funzioni, utilizzare un client MQTT (es. MQTT Explorer) e sottoscrivere
shellyplus1pm-<DEVICEID>/#. Dovresti vedere i messaggi di stato dal dispositivo, inclusoshellyplus1pm-<DEVICEID>/status/switch:0.
Configurazione del template
Dopo aver importato il template in TapHome:
- Aprire il Shelly Plus 1PM MQTT Module
- Impostare l’MQTT Broker IP e la Porta (predefinita
1883) - Impostare la variabile plug1topic sul MQTT Client ID dello Shelly Plus 1PM (es.
shellyplus1pm-AABBCCDDEE00)
Il modulo si sottoscrive a {plug1topic}/status/switch:0 e pubblica i comandi di controllo su {plug1topic}/command/switch:0.
Funzionalità del dispositivo
Misurazione della potenza
Il Contatore elettrico legge due valori dal messaggio di stato MQTT {plug1topic}/status/switch:0:
- Potenza istantanea —
apowerin watt, convertita in kW dal template (divisione per 1000) - Energia cumulativa —
aenergy.totalin wattora, convertita in kWh dal template (divisione per 1000)
Il contatore è di sola lettura — si aggiorna automaticamente ogni volta che il dispositivo pubblica un messaggio di stato sul broker MQTT.
Controllo relè
L’Interruttore controlla il relè:
- Lettura stato — si sottoscrive a
{plug1topic}/status/switch:0e legge il campo booleanooutput - Scrittura stato — pubblica
onooffsu{plug1topic}/command/switch:0
Il relè supporta carichi fino a 3500 W / 16 A a 230 V AC.
Diagnostica
Tre attributi di servizio a livello di modulo vengono analizzati dallo stesso payload JSON status/switch:0:
| Attributo | Unità | Descrizione |
|---|---|---|
| Temperatura interna | °C | Temperatura interna del dispositivo — monitora lo stato termico del relè e del PCB |
| Tensione | V | Tensione di alimentazione AC all’ingresso del relè |
| Corrente | A | Corrente di carico attraverso l’uscita del relè |
Tutti e tre gli attributi mostrano “Unknown” fino all’arrivo del primo messaggio di stato MQTT (valore iniziale NaN).
Funzionalità aggiuntive
Lo Shelly Plus 1PM espone anche fattore di potenza, frequenza di rete, energia restituita (per misurazione bidirezionale), stato dell’ingresso fisico, comando toggle, timer di spegnimento automatico e un’azione di aggiornamento forzato dello stato tramite la sua API MQTT. Queste funzionalità potranno essere aggiunte in un futuro aggiornamento del template.
Risoluzione problemi
I messaggi MQTT non arrivano
- Verificare che MQTT sia abilitato nell’interfaccia web Shelly (Settings → MQTT)
- Controllare che l’indirizzo del broker e la porta siano corretti sia nelle impostazioni del dispositivo Shelly che del modulo TapHome
- Verificare che la variabile
plug1topiccorrisponda esattamente al MQTT Client ID dello Shelly (es.shellyplus1pm-AABBCCDDEE00) - Utilizzare un client MQTT (es. MQTT Explorer) e sottoscrivere
shellyplus1pm-#per verificare che il dispositivo pubblichi messaggi
La misurazione della potenza mostra zero
- Verificare che il carico sia collegato attraverso il relè Shelly (non bypassato)
- Controllare che il relè sia acceso — il contatore misura solo quando la corrente scorre attraverso il relè
- Sottoscrivere
{plug1topic}/status/switch:0con un client MQTT e verificare cheapowerrestituisca un valore diverso da zero
Il relè non risponde ai comandi
- Verificare che TapHome possa raggiungere il broker MQTT (IP e porta corretti nelle impostazioni del modulo)
- Controllare che il valore di
plug1topiccorrisponda al MQTT Client ID del dispositivo - Testare pubblicando
onsu{plug1topic}/command/switch:0tramite un client MQTT — il relè dovrebbe accendersi
La diagnostica mostra “Unknown”
- Tutti e tre gli attributi (temperatura, tensione, corrente) mostrano “Unknown” fino all’arrivo del primo messaggio di stato
- Se i valori rimangono “Unknown” dopo l’avvio del dispositivo, verificare che la connessione MQTT sia attiva e che i messaggi di stato vengano pubblicati
- Riavviare il dispositivo Shelly per forzare una nuova pubblicazione dello stato
I dispositivi Shelly Gen2+ supportano MQTT con TLS opzionale. Se TLS non è configurato, la comunicazione tra dispositivo e broker MQTT non è crittografata (MQTT in chiaro, porta 1883). Per la comunicazione crittografata, abilitare TLS nelle impostazioni MQTT dello Shelly e utilizzare la porta 8883.