Correggere il sensore Tem&Hum con sonda di Tuya in Home Assistant tramite una quirk personalizzata
Alcuni sensori Tuya di temperatura e umidità con sonda esterna, tramite l’integrazione ufficiale Tuya in Home Assistant, espongono solo la temperatura interna.
La sonda esterna funziona nell’app Tuya e compare sulla Tuya IoT Platform come ext_temp (DP 101), ma Home Assistant non crea alcuna entità per quel valore.
Per risolvere il problema abbiamo creato un quirk Tuya personalizzato usando la libreria tuya-device-handlers, che Home Assistant utilizza internamente per normalizzare il comportamento dei dispositivi Tuya.
Questo quirk fa sì che Home Assistant riconosca i datapoint aggiuntivi del dispositivo, così da esporre la temperatura della sonda esterna (e, opzionalmente, altre impostazioni della sonda) come entità.
Perché è stato necessario il quirk
Il dispositivo in questione è il Tuya “Tem&Hum Sensor with Probe”:
Sulla Tuya IoT Platform il dispositivo invia anche questi datapoint legati alla sonda:
-
ext_temp(DP 101) – temperatura della sonda esterna -
ext_maxtemp(DP 102) – soglia alta di allarme temperatura -
ext_mintemp(DP 103) – soglia bassa di allarme temperatura -
ext_temp_sensivitity(DP 104) – sensibilità alla variazione di temperatura -
ext_temp_alarm(DP 105) – modalità di allarme -
ext_temp_calibration(DP 106) – calibrazione della temperatura
Nelle diagnostiche di Home Assistant e nell’integrazione ufficiale Tuya compaiono però solo:
-
temperatura interna (
va_temperature) -
umidità (
va_humidity) -
stato batteria (
battery_state)
La temperatura della sonda esterna in Home Assistant non esiste, e questo limita moltissimo l’utilità del sensore per monitorare frigoriferi, congelatori, boiler o serbatoi, dove interessa proprio il valore misurato dalla sonda.
Come è stato costruito il quirk
L’integrazione Tuya di Home Assistant utilizza la libreria tuya-device-handlers, che definisce i cosiddetti quirks: piccoli script Python che mappano i datapoint grezzi di Tuya (DP) su entità strutturate.
Per questo sensore abbiamo creato un file di quirk che:
-
Aggancia il dispositivo tramite il Product ID
python.applies_to(product_id="m7kacaxrxbxeegfs")In questo modo il quirk si applica solo a questo prodotto e non a tutti i dispositivi
wsdcg. -
Aggiunge la sonda esterna come sensore di temperatura intero
python.add_dpid_integer( dpid=101, # ext_temp dpcode="ext_temp", # o un altro codice di temperatura supportato dpmode=DPMode.READ, unit="℃", min=-200, max=1000, scale=1, step=1, )Il range e la scala sono allineati alla temperatura interna (
va_temperature), per cui il valore grezzo245viene interpretato come24,5 °C. -
Aggiunge opzionalmente i datapoint di allarme e calibrazioneUlteriori chiamate
add_dpid_integerpossono mappareext_maxtemp,ext_mintemp,ext_temp_sensivitityeext_temp_calibration, permettendo a Home Assistant di leggere (ed eventualmente scrivere) queste impostazioni. -
Registra il quirk nel registro globale
python.register(TUYA_QUIRKS_REGISTRY)In questo modo l’integrazione Tuya trova il quirk all’avvio di Home Assistant.
Il risultato è un piccolo file Python che indica a Home Assistant come interpretare i DP 101–106 come entità di temperatura e configurazione della sonda anziché ignorarli.
Installare il quirk in Home Assistant (File Editor)
Non è necessario modificare i file core di Home Assistant. Il quirk viene installato come quirk Tuya personalizzato all’interno della cartella /config, in modo simile ai custom ZHA quirks.
-
Installare l’add-on File Editor
-
Creare una cartella per i quirks Tuya
-
Incollare il codice del quirk
-
Riavviare Home Assistant
-
È consigliato un riavvio completo, così l’integrazione Tuya può caricare il nuovo quirk.
-
-
Ricaricare o riaggiungere il dispositivo Tuya
-
Impostazioni → Dispositivi e servizi → Tuya → Reload, oppure rimuovere e aggiungere di nuovo il dispositivo.
-
Utilizzo della nuova entità di temperatura esterna
Dopo il riavvio e la ricarica, il dispositivo dovrebbe esporre una nuova entità di temperatura, ad esempio:
-
sensor.tem_hum_sensor_with_probe_external_temperature
oppure -
sensor.tem_hum_sensor_with_probe_ext_temp
Questa entità può essere:
-
aggiunta alle dashboard,
-
usata nelle automazioni (per esempio un allarme se la temperatura del congelatore sale troppo),
-
monitorata nelle viste Storico e Statistiche.
Tieni presente che molti sensori Tuya a batteria inviano aggiornamenti solo quando la temperatura cambia in modo significativo o a intervalli predefiniti, quindi gli aggiornamenti potrebbero non essere immediati.




