TapHome

Shelly H&T

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

Shelly H&T je batériový (CR123A) Wi-Fi senzor teploty a vlhkosti z produktovej línie Shelly Gen1. TapHome komunikuje so zariadením cez MQTT — odporúčaný protokol pre batériové Shelly senzory, keďže zariadenie medzi meraniami spí a dáta posiela len pri zobudení.

Šablóna vytvorí jedno zariadenie Teplotný senzor so servisným atribútom Vlhkosť, ktoré sleduje teplotu okolia aj relatívnu vlhkosť z jednej jednotky Shelly H&T.

Konfigurácia

Device ID

Shelly H&T používa MQTT Device ID vo formáte shellyht-<MAC6>, kde <MAC6> je posledných 6 znakov MAC adresy v hexadecimálnom tvare malými písmenami (napr. shellyht-112233).

Device ID nájdete:

  • Na štítku zariadenia (MAC adresa)
  • Vo webovom rozhraní Shelly: SettingsDevice Info
  • Cez API: GET http://<device-ip>/settings → pole mqtt.id
Nastavenie šablóny

Po importe šablóny v TapHome:

  1. Otvorte modul Shelly H&T MQTT
  2. Nastavte MQTT Broker IP a Port (predvolene 1883)
  3. Nastavte premennú deviceId na Device ID vášho Shelly H&T (napr. 112233 — posledných 6 hex znakov MAC adresy)

Modul sa prihlási na odber shellies/# a listener skript filtruje správy podľa nakonfigurovaného Device ID.

Na zariadeniach Shelly Gen1 zapnutie MQTT vypne Shelly Cloud — oba nemôžu fungovať súčasne. MQTT zapnete vo webovom rozhraní Shelly v časti Internet & SecurityAdvanced - Developer Settings.

Predvolená doba spánku je 60 sekúnd. Pre častejšie aktualizácie je k dispozícii voliteľný USB adaptér — pri externom napájaní sa režim spánku vypne a senzor meria kontinuálne.

Možnosti zariadenia

Monitorovanie teploty a vlhkosti

Šablóna poskytuje jedno zariadenie Teplotný senzor, ktoré číta teplotu okolia z MQTT topicu shellies/shellyht-{deviceId}/sensor/temperature. Hodnoty sa publikujú ako desatinné číslo v stupňoch Celzia.

Servisný atribút Vlhkosť číta relatívnu vlhkosť z shellies/shellyht-{deviceId}/sensor/humidity. MQTT payload sa publikuje v rozsahu 0–100 %, ale šablóna ho interne konvertuje na rozsah 0–1 (napr. MQTT hodnota 45.2 sa v TapHome uloží ako 0.452).

Obe merania sa aktualizujú pri každom zobudení senzora z režimu spánku — predvolene každých 60 sekúnd, alebo kontinuálne pri USB napájaní.

Ďalšie možnosti

Shelly H&T tiež publikuje úroveň batérie (0–100 %, CR123A), stav online/offline cez MQTT Last Will and Testament a správu o oznámení zariadenia s modelom, MAC, IP a verziou firmvéru (firmvér >=1.6.0). Tieto možnosti môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

Senzor nehlási údaje
  1. Overte, že Shelly H&T je pripojený k Wi-Fi a MQTT je zapnutý v nastaveniach zariadenia (Internet & SecurityAdvanced - Developer Settings)
  2. Skontrolujte, či je adresa a port MQTT brokera správne nastavený vo webovom rozhraní Shelly aj v nastaveniach modulu TapHome
  3. Potvrďte, že premenná deviceId presne zodpovedá Device ID (posledných 6 hex znakov MAC, napr. 112233)
  4. Použite MQTT klienta (napr. MQTT Explorer) na odber shellies/shellyht-# a overte, že senzor publikuje správy pri zobudení
Hodnota vlhkosti sa zdá nesprávna

Šablóna delí hodnotu vlhkosti z MQTT stom — vlhkosť 45,2 % sa v TapHome uloží ako 0,452. Toto je očakávané správanie, keďže TapHome používa rozsah 0–1 pre hodnoty vlhkosti. Rozhranie TapHome zobrazí hodnotu správne ako percentá.

Batéria sa rýchlo vybíja
  1. Shelly H&T je navrhnutý na výdrž batérie až 18 mesiacov pri predvolenej 60-sekundovej dobe spánku
  2. Časté opätovné pripájanie k Wi-Fi (slabý signál, zmena kanálov) výrazne zvyšuje spotrebu energie
  3. Zabezpečte silný Wi-Fi signál na mieste senzora — zariadenie má približne 30 m dosah v interiéri

Zariadenia Shelly Gen1 nepodporujú MQTT cez TLS. Komunikácia medzi senzorom a MQTT brokerom nie je šifrovaná (plain MQTT, port 1883). Zabezpečte, aby bol MQTT broker v dôveryhodnej lokálnej sieti.

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 MQTT Modul
Vlastné premenné
deviceId (string)MQTT Device ID zariadenia Shelly H&T — posledných 6 hex znakov MAC adresy (napr. 112233)
Teplotný senzor Teplotný senzor Len na čítanie

Teplota okolia a vlhkosť — číta °C z MQTT, vlhkosť konvertovaná z 0–100 % na rozsah 0–1

float Jednotka: °C

Teplotný senzor

Čítanie vlhkosti
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
Hu := listenHum;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Čítanie teploty
# Simple HTTP Request:
# VAR response := SENDHTTPREQUEST("/example/getValue");
# IF response.IsSuccess
#  VAR content := response.Content;
#  VAR responseHeaders := response.Headers;
#  RETURN(PARSEXML(content, "//element1/value1"));
# ELSE
#  ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
#  RETURN(NaN);
# END
te := listenTemp;
# Set Http request method, body and headers
# VAR response := SENDHTTPREQUEST("/example/getValue", "GET", "some data", "header1:value1", "header2:value2", ...);
# OR
# VAR request := HTTPREQUEST("/example/getValue", "POST", "some data");
# request.headers := { "header1:value1", "header2:value2", ...};
# request.method := "GET";
# request.data := null;
# VAR response := SENDHTTPREQUEST(request);
#
#
# Send TCP, UDP data:
# VAR data1 := BYTECOLLECTION("0a bb ea df 01");
# SENDDATA(data1);
# VAR data2 := "{\"name\":\"John\", \"age\":32}";
# SENDDATA(data2);
# VAR data3 := TOBYTES("{\"name\":\"John\", \"age\":32}", "iso-8859-1");
# SENDDATA(data3);
# Process received TCP or UDP data and set device values in the Listener script
#
#
# Download data from FTP:
# FTPDOWNLOAD("filePath");
Listener
# Parse received bytes:
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/temperature")
 listenTemp := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD));
END
IF(RECEIVEDMSG.TOPIC = "shellies/shellyht-"+ deviceId +"/sensor/humidity")
 listenHum := todouble(TOSTRING(RECEIVEDMSG.PAYLOAD))/100;
END
Pripojenie: Packet Parser → MQTT
Možné vylepšenia (3)
  • Battery Level — Battery percentage (0–100%, CR123A). Available via MQTT but not parsed in template listener script.
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline sensor.
  • Device Announcement — JSON payload with device model, MAC, IP, firmware version. Published on connect (FW ≥1.6.0).

Zdroje