
Lo Shelly H&T Gen3 è un sensore di temperatura e umidità Wi-Fi alimentato a batteria (4x AA) con un grande display e-paper. TapHome comunica con il dispositivo tramite MQTT utilizzando le notifiche RPC Gen2+ sul topic events/rpc. Questo è il protocollo consigliato per i dispositivi Shelly Gen3 a batteria, poiché il sensore è in modalità sleep la maggior parte del tempo e pubblica dati solo al risveglio.
Il template crea un singolo dispositivo Sensore di temperatura e umidità e un attributo di servizio Batteria a livello di modulo. Un meccanismo di rilevamento offline monitora l’ultimo timestamp ricevuto e genera avvisi o errori quando il dispositivo non ha comunicato per un periodo prolungato.
Configurazione
MQTT Client ID
Ogni Shelly H&T Gen3 ha un MQTT Client ID univoco nel formato shellyhtg3-<MAC12>, dove <MAC12> è l’indirizzo MAC completo a 12 caratteri in esadecimale maiuscolo (es. shellyhtg3-AABBCCDDEEFF). Questo ID serve anche come prefisso predefinito dei topic MQTT.
Il Client ID si trova:
- Sull’etichetta del dispositivo (indirizzo MAC)
- Nell’interfaccia web Shelly: Settings → MQTT → Client ID
- Tramite API:
GET http://<device-ip>/rpc/Mqtt.GetConfig→ campoclient_id
Configurazione del template
Dopo l’importazione del template in TapHome:
- Apri il modulo Shelly H&T Gen3 MQTT
- Imposta l’MQTT Broker IP sull’indirizzo del broker MQTT
- Imposta la Port (predefinita
1883) - Imposta il parametro di importazione MQTT ID sul Client ID del dispositivo (es.
shellyhtg3-AABBCCDDEEFF)
Il modulo si iscrive a <device-id>/# e gli script listener analizzano gli eventi JSON-RPC NotifyStatus dal topic events/rpc.
Assicurati che MQTT sia abilitato sullo Shelly H&T Gen3 e che
rpc_ntf(notifiche RPC) sia impostato sutrue(predefinito). Il template si basa sulle notificheevents/rpc, non sui singoli topic di stato.
Comportamento di misurazione e segnalazione
Lo Shelly H&T Gen3 opera diversamente in base alla fonte di alimentazione:
- Modalità batteria — risveglio ogni 1 minuto per la misurazione. Segnala tramite MQTT se la temperatura cambia di più di 0,5 °C o l’umidità di più del 5%. Una segnalazione incondizionata viene inviata ogni 2 ore se non sono state attivate segnalazioni basate su soglia.
- Alimentazione USB — risveglio ogni 5 minuti per misurazione, aggiornamento display e segnalazione ad ogni ciclo.
Il display e-paper si aggiorna quando la temperatura cambia di più di 0,2 °C o l’umidità di più del 3%.
Il dispositivo è alimentato a batteria e non è permanentemente connesso al broker MQTT. Aspettati intervalli tra le letture, specialmente in modalità batteria. Se la posizione del sensore ha un segnale Wi-Fi debole, frequenti tentativi di riconnessione possono ridurre la durata della batteria.
Capacità del dispositivo
Temperatura e umidità
Il dispositivo sensore legge temperatura e umidità dagli eventi NotifyStatus sul topic events/rpc:
- Temperatura — temperatura ambiente in Celsius, letta da
params['temperature:0'].tC - Umidità — umidità relativa in percentuale, letta da
params['humidity:0'].rh(lo script listener divide il valore per 100 per convertirlo nell’intervallo 0–1 atteso da TapHome)
Entrambi i valori sono in sola lettura e si aggiornano ogni volta che il sensore si sveglia e pubblica dati.
La soglia di segnalazione della temperatura è configurabile sul dispositivo (predefinita 0,5 °C, intervallo 0,5–5,0 °C). La soglia di umidità è predefinita al 5% (intervallo 1–20%). Queste soglie possono essere regolate tramite l’interfaccia web Shelly o API per bilanciare la frequenza di segnalazione rispetto alla durata della batteria.
Monitoraggio batteria
Il modulo espone un attributo di servizio Batteria [%] che legge la percentuale di carica della batteria da params['devicepower:0'].battery.percent nell’evento NotifyStatus. Un avviso di batteria scarica si attiva quando il livello scende sotto il 30%.
Il livello della batteria si aggiorna con ogni segnalazione del sensore. Con batterie 4x AA, la durata prevista è di circa 1 anno in condizioni normali.
Rilevamento offline
Il template monitora la connettività del dispositivo tramite un meccanismo basato su timestamp. Lo script listener del modulo memorizza il timestamp Unix da ogni evento NotifyStatus nella variabile personalizzata timestamp. Lo script di lettura confronta quindi il timestamp memorizzato con l’ora corrente:
- Offline > 12 ore — WARNING: “Device is offline > 12H”
- Offline > 24 ore — ERROR: “Device is offline > 24H”
Questo è particolarmente utile per dispositivi a batteria che possono smettere di comunicare a causa di batterie scariche o perdita della connessione Wi-Fi.
Capacità aggiuntive
Lo Shelly H&T Gen3 pubblica anche lo stato online/offline tramite il topic MQTT Last Will and Testament (LWT), la tensione della batteria in Volt e lo stato dell’alimentazione esterna (se USB Type-C è collegato). I topic di stato individuali dei componenti (status/temperature:0, status/humidity:0, status/devicepower:0) sono disponibili quando status_ntf è abilitato, e la temperatura è disponibile anche in Fahrenheit. Il dispositivo dispone di un display e-paper con unità di temperatura e formato dell’orologio configurabili. Queste capacità possono essere aggiunte in un futuro aggiornamento del template.
Risoluzione dei problemi
Il sensore non segnala dati
- Verifica che lo Shelly H&T Gen3 sia connesso al Wi-Fi e che MQTT sia abilitato nelle impostazioni del dispositivo (Settings → MQTT → Enable)
- Controlla che
rpc_ntfsia impostato sutrue(predefinito) — il template richiede notifiche RPC suevents/rpc - Conferma che il parametro di importazione MQTT ID corrisponda esattamente al Client ID del dispositivo (es.
shellyhtg3-AABBCCDDEEFF) - Usa un client MQTT (es. MQTT Explorer) per iscriverti a
<device-id>/#e verifica che il sensore pubblichi messaggiNotifyStatusal risveglio - Controlla il livello della batteria del dispositivo — batterie scariche impediscono al sensore di connettersi al Wi-Fi
La lettura dell’umidità sembra errata
- Il template TapHome divide il valore grezzo dell’umidità per 100 (es.
rh: 55.3diventa0.553in TapHome). Questo è il comportamento previsto — TapHome utilizza internamente un intervallo 0–1 - Il sensore ha un offset di umidità configurabile (
Humidity.SetConfig→offset) — verifica che non sia impostato su un valore errato - L’intervallo operativo di umidità del sensore è 30–70% RH. Le letture al di fuori di questo intervallo possono essere meno precise
Avvisi offline nonostante il sensore funzionante
- Il rilevamento offline confronta il timestamp memorizzato con l’ora corrente. Se l’orologio del TapHome Core è significativamente sfasato, possono apparire falsi avvisi
- Con alimentazione a batteria, il sensore segnala solo al superamento delle soglie o ogni 2 ore incondizionatamente — intervalli fino a 2 ore tra le segnalazioni sono normali
- Se il sensore si trova in una posizione con Wi-Fi intermittente, può mancare le finestre di segnalazione. Verifica la potenza del segnale Wi-Fi nella posizione del sensore