TapHome

Shelly Plus H&T

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 03. 2026
Shelly Plus H&T

A Shelly Plus H&T (SNSN-0013A) egy elemes (4x AA) Wi-Fi hőmérséklet- és páratartalom-érzékelő e-paper kijelzővel. Ez egy Gen2 (Plus sorozat) eszköz, amelyet már nem gyártanak és a Shelly H&T Gen3 váltotta fel, de még széles körben használják. A TapHome MQTT-n keresztül kommunikál az eszközzel, egyedi /status/ topicokat használva minden komponenshez. Ez a Gen2 Shelly eszközök szabványos megközelítése — a listener szkript feliratkozik a <device-id>/# topicra és feldolgozza a bejövő állapotüzeneteket, amikor az érzékelő felébred a mély alvásból és adatokat publikál.

A sablon egyetlen Hőmérséklet- és páratartalom-érzékelő eszközt hoz létre 9 eszközszintű szervizattribútummal, amelyek lefedik az akkumulátort, hálózatot és csatlakozási diagnosztikát. A Gen3 változattal ellentétben (amely konszolidált events/rpc értesítéseket használ), ez a Gen2 sablon egyedi /status/temperature:0, /status/humidity:0, /status/devicepower:0 és egyéb komponens-specifikus topicokat dolgoz fel.

Konfiguráció

Device ID

Minden Shelly Plus H&T egyedi Device ID-vel rendelkezik shellyplusht-<MACADDRESS> formátumban, ahol a <MACADDRESS> a teljes 12 karakteres MAC-cím nagybetűs hexadecimális formában (pl. shellyplusht-A8032AB12CD3). Ez az ID egyben az MQTT topic előtag is.

A Device ID megtalálható:

  • Az eszköz címkéjén (MAC-cím)
  • A Shelly webes felületen: SettingsDevice InfoDevice ID
  • API-n keresztül: GET http://<device-ip>/rpc/Mqtt.GetConfigclient_id mező
Sablon beállítása

A sablon TapHome-ba importálása után:

  1. Nyisd meg a Shelly Plus H&T MQTT modult
  2. Állítsd be az MQTT Broker IP-t az MQTT broker címére
  3. Állítsd be a Port-ot (alapértelmezett 1883)
  4. Állítsd be a Device ID import paramétert az eszköz Device ID-jére (pl. shellyplusht-A8032AB12CD3)

A modul feliratkozik a <device-id>/# topicra, és a listener szkript feldolgozza az egyedi /status/ JSON üzeneteket minden komponens topicjáról.

Győződj meg róla, hogy a Shelly Plus H&T-n engedélyezve van az MQTT és a status_ntf (állapotértesítések) true értékre van állítva. A sablon az egyedi állapot topicokra támaszkodik (/status/temperature:0, /status/humidity:0 stb.), nem a konszolidált events/rpc topicra.

Mérési és jelentési viselkedés

A Shelly Plus H&T az áramforrástól függően eltérően működik:

  • Elemes mód — 1 percenként ébred mérésre. MQTT-n keresztül jelent, ha a hőmérséklet több mint 0,5 °C-kal vagy a páratartalom több mint 5%-kal változik. Feltétel nélküli állapotjelentés 2 óránként kerül küldésre, ha nem volt küszöbérték-alapú jelentés. 5 perces védőidőszak megakadályozza a túlzott ébredéseket.
  • USB tápellátás — 5 percenként ébred mérésre, kijelző frissítésre és feltétel nélküli jelentésre minden ciklusban.

Az e-paper kijelző frissül, ha a hőmérséklet több mint 0,2 °C-kal vagy a páratartalom több mint 3%-kal változik.

Az eszköz elemről működik és az idő nagy részét mély alvásban tölti. A TapHome nem tudja aktívan lekérdezni az érzékelőt — arra támaszkodik, hogy az eszköz maga küldi az állapotot MQTT-n keresztül ébredéskor. Számíts szünetekre a mérések között, különösen elemes módban. Az USB Type-C tápellátás gyakoribb frissítéseket biztosít, de nem tölti a belső elemeket.

Eszközképességek

Hőmérséklet és páratartalom

Az érzékelő eszköz egyedi MQTT állapot topicokból olvassa a hőmérsékletet és páratartalmat:

  • Hőmérséklet — környezeti hőmérséklet Celsiusban, a tC értékből a /status/temperature:0 topicon
  • Páratartalom — relatív páratartalom százalékban, az rh értékből a /status/humidity:0 topicon (a readhumidity szkript 100-zal osztja az értéket a TapHome által elvárt 0–1 tartományra való konvertáláshoz)

Mindkét érték csak olvasható, és az érzékelő minden felébredésekor és adatpublikálásakor frissül.

A hőmérséklet jelentési küszöbérték az eszközön konfigurálható (alapértelmezett 0,5 °C, tartomány 0,5–5,0 °C). A páratartalom küszöbérték alapértelmezetten 5% (tartomány 1–20%). Ezek a küszöbértékek a Shelly webes felületen vagy API-n keresztül módosíthatók a jelentési gyakoriság és az elem élettartam közötti egyensúly érdekében.

Szervizattribútumok

A sablon 9 eszközszintű szervizattribútumot biztosít, amelyek lefedik az akkumulátor állapotát és az eszközdiagnosztikát:

Akkumulátor monitorozás:

  • Battery — akkumulátor töltöttségi szint százalékban a battery.percent értékből a /status/devicepower:0 topicon
  • Battery voltage — akkumulátor feszültség Voltban a battery.V értékből a /status/devicepower:0 topicon
  • External power — USB Type-C külső tápellátás csatlakoztatva van-e, az external.present értékből a /status/devicepower:0 topicon

Hálózati diagnosztika:

  • WiFi — csatlakoztatott WiFi hálózat SSID-je a /status/wifi topicról
  • IP Address — eszköz IP-címe a /status/wifi topicról
  • MAC Address — eszköz MAC-címe a /status/sys topicról

Csatlakozási állapot:

  • Cloud connected — Shelly Cloud csatlakozási állapot a /status/cloud topicról
  • MQTT connected — MQTT broker csatlakozási állapot a /status/mqtt topicról
  • BLE enabled — Bluetooth Low Energy állapot a /status/ble topicról

Minden szervizattribútum "-" értéket mutat, amíg nem érkeztek adatok (kezdeti állapot a sablon importálása után, az érzékelő első felébredése előtt).

További képességek

A Shelly Plus H&T hőmérsékletet is publikál Fahrenheitben (tF mező a /status/temperature:0 topicon), Wi-Fi jelerősséget (RSSI dBm-ben) és támogatja a HT_UI komponenst az e-paper kijelző hőmérsékleti egységének konfigurálásához (°C/°F). Az eszköz online/offline állapotot is biztosít az MQTT Last Will and Testament (LWT) topicon. Ezek a képességek egy jövőbeli sablon frissítésben adhatók hozzá.

Hibaelhárítás

Az érzékelő nem jelent adatokat
  1. Ellenőrizd, hogy a Shelly Plus H&T csatlakozik a Wi-Fi-hez és az MQTT engedélyezve van az eszközbeállításokban (SettingsMQTTEnable)
  2. Ellenőrizd, hogy a status_ntf true értékre van állítva — a sablon egyedi állapotértesítéseket igényel a /status/ topicon
  3. Győződj meg róla, hogy a Device ID import paraméter pontosan megegyezik az eszköz Device ID-jével (pl. shellyplusht-A8032AB12CD3)
  4. Használj MQTT klienst (pl. MQTT Explorer) a <device-id>/# topicra való feliratkozáshoz, és ellenőrizd, hogy az érzékelő állapotüzeneteket publikál felébredéskor
  5. Ellenőrizd az eszköz elemszintjét — lemerült elemek megakadályozzák, hogy az érzékelő csatlakozzon a Wi-Fi-hez
A páratartalom mérés helytelennek tűnik
  1. A TapHome sablon 100-zal osztja a nyers páratartalom értéket (pl. rh: 55.3 lesz 0.553 a TapHome-ban). Ez elvárt viselkedés — a TapHome belsőleg 0–1 tartományt használ
  2. Az érzékelő konfigurálható páratartalom offsettel rendelkezik (Humidity.SetConfigoffset) — ellenőrizd, hogy nincs helytelen értékre állítva
  3. Az érzékelő működési páratartalom tartománya 30–70% RH. A tartományon kívüli mérések kevésbé pontosak lehetnek
Szervizattribútumok “-” értéket mutatnak
  1. A szervizattribútumok "-" értéket mutatnak, amíg az érzékelő fel nem ébred és adatokat nem publikál a megfelelő állapot topicon
  2. Elemről üzemelve az eszköznek akár 2 óráig is tarthat az első feltétel nélküli jelentés küldése — nyomd meg a reset gombot (a hátsó fedél mögött) az azonnali mérés és jelentés indításához
  3. Ellenőrizd, hogy az MQTT broker üzeneteket fogad minden elvárt topicon (/status/sys, /status/wifi, /status/cloud, /status/mqtt, /status/ble)
Különbségek a Shelly H&T Gen3-hoz képest

A Shelly Plus H&T (Gen2) és a Shelly H&T Gen3 hasonló érzékelő képességekkel rendelkezik, de különbözik az MQTT kommunikációban:

  • Gen2 (Plus H&T) egyedi /status/ topicokat használ komponensenként — status_ntf: true szükséges
  • Gen3 (H&T Gen3) konszolidált events/rpc topicot használ NotifyStatus JSON-RPC eseményekkel — rpc_ntf: true szükséges
  • A Gen3 sablon időbélyeg-alapú offline érzékelést is tartalmaz (>12 óra figyelmeztetés, >24 óra hiba), amelyet a Gen2 sablon nem valósít meg

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz csatlakoztatva a Wi-Fi-hez (ha még nem, lásd a HTTP kapcsolódási útmutatót)
  • MQTT broker fut a helyi hálózaton (pl. Mosquitto, Home Assistant vagy a TapHome beépített brokere)
  • TapHome CCU ugyanazon a hálózaton, mint a broker

A Gen1 eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot. A kettő nem futhat egyszerre. A Gen2/Plus eszközökön ez a korlátozás nem érvényes.

1. lépés — MQTT engedélyezése a Shelly eszközön

Gen1 eszközök (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon az Internet & SecurityAdvanced — MQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be az MQTT Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. Opcionálisan állítsa be az MQTT User és MQTT Password mezőket, ha a broker hitelesítést igényel
  6. Kattintson a Save gombra — az eszköz újraindul és csatlakozik a brokerhez

Gen2 / Plus eszközök (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon a SettingsMQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be a Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. A Client ID előre ki van töltve az eszköz azonosítójával (pl. shellyplus1pm-AABBCCDDEE) — hagyja így, hacsak nincs konkrét oka a változtatásra
  6. Kattintson a Save gombra és indítsa újra az eszközt

Az MQTT működésének ellenőrzéséhez használjon egy MQTT klienst (pl. MQTT Explorer), és iratkozzon fel a shellies/# (Gen1) vagy <device-id>/# (Gen2) topikra. Látnia kell az eszköz állapotüzeneteit.

2. lépés — Device ID / MQTT Client ID megkeresése

Egyes sablonok Device ID vagy MQTT Client ID paramétert igényelnek. Ez az egyedi azonosító, amelyet az MQTT topikokban használnak.

  • Gen1: a címkén MAC-címként található (pl. AABBCCDDEE). Device ID = shelly<model>-<mac>, pl. shelly1pm-AABBCCDDEE
  • Gen2/Plus: a Shelly webes felületén a SettingsDevice InfoDevice ID alatt található, vagy az eszköz címkéjén

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (MQTT) modult
  2. IP Address: adja meg az MQTT broker IP-címét (pl. 192.168.1.10)
  3. Port: 1883 (alapértelmezett; TLS esetén használjon 8883-at)
  4. Device ID / MQTT Client ID: adja meg a 2. lépésben kapott értéket (ha a sablon megköveteli)
  5. Importálja a sablont — a TapHome automatikusan feliratkozik az eszköz topikjaira

Elérhető eszközök

Shelly Plus H&T MQTT Modul
Egyéni változók
deviceId (string)MQTT eszközazonosító topic előtagként — formátum: shellyplusht-{MACADDRESS} (Shelly webes felület → Settings → Device Info)
Open http://shellyIpAddress → Settings → Device info → copy Device ID (e.g. shellyplusht-A8032AB12CD3)
Hőmérséklet- és páratartalom-érzékelő Hőmérséklet-érzékelő Csak olvasható

Környezeti hőmérséklet (°C) és relatív páratartalom egyedi /status/ MQTT topicokból — páratartalom 0–1 tartományra konvertálva a TapHome számára

json Egység: °C / %RH json_path
Szerviz attribútumok
AkkumulátorAkkumulátor töltöttségi szint — '-' értéket mutat az érzékelő első felébredéséig
Akkumulátor feszültségAkkumulátor feszültség Voltban — hasznos az akkumulátor degradációjának időbeli nyomon követéséhez
Külső tápellátásUSB Type-C külső tápellátás csatlakoztatva van-e (true/false)
WiFiCsatlakoztatott WiFi hálózat SSID-je
IP-cím
MAC-cím
Felhő csatlakoztatvaShelly Cloud csatlakozási állapot (true/false)
MQTT csatlakoztatvaMQTT broker csatlakozási állapot (true/false)
BLE engedélyezveBluetooth Low Energy állapot (true/false)

Hőmérséklet- és páratartalom-érzékelő

Páratartalom olvasása
Hu := listenHum / 100.0;
Figyelő
IF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/temperature:0") >= 0)
    Te := PARSEJSON(RECEIVEDMSG.PAYLOAD,"tC", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/humidity:0") >= 0)
    listenHum := PARSEJSON(RECEIVEDMSG.PAYLOAD,"rh", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/devicepower:0") >= 0)
    batteryPerc := PARSEJSON(RECEIVEDMSG.PAYLOAD,"battery.percent", true);
    batteryV := PARSEJSON(RECEIVEDMSG.PAYLOAD,"battery.V", true);
    externalPower := PARSEJSON(RECEIVEDMSG.PAYLOAD,"external.present", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/sys") >= 0)
    macAddress := PARSEJSON(RECEIVEDMSG.PAYLOAD,"mac", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/wifi") >= 0)
    ipaddress := PARSEJSON(RECEIVEDMSG.PAYLOAD,"sta_ip", true);
    wifi := PARSEJSON(RECEIVEDMSG.PAYLOAD,"ssid", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/cloud") >= 0)
    cloudConnected := PARSEJSON(RECEIVEDMSG.PAYLOAD,"connected", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/mqtt") >= 0)
    mqttConnected := PARSEJSON(RECEIVEDMSG.PAYLOAD,"connected", true);
ELSEIF (INDEXOF(RECEIVEDMSG.TOPIC, deviceid +"/status/ble") >= 0)
    BLEenabled := PARSEJSON(RECEIVEDMSG.PAYLOAD,"enable", true);
END
Szerviz attribútumok
Battery
IF (ISNAN(batteryPerc), "-", batteryPerc + "%");
Battery voltage
IF (ISNAN(batteryV), "-", batteryV + "V");
External power
IF (LENGTH(externalPower) = 0, "-", externalPower);
WiFi
IF (LENGTH(wifi) = 0, "-", wifi);
IP Address
IF (LENGTH(ipaddress) = 0, "-", ipaddress);
MAC Address
IF (LENGTH(macAddress) = 0, "-", macAddress);
Cloud connected
IF (LENGTH(cloudConnected) = 0, "-", cloudConnected);
MQTT connected
IF (LENGTH(mqttConnected) = 0, "-", mqttConnected);
BLE enabled
IF (LENGTH(BLEenabled) = 0, "-", BLEenabled);
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (5)
  • RPC Event Notifications — Gen3 templates use consolidated events/rpc topic with NotifyFullStatus. This Gen2 template uses individual /status/ topics instead — functionally equivalent.
  • Connection Status (LWT) — Last Will and Testament topic — true on connect, false on disconnect. Not used by template.
  • Temperature in Fahrenheit — Temperature also available in Fahrenheit (tF field in /status/temperature:0). Template uses tC only.
  • E-Paper Display Configuration — Temperature unit (C/F) display setting — display-only configuration, not sensor data.
  • WiFi Signal Strength (RSSI) — WiFi signal strength in dBm. Template reads only SSID and IP, not RSSI.

Források