Oprava Tuya “Tem&Hum Sensor with Probe” v Home Assistant pomocí vlastního quirku
Některé Tuya teplotní a vlhkostní senzory s externí sondou do Home Assistantu přes oficiální integraci Tuya posílají pouze vnitřní teplotu.
Externí sonda přitom v aplikaci Tuya funguje a na Tuya IoT Platformě se zobrazuje jako ext_temp (DP 101), ale Home Assistant pro ni vůbec nevytvoří entitu.
Proto jsme vytvořili vlastní Tuya quirk s využitím knihovny tuya-device-handlers, kterou Home Assistant interně používá k „normalizaci“ chování Tuya zařízení.
Tento quirk Home Assistantu „vysvětlí“ další datové body zařízení, takže může zpřístupnit externí teplotu (a volitelně další parametry sondy) jako entity.
Proč byl quirk potřeba
Konkrétní zařízení je Tuya „Tem&Hum Sensor with Probe“:
V Tuya IoT Platformě zařízení navíc posílá datové body sondy:
-
ext_temp(DP 101) – teplota na externí sondě -
ext_maxtemp(DP 102) – horní teplotní limit pro alarm -
ext_mintemp(DP 103) – dolní teplotní limit pro alarm -
ext_temp_sensivitity(DP 104) – citlivost změny teploty -
ext_temp_alarm(DP 105) – režim alarmu
V diagnostice Home Assistantu a v oficiální integraci Tuya se ale zobrazují jen:
-
Vnitřní teplota (
va_temperature) -
Vlhkost (
va_humidity) -
Stav baterie (
battery_state)
Teplota z externí sondy v Home Assistantu prostě neexistuje, což dramaticky snižuje použitelnost senzoru pro hlídání lednic, mrazáků, bojlerů nebo jiných míst, kde je důležitá právě externí sonda.
Jak byl quirk postaven
Integrace Tuya v Home Assistantu používá knihovnu tuya-device-handlers, která definuje tzv. quirks – malé Python skripty mapující surové Tuya DP (datové body) na strukturované entity.
Pro tento senzor jsme vytvořili quirk soubor, který:
-
Cílí přímo na daný produkt podle Product ID
python.applies_to(product_id="m7kacaxrxbxeegfs")Díky tomu se quirk použije pouze na toto konkrétní zařízení, ne na všechna
wsdcg. -
Přidá externí sondu jako číselnou teplotní entitu
python.add_dpid_integer( dpid=101, # ext_temp dpcode="ext_temp", # nebo jiný kód mapovaný na teplotu dpmode=DPMode.READ, unit="℃", min=-200, max=1000, scale=1, step=1, )Rozsah a škálování odpovídá vnitřní teplotě (
va_temperature), takže surová hodnota245znamená24.5 °C. -
Volitelně přidá i DP pro alarm a kalibraciDalší volání
add_dpid_integermohou mapovatext_maxtemp,ext_mintemp,ext_temp_sensivitityaext_temp_calibration, takže Home Assistant může tyto hodnoty číst a případně i zapisovat. -
Zaregistruje quirk do globálního registru
python.register(TUYA_QUIRKS_REGISTRY)Tím se quirk zpřístupní integraci Tuya při startu Home Assistantu.
Výsledkem je malý Python soubor, který Home Assistantu řekne, jak interpretovat DP 101–106 jako teploty a nastavení sondy místo jejich ignorování.
Instalace quirku v Home Assistantu (File Editor)
Není nutné sahat do zdrojového kódu Home Assistantu. Quirk se instaluje jako vlastní Tuya quirk do /config, podobně jako custom ZHA quirks.
-
Nainstalujte doplněk File Editor
-
Vytvořte složku pro Tuya quirks
-
Vložte kód quirku
-
Restartujte Home Assistant
-
Doporučený je plný restart, aby integrace Tuya načetla nový quirk.
-
-
Znovu načtěte nebo znovu přidejte Tuya zařízení
-
Nastavení → Devices & Services → Tuya → Reload nebo odeberte a znovu přidejte konkrétní zařízení.
-
Jak používat novou entitu externí teploty
Po restartu a reloadu by mělo zařízení vystavit novou teplotní entitu, typicky:
-
sensor.tem_hum_sensor_with_probe_external_temperature
nebo -
sensor.tem_hum_sensor_with_probe_ext_temp
Tu pak můžete:
-
přidat na dashboard,
-
použít v automatizacích (např. alarm při překročení 8 °C v lednici),
-
sledovat v Historii a Statistikách.
Počítejte s tím, že mnoho bateriových Tuya senzorů posílá data jen při větší změně nebo v delších intervalech, takže aktualizace nemusí být okamžité.




