TapHome

Tuya TS0201 Temperature & Humidity Sensor

Packet Parser → MQTT
Autor
Posljednje ažuriranje: 04. 2026
Tuya TS0201 Temperature & Humidity Sensor

Tuya TS0201 povoljan je Zigbee senzor temperature i vlage na bateriju s malim LCD zaslonom. Isti se hardver prodaje i pod nazivom BlitzWolf BW-IS4 (white label). Uređaj je popularan kao jeftin senzor sobne klime u najnižem cjenovnom razredu.

TapHome sa senzorom TS0201 komunicira neizravno: senzor se uparuje sa Zigbee koordinatorom (npr. Sonoff ZBDongle-P/E, USB stick s čipom CC2652, CC2531) kojim upravlja most Zigbee2MQTT. Zigbee2MQTT pretvara Zigbee poruke u JSON poruke na MQTT temama. TapHome se na te teme pretplaćuje preko modula PacketParser MQTT i vrijednosti preslikava na temperaturu i vlažnost s atributima baterije i kvalitete veze.

Preduvjeti

Za korištenje senzora TS0201 sa sustavom TapHome potrebne su sljedeće komponente:

  • Zigbee koordinator: USB stick s čipom CC2652P/CC2652R ili CC2531, na primjer Sonoff ZBDongle-P ili Sonoff ZBDongle-E
  • Most Zigbee2MQTT: radi na zasebnom računalu (Raspberry Pi, NUC, NAS) ili kao kontejner uz MQTT broker
  • MQTT broker: preporučuje se Mosquitto; mora biti dostupan i s računala na kojem radi Zigbee2MQTT i s centralne jedinice TapHome (CCU)
  • Centralna jedinica TapHome (CCU) s podrškom za PacketParser (model PacketParserCCU)

Sam TS0201 ne spaja se na Wi-Fi ni Ethernet: sva IP komunikacija odvija se između MQTT brokera i centralne jedinice TapHome.

Uparivanje

Prije uvoza predloška TapHome senzor TS0201 mora biti uparen s koordinatorom Zigbee2MQTT:

  1. Otvorite web-sučelje Zigbee2MQTT i uključite način uparivanja (Permit join)
  2. Na senzoru TS0201 pritisnite i držite tipku za resetiranje oko pet sekundi, dok indikator mreže na vrhu zaslona ne počne treptati
  3. Uređaj se automatski pridružuje Zigbee mreži i pojavljuje se na popisu uređaja Zigbee2MQTT s IEEE adresom (npr. 0xa4c1388f85d9eca2)
  4. Po želji u web-sučelju Zigbee2MQTT preimenujte uređaj i dodijelite mu čitljiv friendly name (npr. bedroom_climate)

Nakon uparivanja može proći do 24 sata dok se pojavi postotak baterije jer senzor vrijednost baterije javlja samo povremeno.

Konfiguracija

Parametri uvoza

Pri uvozu predloška u TapHome unesite adresu MQTT brokera:

ParametarOpisZadano
Mqtt Broker ipAddressIP adresa ili naziv računala (hostname) MQTT brokera192.168.0.1
Mqtt Broker portTCP port MQTT brokera1883
Varijabla modula

Nakon uvoza predloška postavite korisničku varijablu TS0201 kojom se uređaj prepoznaje na MQTT brokeru:

VarijablaOpisKako je dobitiPrimjer
TS0201Zigbee2MQTT friendly name ili IEEE adresa senzoraWeb-sučelje Zigbee2MQTT → Devices → pronađite TS0201 → kopirajte Friendly name ili IEEE adresu0xa4c1388f85d9eca2

Varijabla se koristi kao sufiks MQTT teme: skripta slušatelja pretplaćuje se na zigbee2mqtt/{TS0201} i raščlanjuje JSON poruku stanja.

Ako umjesto IEEE adrese koristite friendly name (npr. bedroom_climate), konfiguracija u sustavu TapHome je preglednija. Friendly name može se promijeniti u web-sučelju Zigbee2MQTT u postavkama uređaja.

Mogućnosti uređaja

Predložak u sustavu TapHome prikazuje TS0201 kao senzor temperature, a uz to daje vlažnost te atribute baterije i signala.

Temperatura i vlažnost

Temperatura (°C) i relativna vlažnost (%) raščlanjuju se iz JSON teme stanja zigbee2mqtt/{TS0201}. Senzor javlja nove vrijednosti kad god se izmjerena veličina promijeni ili periodično, prema rasporedu kojim upravlja most Zigbee2MQTT.

Primjer poruke koju objavljuje Zigbee2MQTT:

1
2
3
4
5
6
7
{
  "battery": 95,
  "humidity": 54.2,
  "linkquality": 132,
  "temperature": 21.7,
  "voltage": 3000
}
Praćenje baterije i signala

Uz glavne vrijednosti temperature i vlažnosti uređaj ima tri servisna atributa:

  • Baterija: preostali postotak baterije (0–100 %) iz JSON poruke stanja. Nakon uparivanja može proći do 24 sata dok stigne prva vrijednost.
  • Napon baterije: neobrađeni napon baterije u milivoltima iz JSON poruke stanja.
  • LinkQuality: pokazatelj kvalitete Zigbee signala (LQI) iz JSON poruke stanja, u rasponu od 0 (najlošiji) do 255 (najbolji).

Svi atributi prikazuju "-" dok s uređaja ne stigne prva poruka.

Poznati problemi

Vrijednost vlažnosti podijeljena sa 100

Trenutačna skripta slušatelja u predlošku dijeli vrijednost vlažnosti sa 100 (Hu := payloadHum/100). Međutim, Zigbee2MQTT vlažnost objavljuje izravno kao postotak (npr. 54.2 znači 54,2 %), pa dijeljenje sa /100 daje 0.542 % umjesto očekivanih 54.2 %.

Provjerite javljenu vlažnost na stvarnom uređaju. Ako je vrijednost očito pomaknuta za dva decimalna mjesta, promijenite skriptu slušatelja u Hu := payloadHum; (bez dijeljenja /100).

Ne primjenjujte bežična (OTA) ažuriranja firmvera

Najnovija objavljena slika firmvera za TS0201 trajno onesposobljuje uređaj i čini ga potpuno neupotrebljivim. Zigbee2MQTT za ovaj uređaj nudi OTA ažuriranja, ali ih ne smijete primijeniti dok ne bude objavljena sigurna slika. Pojedinosti potražite u prijavi problema Zigbee2MQTT na GitHubu #25207.

NE pokrećite OTA ažuriranje za TS0201 iz web-sučelja Zigbee2MQTT. Poznato je da trenutačna slika firmvera trajno onesposobljuje senzor.

Rješavanje problema

Podaci ne stižu
  1. Provjerite je li TS0201 na popisu uređaja Zigbee2MQTT s nedavnom vremenskom oznakom „Last seen”
  2. Provjerite odgovara li korisnička varijabla TS0201 u sustavu TapHome točno nazivu uređaja (friendly name) ili njegovoj IEEE adresi. Razlikuju se velika i mala slova
  3. MQTT klijentom (npr. MQTT Explorer) pretplatite se na zigbee2mqtt/# i provjerite stižu li JSON poruke na zigbee2mqtt/{friendly_name}
  4. Provjerite odgovaraju li IP adresa i port MQTT brokera u parametrima uvoza TapHome brokeru koji je dostupan s centralne jedinice
Uređaj se u Zigbee2MQTT-u prikazuje kao izvan mreže
  1. TS0201 je krajnji uređaj na bateriju koji između dva javljanja spava kako bi štedio energiju. „Offline” može jednostavno značiti da uređaj u posljednje vrijeme nije ništa poslao. Pričekajte sljedeće redovno javljanje ili kratko pritisnite tipku za resetiranje kako bi uređaj poslao podatke.
  2. Ako se uređaj nikada ne vrati na mrežu, Zigbee veza je možda prekinuta zbog udaljenosti od koordinatora. Približite senzor ili dodajte Zigbee usmjerivač (Zigbee uređaj s mrežnim napajanjem) kako biste proširili mesh mrežu.
  3. Provjerite atribut LinkQuality. Vrijednosti ispod ~30 lqi znače slab signal.
Zastarjele vrijednosti baterije ili kvalitete veze
  1. Baterija i napon ažuriraju se samo kada se senzor probudi i javi, što može biti jednom u nekoliko sati
  2. Ako vrijednosti prikazuju "-", još nije primljena nijedna MQTT poruka. Pričekajte sljedeće javljanje ili ponovno uparite uređaj
  3. Nakon ponovnog uparivanja baterija može do 24 sata prikazivati "-" prije nego što se objavi prva vrijednost

Dostupni uređaji

Tuya TS0201 Modul
Prilagođene varijable
TS0201 (string) = 0xa4c1388f85d9eca2Zigbee2MQTT friendly name ili IEEE adresa senzora TS0201 — koristi se kao sufiks MQTT teme (zigbee2mqtt/{friendly_name})
Open Zigbee2MQTT web UI → Devices → find the TS0201 → copy the Friendly name (or use the IEEE address, e.g. 0xa4c1388f85d9eca2)
Senzor temperature i vlage Senzor temperature Samo za čitanje

Temperatura (°C) i relativna vlažnost (%) raščlanjene iz JSON poruke stanja Zigbee2MQTT

JSON Jedinica: °C / % json_path
Servisni atributi
BaterijaPreostali postotak baterije (0–100 %); nakon uparivanja može proći do 24 sata dok stigne prva vrijednost
Napon baterijeNeobrađeni napon baterije u milivoltima (mV) raščlanjen iz JSON poruke stanja
LinkQualityPokazatelj kvalitete Zigbee signala (LQI) — od 0 (najlošiji) do 255 (najbolji)

Senzor temperature i vlage

Čitanje vlažnosti
# 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");
Čitanje temperature
# 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");
Listener
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
Servisni atributi
Battery
IF(ISNAN(battery),"-",battery+"%");
Battery Voltage
IF(ISNAN(voltage),"-",voltage+"mV");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
Povezivanje: Packet Parser → MQTT
Moguća poboljšanja (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.

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu