TapHome

Shelly H&T

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 04. 2026
Shelly H&T

A Shelly H&T egy elemes (CR123A) Wi-Fi hőmérséklet- és páratartalom-érzékelő a Shelly Gen1 termékcsaládból. A TapHome MQTT-n keresztül kommunikál az eszközzel — ez az ajánlott protokoll az elemes Shelly érzékelőkhöz, mivel az eszköz a mérések között alszik, és csak ébredéskor küld adatokat.

A sablon egyetlen Hőmérséklet-érzékelő eszközt hoz létre Páratartalom szervizattribútummal, amely egyetlen Shelly H&T egységből követi a környezeti hőmérsékletet és a relatív páratartalmat.

Konfiguráció

Device ID

A Shelly H&T MQTT Device ID-t használ shellyht-<MAC6> formátumban, ahol a <MAC6> a MAC-cím utolsó 6 karaktere kisbetűs hexadecimális formában (pl. shellyht-112233).

A Device ID megtalálható:

  • Az eszköz címkéjén (MAC-cím)
  • A Shelly webes felületen: SettingsDevice Info
  • API-n keresztül: GET http://<device-ip>/settingsmqtt.id mező
Sablon beállítása

A sablon importálása után a TapHome-ban:

  1. Nyisd meg a Shelly H&T MQTT modult
  2. Állítsd be az MQTT Broker IP-t és a Port-ot (alapértelmezett 1883)
  3. Állítsd be a deviceId változót a Shelly H&T Device ID-jére (pl. 112233 — a MAC-cím utolsó 6 hex karaktere)

A modul feliratkozik a shellies/# topicra, és a listener szkript a beállított Device ID alapján szűri az üzeneteket.

A Shelly Gen1 eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot — a kettő nem működhet egyszerre. Az MQTT-t a Shelly webes felületen engedélyezd az Internet & SecurityAdvanced - Developer Settings menüpontban.

Az alapértelmezett alvási periódus 60 másodperc. Gyakoribb frissítésekhez opcionális USB adapter áll rendelkezésre — külső tápellátás esetén az alvó mód kikapcsol, és az érzékelő folyamatosan mér.

Eszközfunkciók

Hőmérséklet- és páratartalom-monitorozás

A sablon egyetlen Hőmérséklet-érzékelő eszközt biztosít, amely a környezeti hőmérsékletet olvassa a shellies/shellyht-{deviceId}/sensor/temperature MQTT topicról. Az értékek lebegőpontos számként, Celsius-fokban kerülnek közzétételre.

A Páratartalom szervizattribútum a relatív páratartalmat olvassa a shellies/shellyht-{deviceId}/sensor/humidity topicról. Az MQTT payload 0–100 % tartományban kerül közzétételre, de a sablon belsőleg 0–1 tartományra konvertálja (pl. az MQTT 45.2 érték a TapHome-ban 0.452-ként tárolódik).

Mindkét mérés az érzékelő alvó módból való ébredésekor frissül — alapértelmezetten 60 másodpercenként, vagy folyamatosan USB tápellátás esetén.

További funkciók

A Shelly H&T az akkumulátor töltöttségi szintjét (0–100 %, CR123A), online/offline állapotot az MQTT Last Will and Testament révén, valamint egy eszközbejelentő üzenetet is közzétesz modellel, MAC-címmel, IP-vel és firmware-verzióval (firmware >=1.6.0). Ezek a funkciók egy jövőbeli sablonfrissítésben adhatók hozzá.

Hibaelhárítás

Az érzékelő nem küld adatokat
  1. Ellenőrizd, hogy a Shelly H&T csatlakozik a Wi-Fi-hez, és az MQTT engedélyezve van az eszköz beállításaiban (Internet & SecurityAdvanced - Developer Settings)
  2. Ellenőrizd, hogy az MQTT broker címe és portja helyes mind a Shelly webes felületen, mind a TapHome modul beállításaiban
  3. Győződj meg róla, hogy a deviceId változó pontosan megegyezik a Device ID-vel (a MAC utolsó 6 hex karaktere, pl. 112233)
  4. Használj MQTT klienst (pl. MQTT Explorer), iratkozz fel a shellies/shellyht-# topicra, és ellenőrizd, hogy az érzékelő ébredéskor üzeneteket tesz közzé
A páratartalom értéke helytelennek tűnik

A sablon az MQTT páratartalom-értéket elosztja 100-zal — a 45,2 %-os páratartalom a TapHome-ban 0,452-ként tárolódik. Ez elvárt működés, mivel a TapHome 0–1 tartományt használ a páratartalom-értékekhez. A TapHome felület az értéket helyesen, százalékban jeleníti meg.

Az akkumulátor gyorsan merül
  1. A Shelly H&T akár 18 hónapos akkumulátor-élettartamra tervezett az alapértelmezett 60 másodperces alvási periódussal
  2. A gyakori Wi-Fi újracsatlakozások (gyenge jel, csatornaváltás) jelentősen növelik az energiafogyasztást
  3. Biztosíts erős Wi-Fi jelet az érzékelő helyén — az eszköz belső térben kb. 30 m hatótávolsággal rendelkezik

A Shelly Gen1 eszközök nem támogatják az MQTT-t TLS-en keresztül. Az érzékelő és az MQTT broker közötti kommunikáció titkosítatlan (plain MQTT, 1883-as port). Győződj meg róla, hogy az MQTT broker megbízható helyi hálózaton van.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz csatlakoztatva a Wi-Fi-hez (ha még nem, lásd a HTTP kapcsolódási útmutatót)
  • MQTT broker fut a helyi hálózaton (pl. Mosquitto, Home Assistant vagy a TapHome beépített brokere)
  • TapHome CCU ugyanazon a hálózaton, mint a broker

A Gen1 eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot. A kettő nem futhat egyszerre. A Gen2/Plus eszközökön ez a korlátozás nem érvényes.

1. lépés — MQTT engedélyezése a Shelly eszközön

Gen1 eszközök (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon az Internet & SecurityAdvanced — MQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be az MQTT Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. Opcionálisan állítsa be az MQTT User és MQTT Password mezőket, ha a broker hitelesítést igényel
  6. Kattintson a Save gombra — az eszköz újraindul és csatlakozik a brokerhez

Gen2 / Plus eszközök (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon a SettingsMQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be a Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. A Client ID előre ki van töltve az eszköz azonosítójával (pl. shellyplus1pm-AABBCCDDEE) — hagyja így, hacsak nincs konkrét oka a változtatásra
  6. Kattintson a Save gombra és indítsa újra az eszközt

Az MQTT működésének ellenőrzéséhez használjon egy MQTT klienst (pl. MQTT Explorer), és iratkozzon fel a shellies/# (Gen1) vagy <device-id>/# (Gen2) topikra. Látnia kell az eszköz állapotüzeneteit.

2. lépés — Device ID / MQTT Client ID megkeresése

Egyes sablonok Device ID vagy MQTT Client ID paramétert igényelnek. Ez az egyedi azonosító, amelyet az MQTT topikokban használnak.

  • Gen1: a címkén MAC-címként található (pl. AABBCCDDEE). Device ID = shelly<model>-<mac>, pl. shelly1pm-AABBCCDDEE
  • Gen2/Plus: a Shelly webes felületén a SettingsDevice InfoDevice ID alatt található, vagy az eszköz címkéjén

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (MQTT) modult
  2. IP Address: adja meg az MQTT broker IP-címét (pl. 192.168.1.10)
  3. Port: 1883 (alapértelmezett; TLS esetén használjon 8883-at)
  4. Device ID / MQTT Client ID: adja meg a 2. lépésben kapott értéket (ha a sablon megköveteli)
  5. Importálja a sablont — a TapHome automatikusan feliratkozik az eszköz topikjaira

Elérhető eszközök

Shelly H&T MQTT Modul
Egyéni változók
deviceId (string)A Shelly H&T MQTT Device ID-je — a MAC-cím utolsó 6 hex karaktere (pl. 112233)
Hőmérséklet-érzékelő Hőmérséklet-érzékelő Csak olvasható

Környezeti hőmérséklet és páratartalom — °C olvasása MQTT-ről, páratartalom 0–100%-ról 0–1 tartományra konvertálva

float Egység: °C

Hőmérséklet-érzékelő

Páratartalom olvasása
# 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");
Hőmérséklet olvasása
# 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");
Figyelő
# 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
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (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).

Források