TapHome

Shelly H&T

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

Shelly H&T je bateriový (CR123A) Wi-Fi senzor teploty a vlhkosti z produktové řady Shelly Gen1. TapHome komunikuje se zařízením přes MQTT — doporučený protokol pro bateriové Shelly senzory, protože zařízení mezi měřeními spí a data odesílá pouze při probuzení.

Šablona vytvoří jedno zařízení Teplotní senzor se servisním atributem Vlhkost, které sleduje okolní teplotu i relativní vlhkost z jedné jednotky Shelly H&T.

Konfigurace

Device ID

Shelly H&T používá MQTT Device ID ve formátu shellyht-<MAC6>, kde <MAC6> je posledních 6 znaků MAC adresy v hexadecimálním tvaru malými písmeny (např. shellyht-112233).

Device ID najdete:

  • Na štítku zařízení (MAC adresa)
  • Ve webovém rozhraní Shelly: SettingsDevice Info
  • Přes API: GET http://<device-ip>/settings → pole mqtt.id
Nastavení šablony

Po importu šablony v TapHome:

  1. Otevřete modul Shelly H&T MQTT
  2. Nastavte MQTT Broker IP a Port (výchozí 1883)
  3. Nastavte proměnnou deviceId na Device ID vašeho Shelly H&T (např. 112233 — posledních 6 hex znaků MAC adresy)

Modul se přihlásí k odběru shellies/# a listener skript filtruje zprávy podle nakonfigurovaného Device ID.

Na zařízeních Shelly Gen1 zapnutí MQTT vypne Shelly Cloud — obojí nemůže fungovat současně. MQTT zapnete ve webovém rozhraní Shelly v části Internet & SecurityAdvanced - Developer Settings.

Výchozí doba spánku je 60 sekund. Pro častější aktualizace je k dispozici volitelný USB adaptér — při externím napájení se režim spánku vypne a senzor měří kontinuálně.

Možnosti zařízení

Monitorování teploty a vlhkosti

Šablona poskytuje jedno zařízení Teplotní senzor, které čte okolní teplotu z MQTT topicu shellies/shellyht-{deviceId}/sensor/temperature. Hodnoty se publikují jako desetinné číslo ve stupních Celsia.

Servisní atribut Vlhkost čte relativní vlhkost z shellies/shellyht-{deviceId}/sensor/humidity. MQTT payload se publikuje v rozsahu 0–100 %, ale šablona ho interně konvertuje na rozsah 0–1 (např. MQTT hodnota 45.2 se v TapHome uloží jako 0.452).

Obě měření se aktualizují při každém probuzení senzoru z režimu spánku — výchozích 60 sekund, nebo kontinuálně při USB napájení.

Další možnosti

Shelly H&T také publikuje úroveň baterie (0–100 %, CR123A), stav online/offline přes MQTT Last Will and Testament a zprávu o oznámení zařízení s modelem, MAC, IP a verzí firmwaru (firmware >=1.6.0). Tyto možnosti 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 je připojen k Wi-Fi a MQTT je zapnutý v nastavení zařízení (Internet & SecurityAdvanced - Developer Settings)
  2. Zkontrolujte, zda je adresa a port MQTT brokeru správně nastavený ve webovém rozhraní Shelly i v nastavení modulu TapHome
  3. Potvrďte, že proměnná deviceId přesně odpovídá Device ID (posledních 6 hex znaků MAC, např. 112233)
  4. Použijte MQTT klienta (např. MQTT Explorer) k odběru shellies/shellyht-# a ověřte, že senzor publikuje zprávy při probuzení
Hodnota vlhkosti se zdá nesprávná

Šablona dělí hodnotu vlhkosti z MQTT stem — vlhkost 45,2 % se v TapHome uloží jako 0,452. Toto je očekávané chování, protože TapHome používá rozsah 0–1 pro hodnoty vlhkosti. Rozhraní TapHome zobrazí hodnotu správně jako procenta.

Baterie se rychle vybíjí
  1. Shelly H&T je navržen na výdrž baterie až 18 měsíců při výchozí 60sekundové době spánku
  2. Časté opětovné připojování k Wi-Fi (slabý signál, změna kanálů) výrazně zvyšuje spotřebu energie
  3. Zajistěte silný Wi-Fi signál v místě senzoru — zařízení má přibližně 30 m dosah v interiéru

Zařízení Shelly Gen1 nepodporují MQTT přes TLS. Komunikace mezi senzorem a MQTT brokerem není šifrovaná (plain MQTT, port 1883). Zajistěte, aby byl MQTT broker v důvěryhodné lokální síti.

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 MQTT Modul
Vlastní proměnné
deviceId (string)MQTT Device ID zařízení Shelly H&T — posledních 6 hex znaků MAC adresy (např. 112233)
Teplotní senzor Teplotní senzor Pouze ke čtení

Okolní teplota a vlhkost — čte °C z MQTT, vlhkost konvertovaná z 0–100 % na rozsah 0–1

float Jednotka: °C

Teplotní senzor

Čtení 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");
Čtení 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
Připojení: Packet Parser → MQTT
Možná vylepšení (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