TapHome

Shelly H&T Gen3

Packet Parser → MQTT
Pridal
Posledná aktualizácia: 03. 2026
Shelly H&T Gen3

Shelly H&T Gen3 je batériový (4x AA) Wi-Fi senzor teploty a vlhkosti s veľkým e-paper displejom. TapHome komunikuje so zariadením cez MQTT pomocou Gen2+ RPC notifikácií na topicu events/rpc. Toto je odporúčaný protokol pre batériové Shelly Gen3 zariadenia, keďže senzor väčšinu času spí a publikuje dáta len pri prebudení.

Šablóna vytvorí jedno zariadenie Senzor teploty a vlhkosti a servisný atribút Batéria na úrovni modulu. Mechanizmus detekcie offline sleduje posledný prijatý timestamp a hlási varovania alebo chyby, keď zariadenie dlhšie neodpovedalo.

Konfigurácia

MQTT Client ID

Každý Shelly H&T Gen3 má unikátne MQTT Client ID vo formáte shellyhtg3-<MAC12>, kde <MAC12> je plná 12-znaková MAC adresa v hexadecimálnom tvare veľkými písmenami (napr. shellyhtg3-AABBCCDDEEFF). Toto ID slúži aj ako predvolený prefix MQTT topicov.

Client ID nájdete:

  • Na štítku zariadenia (MAC adresa)
  • Vo webovom rozhraní Shelly: SettingsMQTTClient ID
  • Cez API: GET http://<device-ip>/rpc/Mqtt.GetConfig → pole client_id
Nastavenie šablóny

Po importe šablóny v TapHome:

  1. Otvorte modul Shelly H&T Gen3 MQTT
  2. Nastavte MQTT Broker IP na adresu MQTT brokera
  3. Nastavte Port (predvolene 1883)
  4. Nastavte import parameter MQTT ID na Client ID zariadenia (napr. shellyhtg3-AABBCCDDEEFF)

Modul sa prihlási na odber <device-id>/# a listenerové skripty parsujú NotifyStatus JSON-RPC udalosti z topicu events/rpc.

Uistite sa, že na Shelly H&T Gen3 je povolené MQTT a rpc_ntf (RPC notifikácie) je nastavené na true (predvolené). Šablóna sa spolieha na events/rpc notifikácie, nie na individuálne stavové topicy.

Meranie a hlásenia

Shelly H&T Gen3 funguje odlišne podľa zdroja napájania:

  • Batériový režim — prebudenie každú 1 minútu na meranie. Hlási cez MQTT ak sa teplota zmení o viac ako 0,5 °C alebo vlhkosť o viac ako 5 %. Nepodmienené hlásenie sa odosiela každé 2 hodiny, ak nebol prekročený žiadny prah.
  • USB napájanie — prebudenie každých 5 minút na meranie, aktualizáciu displeja a hlásenie v každom cykle.

E-paper displej sa aktualizuje pri zmene teploty o viac ako 0,2 °C alebo vlhkosti o viac ako 3 %.

Zariadenie je napájané z batérie a nie je trvalo pripojené k MQTT brokeru. Očakávajte medzery medzi meraniami, najmä v batériovom režime. Ak má miesto senzora slabý Wi-Fi signál, časté opätovné pripájanie môže skrátiť výdrž batérie.

Schopnosti zariadenia

Teplota a vlhkosť

Senzorové zariadenie číta teplotu a vlhkosť z NotifyStatus udalostí na topicu events/rpc:

  • Teplota — okoliná teplota v stupňoch Celzia, čítaná z params['temperature:0'].tC
  • Vlhkosť — relatívna vlhkosť v percentách, čítaná z params['humidity:0'].rh (listenerový skript delí hodnotu 100 pre prevod na rozsah 0–1 očakávaný TapHome)

Obe hodnoty sú len na čítanie a aktualizujú sa pri každom prebudení senzora a publikovaní dát.

Prah hlásenia teploty je nastaviteľný na zariadení (predvolene 0,5 °C, rozsah 0,5–5,0 °C). Prah vlhkosti je predvolene 5 % (rozsah 1–20 %). Tieto prahy je možné upraviť cez webové rozhranie Shelly alebo API pre vyváženie frekvencie hlásení oproti výdrži batérie.

Monitorovanie batérie

Modul poskytuje servisný atribút Batéria [%], ktorý číta percentuálnu úroveň nabitia batérie z params['devicepower:0'].battery.percent v udalosti NotifyStatus. Varovanie o nízkej batérii sa spustí, keď úroveň klesne pod 30 %.

Stav batérie sa aktualizuje s každým hlásením senzora. Na 4x AA batériách je očakávaná výdrž približne 1 rok za normálnych podmienok.

Detekcia offline

Šablóna monitoruje konektivitu zariadenia pomocou mechanizmu založeného na timestampe. Listenerový skript modulu ukladá Unix timestamp z každej NotifyStatus udalosti do custom premennej timestamp. Čítací skript potom porovnáva uložený timestamp s aktuálnym časom:

  • Offline > 12 hodín — WARNING: “Device is offline > 12H”
  • Offline > 24 hodín — ERROR: “Device is offline > 24H”

Toto je obzvlášť užitočné pre batériové zariadenia, ktoré môžu prestať komunikovať kvôli vybitým batériám alebo strate Wi-Fi pripojenia.

Ďalšie schopnosti

Shelly H&T Gen3 tiež publikuje stav online/offline cez MQTT Last Will and Testament (LWT) topic, napätie batérie vo Voltoch a stav externého napájania (či je pripojený USB Type-C). Individuálne stavové topicy komponentov (status/temperature:0, status/humidity:0, status/devicepower:0) sú dostupné keď je povolené status_ntf, a teplota je dostupná aj vo Fahrenheitoch. Zariadenie má e-paper displej s nastaviteľnou jednotkou teploty a formátom hodín. Tieto schopnosti môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

Senzor nehlási dáta
  1. Overte, že Shelly H&T Gen3 je pripojený k Wi-Fi a MQTT je povolené v nastaveniach zariadenia (SettingsMQTTEnable)
  2. Skontrolujte, že rpc_ntf je nastavené na true (predvolené) — šablóna vyžaduje RPC notifikácie na events/rpc
  3. Potvrďte, že import parameter MQTT ID presne zodpovedá Client ID zariadenia (napr. shellyhtg3-AABBCCDDEEFF)
  4. Použite MQTT klienta (napr. MQTT Explorer) na prihlásenie odberu <device-id>/# a overte, že senzor publikuje NotifyStatus správy pri prebudení
  5. Skontrolujte úroveň batérie zariadenia — vybité batérie bránia senzoru pripojiť sa k Wi-Fi
Meranie vlhkosti sa javí nesprávne
  1. TapHome šablóna delí surovú hodnotu vlhkosti 100 (napr. rh: 55.3 sa stane 0.553 v TapHome). Toto je očakávané správanie — TapHome interne používa rozsah 0–1
  2. Senzor má nastaviteľný offset vlhkosti (Humidity.SetConfigoffset) — overte, že nie je nastavený na nesprávnu hodnotu
  3. Prevádzkový rozsah vlhkosti senzora je 30–70 % RH. Merania mimo tohto rozsahu môžu byť menej presné
Offline varovania napriek fungujúcemu senzoru
  1. Detekcia offline porovnáva uložený timestamp s aktuálnym časom. Ak sú hodiny TapHome Core výrazne posunuté, môžu sa objaviť falošné varovania
  2. Na batériové napájanie senzor hlási len keď sú prekročené prahy alebo každé 2 hodiny nepodmienene — medzery do 2 hodín medzi hláseniami sú normálne
  3. Ak je senzor na mieste s nestabilným Wi-Fi, môže vynechať okná hlásení. Overte silu Wi-Fi signálu na mieste senzora

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly pripojené k Wi-Fi (ak ešte nie, pozrite návod na HTTP pripojenie)
  • MQTT broker bežiaci vo vašej lokálnej sieti (napr. Mosquitto, Home Assistant alebo vstavaný broker TapHome)
  • TapHome CCU v rovnakej sieti ako broker

Na zariadeniach Gen1 povolenie MQTT vypne Shelly Cloud. Oboje nemôže bežať súčasne. Na zariadeniach Gen2/Plus toto obmedzenie neplatí.

Krok 1 — Povoľte MQTT na zariadení Shelly

Zariadenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na Internet & SecurityAdvanced — MQTT
  3. Povoľte MQTT
  4. Nastavte MQTT Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Voliteľne nastavte MQTT User a MQTT Password, ak váš broker vyžaduje autentifikáciu
  6. Kliknite na Save — zariadenie sa reštartuje a pripojí k brokeru

Zariadenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na SettingsMQTT
  3. Povoľte MQTT
  4. Nastavte Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Client ID je predvyplnené ID zariadenia (napr. shellyplus1pm-AABBCCDDEE) — ponechajte tak, pokiaľ nemáte konkrétny dôvod na zmenu
  6. Kliknite na Save a reštartujte zariadenie

Na overenie funkčnosti MQTT použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber shellies/# (Gen1) alebo <device-id>/# (Gen2). Mali by ste vidieť stavové správy zo zariadenia.

Krok 2 — Zistite Device ID / MQTT Client ID

Niektoré šablóny vyžadujú parameter Device ID alebo MQTT Client ID. Ide o jedinečný identifikátor používaný v MQTT topicoch.

  • Gen1: nachádza sa na štítku ako MAC adresa (napr. AABBCCDDEE). Device ID = shelly<model>-<mac>, napr. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nachádza sa vo webovom rozhraní Shelly v časti SettingsDevice InfoDevice ID, alebo na štítku zariadenia

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (MQTT)
  2. IP Address: zadajte IP adresu MQTT brokera (napr. 192.168.1.10)
  3. Port: 1883 (predvolený; pre TLS použite 8883)
  4. Device ID / MQTT Client ID: zadajte hodnotu z kroku 2 (ak to šablóna vyžaduje)
  5. Importujte šablónu — TapHome sa automaticky prihlási na odber topicov zariadenia

Dostupné zariadenia

Shelly H&T Gen3 MQTT Modul
Servisné atribúty
BatériaPercentuálna úroveň nabitia batérie — varovanie pri poklese pod 30 %
Vlastné premenné

Shelly H&T Gen3 MQTT

Čítanie (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é atribúty
Battery [%]
BatteryPercentage
Senzor teploty a vlhkosti Teplotný senzor Len na čítanie

Okoliná teplota (°C) a relatívna vlhkosť z NotifyStatus udalostí — vlhkosť konvertovaná na rozsah 0–1 pre 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
Pripojenie: Packet Parser → MQTT
Možné vylepšenia (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