TapHome

Tuya TS0201 Temperature & Humidity Sensor

Packet Parser → MQTT
Přidal
Poslední aktualizace: 06. 2026
Tuya TS0201 Temperature & Humidity Sensor

Tuya TS0201 je levný Zigbee snímač teploty a vlhkosti napájený z baterie s malým LCD displejem. Stejný hardware se prodává také pod značkou BlitzWolf BW-IS4 (white label). Zařízení je oblíbené jako levný snímač klimatu v místnosti v cenové kategorii vstupní úrovně.

TapHome komunikuje s TS0201 nepřímo — snímač se páruje se Zigbee koordinátorem (např. Sonoff ZBDongle-P/E, stick na bázi CC2652, CC2531), který je spravován Zigbee2MQTT bránou. Zigbee2MQTT překládá Zigbee zprávy na JSON payload na MQTT topicích. TapHome se přihlašuje na tato témata přes modul PacketParser MQTT a mapuje hodnoty na služby teploty/vlhkosti s atributy baterie a kvality spojení.

Požadavky

Pro používání TS0201 s TapHome jsou potřeba následující komponenty:

  • Zigbee koordinátor — USB stick na bázi CC2652P/CC2652R nebo CC2531, například Sonoff ZBDongle-P nebo Sonoff ZBDongle-E
  • Zigbee2MQTT brána — běží na dedikovaném hostiteli (Raspberry Pi, NUC, NAS) nebo jako kontejner vedle MQTT brokeru
  • MQTT broker — doporučená je Mosquitto; musí být dostupná jak z hostitele Zigbee2MQTT, tak z TapHome CCU
  • TapHome CCU s podporou PacketParser (model PacketParserCCU)

Samotný TS0201 se nepřipojuje k Wi-Fi ani Ethernetu — veškerá IP síťová komunikace probíhá mezi MQTT brokerem a TapHome CCU.

Párování

Před importem TapHome šablony je potřeba TS0201 spárovat se Zigbee2MQTT koordinátorem:

  1. Otevřete webové rozhraní Zigbee2MQTT a zapněte režim párování (Permit join)
  2. Na TS0201 podržte reset tlačítko přibližně pět sekund, dokud nezačne blikat síťový indikátor v horní části displeje
  3. Zařízení se automaticky připojí do Zigbee sítě a objeví se v seznamu zařízení Zigbee2MQTT s IEEE adresou (např. 0xa4c1388f85d9eca2)
  4. Volitelně zařízení přejmenujte a přiřaďte mu čitelné friendly name (např. loznice_klima) ve webovém rozhraní Zigbee2MQTT

Procento baterie se po spárování může objevit až po 24 hodinách — snímač hlásí hodnotu baterie pouze periodicky.

Konfigurace

Parametry importu

Při importu šablony v TapHome zadejte adresu MQTT brokeru:

ParametrPopisVýchozí hodnota
Mqtt Broker ipAddressIP adresa nebo hostname MQTT brokeru192.168.0.1
Mqtt Broker portTCP port MQTT brokeru1883
Proměnná modulu

Po importu šablony nastavte vlastní proměnnou TS0201, která identifikuje zařízení na MQTT brokeru:

ProměnnáPopisJak získatPříklad
TS0201Zigbee2MQTT friendly name nebo IEEE adresa snímačeZigbee2MQTT web UI → Devices → najdi TS0201 → zkopíruj Friendly name nebo IEEE adresu0xa4c1388f85d9eca2

Proměnná se používá jako přípona MQTT topiku — listener skript se přihlašuje na zigbee2mqtt/{TS0201} a parsuje JSON payload stavu.

Použití friendly name (např. loznice_klima) místo IEEE adresy činí konfiguraci TapHome čitelnější. Friendly name lze změnit ve webovém rozhraní Zigbee2MQTT v nastavení zařízení.

Možnosti zařízení

Šablona mapuje TS0201 jako zařízení typu Temperature Sensor v TapHome a vedle teploty vystavuje i vlhkost spolu s atributy baterie a signálu.

Teplota a vlhkost

Teplota (°C) a relativní vlhkost (%) se parsují z JSON state topiku zigbee2mqtt/{TS0201}. Snímač hlásí nové hodnoty vždy, když se změní měřená veličina, nebo periodicky podle rozvrhu Zigbee2MQTT brány.

Příklad payloadu publikovaného přes Zigbee2MQTT:

1
2
3
4
5
6
7
{
  "battery": 95,
  "humidity": 54.2,
  "linkquality": 132,
  "temperature": 21.7,
  "voltage": 3000
}
Monitorování baterie a signálu

Zařízení kromě primárních hodnot teploty a vlhkosti vystavuje tři atributy služeb:

  • Battery — zbývající procento baterie (0–100 %) z JSON state payloadu. První hodnota se může objevit až 24 hodin po spárování.
  • Battery Voltage — surové napětí baterie v milivoltech z JSON state payloadu.
  • LinkQuality — ukazatel kvality Zigbee signálu (LQI) z JSON state payloadu, v rozsahu od 0 (nejhorší) do 255 (nejlepší).

Všechny atributy zobrazují "-" dokud nepřijde první zpráva ze zařízení.

Známé problémy

Hodnota vlhkosti dělená 100

Současný listener skript v šabloně dělí payload vlhkosti stem (Hu := payloadHum/100). Zigbee2MQTT však publikuje vlhkost přímo jako procento (např. 54.2 znamená 54,2 %), takže aplikováním /100 vznikne 0.542 % místo očekávaných 54.2 %.

Zkontrolujte hlášenou vlhkost na živém hardwaru. Pokud je hodnota zjevně posunutá o dvě desetinná místa, upravte listener skript na Hu := payloadHum; (bez dělení /100).

Nespouštějte OTA aktualizace firmwaru

Nejnovější publikovaný image firmwaru TS0201 zařízení “zabrickuje” a činí jej zcela nepoužitelným. Zigbee2MQTT nabízí OTA aktualizace pro toto zařízení, ale nesmí být aplikovány, dokud upstream nezveřejní bezpečný image. Detaily v Zigbee2MQTT GitHub issue #25207.

NESPOUŠTĚJTE OTA aktualizaci pro TS0201 z webového rozhraní Zigbee2MQTT. Aktuální image je znám tím, že zařízení zabrickuje.

Řešení problémů

Žádná přijatá data
  1. Ověřte, že TS0201 se objevuje v seznamu zařízení Zigbee2MQTT s nedávným časovým razítkem “Last seen”
  2. Zkontrolujte, že vlastní proměnná TS0201 v TapHome se přesně shoduje s friendly name nebo IEEE adresou zařízení — shoda rozlišuje velikost písmen
  3. Pomocí MQTT klienta (např. MQTT Explorer) se přihlaste na zigbee2mqtt/# a potvrďte, že JSON payloady přicházejí na zigbee2mqtt/{friendly_name}
  4. Ověřte, že IP a port MQTT brokeru v parametrech importu TapHome odpovídají brokeru dostupnému z CCU
Zařízení se zobrazuje jako offline v Zigbee2MQTT
  1. TS0201 je bateriově napájené koncové zařízení — mezi reporty spí, aby šetřilo energii. “Offline” může jednoduše znamenat, že zařízení nedávno nevysílalo; počkejte na další naplánovaný report nebo krátce stiskněte reset tlačítko pro vynucené přihlášení.
  2. Pokud se zařízení už nikdy neobjeví online, Zigbee spojení může být přerušené kvůli vzdálenosti od koordinátora. Přesuňte snímač blíže nebo přidejte Zigbee router (Zigbee zařízení napájené ze sítě) pro rozšíření mesh sítě.
  3. Zkontrolujte atribut LinkQuality — hodnoty pod ~30 lqi naznačují slabý signál.
Zastaralé hodnoty baterie nebo kvality spojení
  1. Baterie a napětí se aktualizují pouze když se snímač probudí a odešle report — může to být jednou za několik hodin
  2. Pokud se zobrazuje "-", zatím nepřišla žádná MQTT zpráva; počkejte na další report nebo zařízení znovu spárujte
  3. Po opětovném spárování může baterie zůstat "-" až 24 hodin, než se publikuje první hodnota

Dostupná zařízení

Tuya TS0201 Modul
Vlastní proměnné
TS0201 (string) = 0xa4c1388f85d9eca2Zigbee2MQTT friendly name nebo IEEE adresa snímače TS0201 — používá se jako přípona MQTT topiku (zigbee2mqtt/{friendly_name})
Open Zigbee2MQTT web UI → Devices → find the TS0201 → copy the Friendly name (or use the IEEE address, e.g. 0xa4c1388f85d9eca2)
Snímač teploty a vlhkosti Teplotní senzor Pouze ke čtení

Teplota (°C) a relativní vlhkost (%) parsované z JSON state payloadu Zigbee2MQTT

JSON Jednotka: °C / % json_path
Servisní atributy
BaterieZbývající procento baterie (0–100 %); první hodnota se může objevit až 24 hodin po spárování
Napětí baterieSurové napětí baterie v milivoltech (mV) parsované z JSON state payloadu
LinkQualityUkazatel kvality Zigbee signálu (LQI) — 0 (nejhorší) až 255 (nejlepší)

Snímač teploty a vlhkosti

Č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
#
# 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
#
# 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
Servisní atributy
Battery
IF(ISNAN(battery),"-",battery+"%");
Battery Voltage
IF(ISNAN(voltage),"-",voltage+"mV");
LinkQuality
IF(ISNAN(link),"-",link+"lqi");
Připojení: Packet Parser → MQTT
Možná vylepšení (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.

Zdroje

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Ověřeno TapHome

Chcete to použít ve svém TapHome jádře?

Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu.

Otevřít v portálu