Oprava Tuya “Tem&Hum Sensor with Probe” v Home Assistant pomocou vlastného Quirku
Niektoré Tuya teplotné a vlhkostné senzory s externou sondou posielajú do Home Assistanta cez oficiálnu Tuya integráciu iba vnútornú teplotu.
Externá sonda pritom v Tuya aplikácii funguje a na Tuya IoT Platforme sa zobrazuje ako ext_temp (DP 101), ale Home Assistant pre ňu nevytvorí žiadnu entitu.
Preto sme postavili vlastný Tuya quirk s použitím knižnice tuya-device-handlers, ktorú Home Assistant interne používa na úpravu správania Tuya zariadení.
Tento quirk naučí Home Assistant, aké extra dátové body zariadenie má, aby vedel sprístupniť teplotu z externej sondy (a voliteľne ďalšie parametre) ako entity.
Prečo bol quirk potrebný
Konkrétne ide o Tuya „Tem&Hum Sensor with Probe“:
V Tuya IoT Platforme zariadenie posiela tieto dodatočné DP pre sondu:
-
ext_temp(DP 101) – teplota na externej sonde -
ext_maxtemp(DP 102) – horná hranica teplotného alarmu -
ext_mintemp(DP 103) – dolná hranica teplotného alarmu -
ext_temp_sensivitity(DP 104) – citlivosť na zmenu teploty -
ext_temp_alarm(DP 105) – režim alarmu
V diagnostike Home Assistanta a v oficiálnej Tuya integrácii však vidíme len:
-
vnútornú teplotu (
va_temperature) -
vlhkosť (
va_humidity) -
stav batérie (
battery_state)
Teplota z externej sondy v Home Assistantovi úplne chýba, a tým sa senzor výrazne menej hodí na monitoring chladničiek, mrazničiek alebo nádrží, kde ide práve o externý snímač.
Ako bol quirk postavený
Tuya integrácia v Home Assistantovi používa knižnicu tuya-device-handlers, ktorá definuje tzv. quirks – malé Python skripty mapujúce surové Tuya DP (datové body) na štruktúrované entity.
Pre tento senzor sme vytvorili quirk súbor, ktorý:
-
Zacieli konkrétny produkt podľa Product ID
python.applies_to(product_id="m7kacaxrxbxeegfs")Vďaka tomu sa quirk použije iba pre toto zariadenie, nie pre všetky
wsdcg. -
Pridá externú sondu ako číselnú teplotnú entitu
python.add_dpid_integer( dpid=101, # ext_temp dpcode="ext_temp", # alebo iný teplotný kód dpmode=DPMode.READ, unit="℃", min=-200, max=1000, scale=1, step=1, )Rozsah a škálovanie kopírujú vnútornú teplotu (
va_temperature), takže hodnota245znamená24.5 °C. -
Voliteľne pridá DP pre alarmy a kalibráciuĎalšie volania
add_dpid_integermôžu mapovaťext_maxtemp,ext_mintemp,ext_temp_sensivitityaext_temp_calibration, takže Home Assistant vie tieto hodnoty čítať a prípadne zapisovať. -
Zaregistruje quirk v globálnom registri
python.register(TUYA_QUIRKS_REGISTRY)Takto integrácia Tuya quirk nájde pri štarte Home Assistanta.
Výsledkom je malý Python súbor, ktorý Home Assistantu povie, ako interpretovať DP 101–106 ako teplotu a nastavenia sondy namiesto ich ignorovania.
Inštalácia quirku v Home Assistantovi (File Editor)
Nie je potrebné meniť kód Home Assistanta. Quirk sa nainštaluje ako vlastný Tuya quirk do adresára /config, podobne ako custom ZHA quirks.
-
Nainštalujte doplnok File Editor
-
Vytvorte priečinok pre Tuya quirks
-
Vložte kód quirku
-
Reštartujte Home Assistanta
-
Odporúča sa plný reštart, aby Tuya integrácia načítala nový quirk.
-
-
Znova načítajte alebo znova pridajte Tuya zariadenie
-
Nastavenia → Zariadenia a služby → Tuya → Reload alebo zariadenie odstráňte a znova pridajte.
-
Používanie novej entity externej teploty
Po reštarte a reloade by malo zariadenie vystaviť novú teplotnú entitu, napr.:
-
sensor.tem_hum_sensor_with_probe_external_temperature
alebo -
sensor.tem_hum_sensor_with_probe_ext_temp
Túto entitu môžete:
-
pridať na dashboard,
-
použiť v automatizáciách (napr. upozornenie pri prekročení teploty v mrazničke),
-
sledovať v histórii a štatistikách.
Majte na pamäti, že veľa batériových Tuya senzorov posiela údaje len pri väčšej zmene alebo v dlhších intervaloch, takže aktualizácie nemusia byť okamžité.




