TapHome

Shelly H&T Gen3

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

Shelly H&T Gen3 je bateriový (4x AA) Wi-Fi senzor teploty a vlhkosti s velkým e-paper displejem. TapHome komunikuje se zařízením přes MQTT pomocí Gen2+ RPC notifikací na topicu events/rpc. Toto je doporučený protokol pro bateriová Shelly Gen3 zařízení, protože senzor většinu času spí a publikuje data pouze při probuzení.

Šablona vytvoří jedno zařízení Senzor teploty a vlhkosti a servisní atribut Baterie na úrovni modulu. Mechanismus detekce offline sleduje poslední přijatý timestamp a hlásí varování nebo chyby, pokud zařízení delší dobu neodpovídalo.

Konfigurace

MQTT Client ID

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

Client ID najdete:

  • Na štítku zařízení (MAC adresa)
  • Ve webovém rozhraní Shelly: SettingsMQTTClient 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 H&T Gen3 MQTT
  2. Nastavte MQTT Broker IP na adresu MQTT brokeru
  3. Nastavte Port (výchozí 1883)
  4. Nastavte import parametr MQTT ID na Client ID zařízení (např. shellyhtg3-AABBCCDDEEFF)

Modul se přihlásí k odběru <device-id>/# a listenerové skripty parsují NotifyStatus JSON-RPC události z topicu events/rpc.

Ujistěte se, že na Shelly H&T Gen3 je povolené MQTT a rpc_ntf (RPC notifikace) je nastaveno na true (výchozí). Šablona se spoléhá na events/rpc notifikace, ne na individuální stavové topicy.

Měření a hlášení

Shelly H&T Gen3 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.
  • USB napájení — probuzení každých 5 minut pro měření, aktualizaci displeje a 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 není trvale připojeno k MQTT brokeru. Očekávejte mezery mezi měřeními, zejména v bateriovém režimu. Pokud má místo senzoru slabý Wi-Fi signál, časté opětovné připojování může zkrátit výdrž baterie.

Schopnosti zařízení

Teplota a vlhkost

Senzorové zařízení čte teplotu a vlhkost z NotifyStatus událostí na topicu events/rpc:

  • Teplota — okolní teplota ve stupních Celsia, čtená z params['temperature:0'].tC
  • Vlhkost — relativní vlhkost v procentech, čtená z params['humidity:0'].rh (listenerový skript 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.

Monitorování baterie

Modul poskytuje servisní atribut Baterie [%], který čte procentuální úroveň nabití baterie z params['devicepower:0'].battery.percent v události NotifyStatus. Varování o nízké baterii se spustí, když úroveň klesne pod 30 %.

Stav baterie se aktualizuje s každým hlášením senzoru. Na 4x AA bateriích je očekávaná výdrž přibližně 1 rok za normálních podmínek.

Detekce offline

Šablona monitoruje konektivitu zařízení pomocí mechanismu založeného na timestampu. Listenerový skript modulu ukládá Unix timestamp z každé NotifyStatus události do custom proměnné timestamp. Čtecí skript poté porovnává uložený timestamp s aktuálním časem:

  • Offline > 12 hodin — WARNING: “Device is offline > 12H”
  • Offline > 24 hodin — ERROR: “Device is offline > 24H”

Toto je obzvláště užitečné pro bateriová zařízení, která mohou přestat komunikovat kvůli vybitým bateriím nebo ztrátě Wi-Fi připojení.

Další schopnosti

Shelly H&T Gen3 také publikuje stav online/offline přes MQTT Last Will and Testament (LWT) topic, napětí baterie ve Voltech a stav externího napájení (zda je připojen USB Type-C). Individuální stavové topicy komponent (status/temperature:0, status/humidity:0, status/devicepower:0) jsou dostupné při povoleném status_ntf a teplota je dostupná i ve Fahrenheitech. Zařízení má e-paper displej s nastavitelnou jednotkou teploty a formátem hodin. 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 H&T Gen3 je připojen k Wi-Fi a MQTT je povoleno v nastavení zařízení (SettingsMQTTEnable)
  2. Zkontrolujte, že rpc_ntf je nastaveno na true (výchozí) — šablona vyžaduje RPC notifikace na events/rpc
  3. Potvrďte, že import parametr MQTT ID přesně odpovídá Client ID zařízení (např. shellyhtg3-AABBCCDDEEFF)
  4. Použijte MQTT klienta (např. MQTT Explorer) pro přihlášení k odběru <device-id>/# a ověřte, že senzor publikuje NotifyStatus 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á
Offline varování navzdory fungujícímu senzoru
  1. Detekce offline porovnává uložený timestamp s aktuálním časem. Pokud jsou hodiny TapHome Core výrazně posunuty, mohou se objevit falešná varování
  2. Na bateriové napájení senzor hlásí pouze při překročení prahů nebo každé 2 hodiny nepodmíněně — mezery do 2 hodin mezi hlášeními jsou normální
  3. Pokud je senzor na místě s nestabilním Wi-Fi, může vynechat okna hlášení. Ověřte sílu Wi-Fi signálu v místě senzoru

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 H&T Gen3 MQTT Modul
Servisní atributy
BaterieProcentuální úroveň nabití baterie — varování při poklesu pod 30 %
Vlastní proměnné

Shelly H&T Gen3 MQTT

Čtení (modul)
if !ISNAN(timestamp)
	DATETIME now := NOW();
	var secondsSeen := now.UNIXTIME - timestamp;
	if secondsSeen > 12 * 60 * 60
		if secondsSeen > 24 * 60 * 60
			ADDERROR("Device is offline > 24H");
		else
			ADDWARNING("Device is offline > 12H");        
		end
	end
end
Listener
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var ts := PARSEJSON(RECEIVEDMSG.Payload, "params.ts", true);
	if(!ISNULL(ts), timestamp := ts);
    var bat := PARSEJSON(RECEIVEDMSG.Payload, "params['devicepower:0'].battery.percent", true);
	if(!ISNULL(bat), BatteryPercentage := bat);
end

if BatteryPercentage < 30
	ADDWARNING("Low battery (<30%)");
end
Servisní atributy
Battery [%]
BatteryPercentage
Senzor teploty a vlhkosti Teplotní senzor Pouze ke čtení

Okolní teplota (°C) a relativní vlhkost z NotifyStatus událostí — vlhkost konvertována na rozsah 0–1 pro TapHome

json Jednotka: °C / %RH json_path

Senzor teploty a vlhkosti

Listener
if INDEXOF(RECEIVEDMSG.Topic, "events/rpc") > 0
	var temperature := PARSEJSON(RECEIVEDMSG.Payload, "params['temperature:0'].tC", true);
    if(!ISNULL(temperature), Te := temperature);
    var humidity := PARSEJSON(RECEIVEDMSG.Payload, "params['humidity:0'].rh", true);
    if(!ISNULL(humidity), Hu := humidity / 100);
end
Připojení: Packet Parser → MQTT
Možná vylepšení (8)
  • Temperature Status Topic — Individual status topic (when status_ntf: true). Template uses events/rpc instead — functionally equivalent.
  • Humidity Status Topic — Individual status topic (when status_ntf: true). Template uses events/rpc instead — functionally equivalent.
  • DevicePower Status Topic — Individual status topic with battery.V (voltage). Template already reads battery.percent from events/rpc.
  • Connection Status (LWT) — Last Will and Testament topic — true on connect, false on disconnect. Template uses timestamp-based offline detection instead.
  • Temperature in Fahrenheit — Temperature also available in Fahrenheit (tF field). Template uses tC only.
  • E-Paper Display Configuration — Temperature unit (C/F) and clock format (12/24/disabled) — display-only configuration, not sensor data.
  • Battery Voltage — Battery voltage in Volts. Template reads only percent, not voltage.
  • External Power Status — Whether USB Type-C power is connected. Could distinguish battery vs USB power mode.

Zdroje