TapHome

Shelly Plus H&T

Packet Parser → MQTT
Přidal
Poslední aktualizace: 03. 2026
Shelly Plus H&T

Shelly Plus H&T (SNSN-0013A) je bateriový (4x AA) Wi-Fi senzor teploty a vlhkosti s e-paper displejem. Je to zařízení Gen2 (řada Plus), nyní ukončené a nahrazené Shelly H&T Gen3, ale stále široce nasazené. TapHome komunikuje se zařízením přes MQTT pomocí individuálních /status/ topiců pro každou komponentu. Toto je standardní přístup pro Gen2 Shelly zařízení — listenerový skript se přihlásí k odběru <device-id>/# a zpracovává příchozí stavové zprávy, když se senzor probudí z hlubokého spánku a publikuje data.

Šablona vytvoří jedno zařízení Senzor teploty a vlhkosti s 9 servisními atributy na úrovni zařízení pokrývajícími baterii, síť a diagnostiku konektivity. Na rozdíl od Gen3 variantu (který používá konsolidované events/rpc notifikace), tato Gen2 šablona zpracovává individuální topicy /status/temperature:0, /status/humidity:0, /status/devicepower:0 a další topicy specifické pro komponenty.

Konfigurace

Device ID

Každý Shelly Plus H&T má unikátní Device ID ve formátu shellyplusht-<MACADDRESS>, kde <MACADDRESS> je plná 12znaková MAC adresa v hexadecimálním tvaru velkými písmeny (např. shellyplusht-A8032AB12CD3). Toto ID slouží i jako prefix MQTT topiců.

Device ID najdete:

  • Na štítku zařízení (MAC adresa)
  • Ve webovém rozhraní Shelly: SettingsDevice InfoDevice ID
  • Přes API: GET http://<device-ip>/rpc/Mqtt.GetConfig → pole client_id
Nastavení šablony

Po importu šablony v TapHome:

  1. Otevřete modul Shelly Plus H&T MQTT
  2. Nastavte MQTT Broker IP na adresu MQTT brokeru
  3. Nastavte Port (výchozí 1883)
  4. Nastavte import parametr Device ID na Device ID zařízení (např. shellyplusht-A8032AB12CD3)

Modul se přihlásí k odběru <device-id>/# a listenerový skript parsuje individuální /status/ JSON zprávy z topiců každé komponenty.

Ujistěte se, že na Shelly Plus H&T je povolené MQTT a status_ntf (stavové notifikace) je nastaveno na true. Šablona se spoléhá na individuální stavové topicy (/status/temperature:0, /status/humidity:0 atd.), ne na konsolidovaný topic events/rpc.

Měření a hlášení

Shelly Plus H&T funguje odlišně podle zdroje napájení:

  • Bateriový režim — probuzení každou 1 minutu pro měření. Hlásí přes MQTT, pokud se teplota změní o více než 0,5 °C nebo vlhkost o více než 5 %. Nepodmíněné hlášení se odesílá každé 2 hodiny, pokud nebyl překročen žádný práh. 5minutová ochranná doba zabraňuje nadměrným probuzením.
  • USB napájení — probuzení každých 5 minut pro měření, aktualizaci displeje a nepodmíněné hlášení v každém cyklu.

E-paper displej se aktualizuje při změně teploty o více než 0,2 °C nebo vlhkosti o více než 3 %.

Zařízení je napájeno z baterie a většinu času tráví v hlubokém spánku. TapHome nemůže aktivně dotazovat senzor — spoléhá se na to, že zařízení samo odešle stav přes MQTT při probuzení. Očekávejte mezery mezi měřeními, zejména v bateriovém režimu. USB Type-C napájení poskytuje častější aktualizace, ale nenabíjí interní baterie.

Schopnosti zařízení

Teplota a vlhkost

Senzorové zařízení čte teplotu a vlhkost z individuálních MQTT stavových topiců:

  • Teplota — okolní teplota ve stupních Celsia, čtená z tC v topicu /status/temperature:0
  • Vlhkost — relativní vlhkost v procentech, čtená z rh v topicu /status/humidity:0 (skript readhumidity dělí hodnotu 100 pro převod na rozsah 0–1 očekávaný TapHome)

Obě hodnoty jsou pouze ke čtení a aktualizují se při každém probuzení senzoru a publikování dat.

Práh hlášení teploty je nastavitelný na zařízení (výchozí 0,5 °C, rozsah 0,5–5,0 °C). Práh vlhkosti je výchozí 5 % (rozsah 1–20 %). Tyto prahy lze upravit přes webové rozhraní Shelly nebo API pro vyvážení frekvence hlášení oproti výdrži baterie.

Servisní atributy

Šablona poskytuje 9 servisních atributů na úrovni zařízení pokrývajících stav baterie a diagnostiku zařízení:

Monitorování baterie:

  • Battery — procentuální úroveň nabití baterie z battery.percent v /status/devicepower:0
  • Battery voltage — napětí baterie ve Voltech z battery.V v /status/devicepower:0
  • External power — zda je připojeno externí USB Type-C napájení, z external.present v /status/devicepower:0

Síťová diagnostika:

  • WiFi — SSID připojené Wi-Fi sítě z /status/wifi
  • IP Address — IP adresa zařízení z /status/wifi
  • MAC Address — MAC adresa zařízení z /status/sys

Stav konektivity:

  • Cloud connected — stav připojení k Shelly Cloud z /status/cloud
  • MQTT connected — stav připojení k MQTT brokeru z /status/mqtt
  • BLE enabled — stav Bluetooth Low Energy z /status/ble

Všechny servisní atributy zobrazují "-", dokud nebyly přijaty žádné data (počáteční stav po importu šablony, před prvním probuzením senzoru).

Další schopnosti

Shelly Plus H&T také publikuje teplotu ve Fahrenheitech (pole tF v /status/temperature:0), sílu Wi-Fi signálu (RSSI v dBm) a podporuje komponentu HT_UI pro konfiguraci jednotky teploty na e-paper displeji (°C/°F). Zařízení také poskytuje stav online/offline přes MQTT Last Will and Testament (LWT) topic. Tyto schopnosti mohou být přidány v budoucí aktualizaci šablony.

Řešení problémů

Senzor nehlásí data
  1. Ověřte, že Shelly Plus H&T je připojen k Wi-Fi a MQTT je povoleno v nastavení zařízení (SettingsMQTTEnable)
  2. Zkontrolujte, že status_ntf je nastaveno na true — šablona vyžaduje individuální stavové notifikace na /status/ topicích
  3. Potvrďte, že import parametr Device ID přesně odpovídá Device ID zařízení (např. shellyplusht-A8032AB12CD3)
  4. Použijte MQTT klienta (např. MQTT Explorer) pro přihlášení k odběru <device-id>/# a ověřte, že senzor publikuje stavové zprávy při probuzení
  5. Zkontrolujte úroveň baterie zařízení — vybité baterie brání senzoru připojit se k Wi-Fi
Měření vlhkosti se zdá nesprávné
  1. TapHome šablona dělí surovou hodnotu vlhkosti 100 (např. rh: 55.3 se stane 0.553 v TapHome). Toto je očekávané chování — TapHome interně používá rozsah 0–1
  2. Senzor má nastavitelný offset vlhkosti (Humidity.SetConfigoffset) — ověřte, že není nastaven na nesprávnou hodnotu
  3. Provozní rozsah vlhkosti senzoru je 30–70 % RH. Měření mimo tento rozsah mohou být méně přesná
Servisní atributy zobrazují “-”
  1. Servisní atributy zobrazují "-" dokud se senzor neprobudí a nepublikuje data na odpovídajícím stavovém topicu
  2. Na bateriové napájení může zařízení trvat až 2 hodiny, než odešle první nepodmíněné hlášení — stiskněte resetovací tlačítko (za zadním krytem) pro okamžité měření a hlášení
  3. Ověřte, že MQTT broker přijímá zprávy na všech očekávaných topicích (/status/sys, /status/wifi, /status/cloud, /status/mqtt, /status/ble)
Rozdíly oproti Shelly H&T Gen3

Shelly Plus H&T (Gen2) a Shelly H&T Gen3 mají podobné senzorové schopnosti, ale liší se v MQTT komunikaci:

  • Gen2 (Plus H&T) používá individuální /status/ topicy pro každou komponentu — vyžaduje status_ntf: true
  • Gen3 (H&T Gen3) používá konsolidovaný topic events/rpc s NotifyStatus JSON-RPC událostmi — vyžaduje rpc_ntf: true
  • Gen3 šablona také obsahuje detekci offline založenou na timestampu (>12h varování, >24h chyba), kterou Gen2 šablona neimplementuje

Jak nainstalovat v TapHome

Předpoklady

  • Zařízení Shelly připojené k Wi-Fi (pokud ještě ne, podívejte se na návod na HTTP připojení)
  • MQTT broker běžící ve vaší lokální síti (např. Mosquitto, Home Assistant nebo vestavěný broker TapHome)
  • TapHome CCU ve stejné síti jako broker

Na zařízeních Gen1 povolení MQTT vypne Shelly Cloud. Obojí nemůže běžet současně. Na zařízeních Gen2/Plus toto omezení neplatí.

Krok 1 — Povolte MQTT na zařízení Shelly

Zařízení Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otevřete webové rozhraní Shelly: http://<device-ip>/
  2. Přejděte na Internet & SecurityAdvanced — MQTT
  3. Povolte MQTT
  4. Nastavte MQTT Server: <broker-ip>:<port> (např. 192.168.1.10:1883)
  5. Volitelně nastavte MQTT User a MQTT Password, pokud váš broker vyžaduje autentifikaci
  6. Klikněte na Save — zařízení se restartuje a připojí k brokeru

Zařízení Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otevřete webové rozhraní Shelly: http://<device-ip>/
  2. Přejděte na SettingsMQTT
  3. Povolte MQTT
  4. Nastavte Server: <broker-ip>:<port> (např. 192.168.1.10:1883)
  5. Client ID je předvyplněné ID zařízení (např. shellyplus1pm-AABBCCDDEE) — ponechte tak, pokud nemáte konkrétní důvod ke změně
  6. Klikněte na Save a restartujte zařízení

Pro ověření funkčnosti MQTT použijte MQTT klienta (např. MQTT Explorer) a přihlaste se k odběru shellies/# (Gen1) nebo <device-id>/# (Gen2). Měli byste vidět stavové zprávy ze zařízení.

Krok 2 — Zjistěte Device ID / MQTT Client ID

Některé šablony vyžadují parametr Device ID nebo MQTT Client ID. Jde o jedinečný identifikátor používaný v MQTT topicích.

  • Gen1: nachází se na štítku jako MAC adresa (např. AABBCCDDEE). Device ID = shelly<model>-<mac>, např. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nachází se ve webovém rozhraní Shelly v části SettingsDevice InfoDevice ID, nebo na štítku zařízení

Krok 3 — Konfigurace v TapHome

  1. V TapHome přidejte nový modul Packet Parser (MQTT)
  2. IP Address: zadejte IP adresu MQTT brokeru (např. 192.168.1.10)
  3. Port: 1883 (výchozí; pro TLS použijte 8883)
  4. Device ID / MQTT Client ID: zadejte hodnotu z kroku 2 (pokud to šablona vyžaduje)
  5. Importujte šablonu — TapHome se automaticky přihlásí k odběru topiců zařízení

Dostupná zařízení

Shelly Plus H&T MQTT Modul
Vlastní proměnné
deviceId (string)MQTT identifikátor zařízení používaný jako prefix topiců — formát: shellyplusht-{MACADDRESS} (najdete ve webovém rozhraní Shelly → Settings → Device Info)
Open http://shellyIpAddress → Settings → Device info → copy Device ID (e.g. shellyplusht-A8032AB12CD3)
Senzor teploty a vlhkosti Teplotní senzor Pouze ke čtení

Okolní teplota (°C) a relativní vlhkost z individuálních /status/ MQTT topiců — vlhkost konvertována na rozsah 0–1 pro TapHome

json Jednotka: °C / %RH json_path
Servisní atributy
BaterieProcentuální úroveň nabití baterie — zobrazuje '-' do prvního probuzení senzoru
Napětí baterieNapětí baterie ve Voltech — užitečné pro sledování degradace baterie v čase
Externí napájeníZda je připojeno externí USB Type-C napájení (true/false)
WiFiSSID připojené Wi-Fi sítě
IP adresa
MAC adresa
Připojeno ke clouduStav připojení k Shelly Cloud (true/false)
MQTT připojenoStav připojení k MQTT brokeru (true/false)
BLE povolenoStav Bluetooth Low Energy (true/false)

Senzor teploty a vlhkosti

Čtení vlhkosti
Hu := listenHum / 100.0;
Listener
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
Servisní atributy
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);
Připojení: Packet Parser → MQTT
Možná vylepšení (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.

Zdroje