TapHome

Tuya TS0201 Temperature & Humidity Sensor

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 06. 2026
Tuya TS0201 Temperature & Humidity Sensor

A Tuya TS0201 egy olcsó, elemmel működő Zigbee hőmérséklet- és páraérzékelő kis LCD kijelzővel. Ugyanaz a hardver BlitzWolf BW-IS4 márkanév alatt is kapható (white label). Az eszköz népszerű olcsó szobaklíma-érzékelőként a belépő árkategóriában.

A TapHome közvetve kommunikál a TS0201-gyel — az érzékelő egy Zigbee koordinátorral párosodik (pl. Sonoff ZBDongle-P/E, CC2652-alapú stick, CC2531), amelyet Zigbee2MQTT átjáró kezel. A Zigbee2MQTT a Zigbee üzeneteket JSON payloadokká fordítja le MQTT topicokon. A TapHome egy PacketParser MQTT modulon keresztül feliratkozik ezekre a topicokra, és a értékeket hőmérséklet/páratartalom szolgáltatásokra képezi le akkumulátor- és kapcsolat-minőségi attribútumokkal.

Követelmények

A TS0201 használatához a TapHome-mal a következő komponensek szükségesek:

  • Zigbee koordinátor — CC2652P/CC2652R vagy CC2531 alapú USB stick, például Sonoff ZBDongle-P vagy Sonoff ZBDongle-E
  • Zigbee2MQTT átjáró — dedikált hoston (Raspberry Pi, NUC, NAS) vagy konténerként az MQTT broker mellett fut
  • MQTT broker — a Mosquitto ajánlott; elérhetőnek kell lennie mind a Zigbee2MQTT hostról, mind a TapHome CCU-ról
  • TapHome CCU PacketParser támogatással (PacketParserCCU modell)

Maga a TS0201 nem csatlakozik Wi-Fi vagy Ethernet hálózathoz — minden IP-hálózati kommunikáció az MQTT broker és a TapHome CCU között zajlik.

Párosítás

A TapHome sablon importálása előtt a TS0201-et párosítani kell a Zigbee2MQTT koordinátorral:

  1. Nyissa meg a Zigbee2MQTT webes felületét, és engedélyezze a párosítási módot (Permit join)
  2. A TS0201-en tartsa nyomva a reset gombot körülbelül öt másodpercig, amíg a hálózati jelző a kijelző tetején villogni nem kezd
  3. Az eszköz automatikusan csatlakozik a Zigbee hálózathoz, és IEEE címmel (pl. 0xa4c1388f85d9eca2) megjelenik a Zigbee2MQTT eszközlistájában
  4. Opcionálisan nevezze át az eszközt, és rendeljen hozzá olvasható friendly name-et (pl. haloszoba_klima) a Zigbee2MQTT webes felületén

Az akkumulátor százaléka a párosítás után akár 24 órát is igénybe vehet, amíg megjelenik — az érzékelő csak periodikusan jelenti az akkumulátor értékét.

Konfiguráció

Import paraméterek

A sablon TapHome-ba történő importálásakor adja meg az MQTT broker címét:

ParaméterLeírásAlapérték
Mqtt Broker ipAddressAz MQTT broker IP-címe vagy hostneve192.168.0.1
Mqtt Broker portAz MQTT broker TCP portja1883
Modul változó

A sablon importálása után állítsa be a TS0201 egyéni változót, hogy azonosítsa az eszközt az MQTT brokeren:

VáltozóLeírásHogyan szerezhető megPélda
TS0201A Zigbee2MQTT friendly name vagy az érzékelő IEEE címeZigbee2MQTT web UI → Devices → keresse meg a TS0201-et → másolja a Friendly name-et vagy az IEEE címet0xa4c1388f85d9eca2

A változó az MQTT topic utótagjaként szolgál — a listener script feliratkozik a zigbee2mqtt/{TS0201}-re és elemzi a JSON állapot payloadot.

A friendly name (pl. haloszoba_klima) használata az IEEE cím helyett olvashatóbbá teszi a TapHome konfigurációt. A friendly name a Zigbee2MQTT webes felületén az eszköz beállításai között módosítható.

Eszközfunkciók

A sablon a TS0201-et Temperature Sensor típusú eszközként képezi le a TapHome-ban, és a hőmérséklet mellett a páratartalmat is elérhetővé teszi akkumulátor- és jel-attribútumokkal együtt.

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

A hőmérsékletet (°C) és a relatív páratartalmat (%) a zigbee2mqtt/{TS0201} JSON állapot topicból elemzi. Az érzékelő új értékeket jelent, amikor egy mért mennyiség változik, vagy a Zigbee2MQTT átjáró által kezelt periodikus ütemterv szerint.

Példa a Zigbee2MQTT által publikált payloadra:

1
2
3
4
5
6
7
{
  "battery": 95,
  "humidity": 54.2,
  "linkquality": 132,
  "temperature": 21.7,
  "voltage": 3000
}
Akkumulátor- és jelfigyelés

Az eszköz a primér hőmérséklet- és páratartalom-értékek mellett három szolgáltatás-attribútumot tesz elérhetővé:

  • Battery — fennmaradó akkumulátorszázalék (0–100 %) a JSON állapot payloadból. Az első érték akár 24 órát is igénybe vehet a párosítás után.
  • Battery Voltage — nyers akkumulátorfeszültség millivoltban a JSON állapot payloadból.
  • LinkQuality — Zigbee jelminőség-indikátor (LQI) a JSON állapot payloadból, 0 (legrosszabb) és 255 (legjobb) közötti tartományban.

Minden attribútum "-"-ot jelenít meg, amíg az első üzenet meg nem érkezik az eszköztől.

Ismert problémák

A páratartalom értéke 100-zal osztva

A sablon jelenlegi listener scriptje a páratartalom payloadot 100-zal osztja (Hu := payloadHum/100). A Zigbee2MQTT azonban a páratartalmat közvetlenül százalékként publikálja (pl. 54.2 azt jelenti, hogy 54,2 %), így a /100 alkalmazása 0.542 %-ot eredményez a várt 54.2 % helyett.

Ellenőrizze a jelentett páratartalmat éles hardveren. Ha az érték láthatóan két tizedesjeggyel el van tolódva, módosítsa a listener scriptet Hu := payloadHum;-ra (a /100 osztás nélkül).

Ne alkalmazzon OTA firmware-frissítéseket

A TS0201 legutóbb közzétett firmware-képe használhatatlanná teszi az eszközt. A Zigbee2MQTT OTA-frissítéseket kínál ehhez az eszközhöz, de ezeket nem szabad alkalmazni, amíg a upstream nem ad ki biztonságos képet. Részletek a Zigbee2MQTT GitHub issue #25207 alatt.

NE indítson OTA frissítést a TS0201-hez a Zigbee2MQTT webes felületéről. A jelenlegi kép ismerten használhatatlanná teszi az érzékelőt.

Hibaelhárítás

Nincsenek beérkező adatok
  1. Ellenőrizze, hogy a TS0201 megjelenik-e a Zigbee2MQTT eszközlistájában nemrégi “Last seen” időbélyeggel
  2. Ellenőrizze, hogy a TS0201 egyéni változó a TapHome-ban pontosan megegyezik-e az eszköz friendly name-jével vagy IEEE címével — az egyezés kis- és nagybetű érzékeny
  3. Egy MQTT klienssel (pl. MQTT Explorer) iratkozzon fel a zigbee2mqtt/#-re, és erősítse meg, hogy JSON payloadok érkeznek a zigbee2mqtt/{friendly_name}-re
  4. Ellenőrizze, hogy az MQTT broker IP-címe és portja a TapHome import paraméterekben megegyezik-e a CCU-ról elérhető brokerrel
Az eszköz offline-ként jelenik meg a Zigbee2MQTT-ben
  1. A TS0201 elemes végeszköz — jelentések között alszik, hogy energiát takarítson meg. Az “offline” egyszerűen azt jelentheti, hogy az eszköz nemrég nem adott; várja meg a következő ütemezett jelentést, vagy röviden nyomja meg a reset gombot a bejelentkezés kényszerítésére.
  2. Ha az eszköz soha nem kerül vissza online-ba, a Zigbee kapcsolat megszakadhatott a koordinátortól való távolság miatt. Helyezze az érzékelőt közelebb, vagy adjon hozzá egy Zigbee routert (hálózatról táplált Zigbee eszköz) a mesh hálózat bővítésére.
  3. Ellenőrizze a LinkQuality attribútumot — a ~30 lqi alatti értékek gyenge jelet jeleznek.
Elavult akkumulátor- vagy kapcsolat-minőségi értékek
  1. Az akkumulátor és a feszültség csak akkor frissül, amikor az érzékelő felébred és jelentést küld — ez néhány óránként egyszer történhet
  2. Ha "-" jelenik meg, még nem érkezett MQTT üzenet; várja meg a következő jelentést, vagy párosítsa újra az eszközt
  3. Újrapárosítás után az akkumulátor akár 24 óráig is "-" maradhat, mielőtt az első érték publikálásra kerülne

Elérhető eszközök

Tuya TS0201 Modul
Egyéni változók
TS0201 (string) = 0xa4c1388f85d9eca2A TS0201 érzékelő Zigbee2MQTT friendly name-je vagy IEEE címe — az MQTT topic utótagjaként szolgál (zigbee2mqtt/{friendly_name})
Open Zigbee2MQTT web UI → Devices → find the TS0201 → copy the Friendly name (or use the IEEE address, e.g. 0xa4c1388f85d9eca2)
Hőmérséklet- és páraérzékelő Hőmérséklet-érzékelő Csak olvasható

A hőmérséklet (°C) és a relatív páratartalom (%) a Zigbee2MQTT JSON állapot payloadból kerül elemzésre

JSON Egység: °C / % json_path
Szerviz attribútumok
AkkumulátorFennmaradó akkumulátorszázalék (0–100 %); az első érték akár 24 órát is igénybe vehet a párosítás után
Akkumulátor feszültségNyers akkumulátorfeszültség millivoltban (mV) a JSON állapot payloadból elemezve
LinkQualityZigbee jelminőség-indikátor (LQI) — 0 (legrosszabb) 255-ig (legjobb)

Hőmérséklet- és páraé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
#
# 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
#
# 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ő
if RECEIVEDMSG.TOPIC = "zigbee2mqtt/"+ TS0201 
   VAR payloadTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature");
   Te := payloadTemp;
   VAR payloadHum := PARSEJSON(RECEIVEDMSG.PAYLOAD, "humidity");
   Hu := payloadHum/100;
   battery := PARSEJSON(RECEIVEDMSG.PAYLOAD,"battery", true);
   voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD,"voltage", true);
   link := PARSEJSON(RECEIVEDMSG.PAYLOAD,"linkquality", true);
end
Szerviz attribútumok
Battery
IF(ISNAN(battery),"-",battery+"%");
Battery Voltage
IF(ISNAN(voltage),"-",voltage+"mV");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (5)
  • Temperature calibration (absolute offset) — Configurable via Zigbee2MQTT devices.yaml or frontend UI — not exposed via TapHome template. Applied at Z2M layer.
  • Temperature precision (decimal digits 0-3) — Configured at the Z2M layer, not in TapHome template.
  • Humidity calibration (absolute offset) — Configured at the Z2M layer, not in TapHome template.
  • Humidity precision (decimal digits 0-3) — Configured at the Z2M layer, not in TapHome template.
  • Availability status — Online/offline availability topic — could detect unreachable devices. Not subscribed by the current template.

Források

Talált problémát ezzel az eszközsablonnal?

Írja meg, mi nem működik, mi hiányzik, vagy hogyan kellene a sablonnak viselkednie. Visszajelzése segít, hogy a katalógus pontos maradjon.

TapHome által hitelesítve

Használni szeretnéd ezt a TapHome Core-odban?

Nyisd meg ezt a sablont az ügyfélportálon, hogy alkalmazd az otthonaid egyikére, vagy készíts egy módosítást és küldd vissza a katalógusba.

Megnyitás a portálon