Un termoigrometro Tuya senza cloud, con OpenBeken
I termoigrometri WiFi da pochi euro hanno uno schermo leggibile, una buona sonda e un difetto: per funzionare passano dal cloud del produttore e da un’app. Se internet cade, o se un giorno il servizio chiude, la misura resta sul display e non arriva più a nessuno. Molti di questi sensori hanno dentro un chip Beken, e su quel chip gira OpenBeken, un firmware libero che parla MQTT direttamente con la rete di casa. Questa guida racconta come l’abbiamo fatto su un Emylo H&T S09 per usarlo come sonda di stanza in ORFHAn, ma il procedimento vale per altri modelli simili.
Prima di comprare: che chip c’è dentro
“Tuya” è una piattaforma, non un chip. Dentro ai sensori ci sono moduli WiFi diversi: i vecchi con ESP8266, molti recenti con un Beken (BK7231T, BK7231N, BK7238), altri con chip di altri produttori. OpenBeken supporta i Beken e alcuni altri; la lista aggiornata è nella sua documentazione. Il modo più sicuro per saperlo è cercare il modello insieme a “OpenBeken” o guardare foto dell’interno: sul modulo c’è stampata la sigla.
L’S09 ha un BK7238. E come quasi tutti i termoigrometri Tuya, non legge la sonda con il chip WiFi: c’è un secondo microcontrollore, il TuyaMCU, che legge la sonda, comanda il display e passa i valori al modulo WiFi via seriale, sotto forma di datapoint (DP) numerati. Sull’S09 il DP 101 è la temperatura in decimi di grado e il 102 l’umidità in percento. È un dettaglio importante: dopo OpenBeken, il modulo WiFi deve sapere quali DP ascoltare.
Che cosa serve
- un adattatore USB-seriale a 3,3 V (i classici FTDI o CH340 con il ponticello sui 3,3 V): uno basta per tutti i sensori;
- tre fili sottili con le punte, o un saldatore con la punta fine;
- un cacciavite piccolo per aprire il sensore;
- il programma di scrittura e il file di OpenBeken per il tuo chip, indicati dalla documentazione di OpenBeken.
1. Scrivere OpenBeken
Il sensore si apre e si individua il modulo WiFi, con le piazzole TX, RX e CEN. Da noi ha funzionato così:
- il sensore resta alimentato dalla sua presa USB;
- dell’adattatore si collegano solo TX e RX, incrociati con quelli del modulo Beken: il TX del modulo all’RX dell’adattatore e viceversa;
- quando il programma di scrittura chiede il riavvio del chip, si tocca per un attimo il piedino CEN del modulo (sull’S09 è il 3) con la massa dell’adattatore.
Se il sensore e l’adattatore non sono attaccati allo stesso computer, conviene unire anche le due masse. E se il programma lo permette, fai prima una copia del firmware originale: è l’unico modo di tornare indietro.
Scritto il firmware, il sensore riparte con OpenBeken e apre una sua rete WiFi per la prima configurazione. Ti colleghi con il telefono, gli dai nome e password della rete di casa, e da lì in poi la sua pagina si apre all’indirizzo che il router gli assegna.
2. Lo script di avvio: dire a OpenBeken dove sono le misure
Appena scritto, OpenBeken non sa che cosa sia l’oggetto in cui gira. Glielo si dice con lo script di avvio, nella sua pagina: Config, poi Startup command. Per l’S09 sono poche righe:
startDriver TuyaMCU
startDriver NTP
// temperatura: DP 101, in decimi di grado, nel canale 1
setChannelType 1 temperature_div10
linkTuyaMCUOutputToChannel 101 val 1
// umidità: DP 102, nel canale 2
setChannelType 2 Humidity
linkTuyaMCUOutputToChannel 102 val 2
La prima riga accende il dialogo con il TuyaMCU. Le altre collegano ogni DP a un canale di OpenBeken e dicono che cosa contiene e in che unità: temperature_div10 vuol dire “temperatura, da dividere per dieci”. Dopo il riavvio la pagina del sensore mostra temperatura e umidità.
Con un altro modello i numeri dei DP possono essere diversi. Un modo pratico per trovarli: accendi solo il driver TuyaMCU, guarda il log del sensore e scalda la sonda con le dita. Il DP che cambia è la temperatura; dal valore capisci se è in decimi o in centesimi, e scegli temperature, temperature_div10 o temperature_div100.
3. Le misure in MQTT
Nella pagina Config → MQTT si scrivono l’indirizzo del broker di casa, l’utente e la password. Da quel momento OpenBeken pubblica i suoi canali sul broker, e secondo la sua documentazione può anche annunciarli a Home Assistant con la discovery automatica. Questa parte, fatta a mano, non l’abbiamo provata: noi l’abbiamo fatta fare alla scheda di ORFHAn.
In ORFHAn il sensore si assegna a una stanza dalla pagina Dispositivi della scheda relè, come uno Shelly o un nodo ESPHome. La scheda legge lo script di avvio del sensore per capire in quale canale stanno la temperatura e l’umidità, gli scrive il broker e lo rilegge per controllare, aggiunge al suo file autoexec.bat un pezzo di script delimitato da due righe di commento e lo riavvia. Quel pezzo pubblica la temperatura su sensors/<stanza>/temperature e l’umidità su sensors/<stanza>/humidity: a ogni cambio e comunque una volta al minuto, così la scheda sa che il sensore è vivo anche quando la temperatura sta ferma. In sintesi:
alias orfhan_t publishFloat sensors/soggiorno/temperature $CH1*0.1 1 1
addEventHandler OnChannelChange 1 orfhan_t
addRepeatingEvent 60 -1 orfhan_t
Lo script vero aspetta anche il primo valore vero prima di pubblicare: all’accensione i canali valgono zero, e zero gradi in un soggiorno non sono una misura ma un sensore che non ha ancora letto la sonda. È un accorgimento utile a chiunque scriva i propri script: un valore finto all’avvio basta a far partire un’automazione sbagliata.
Che cosa si guadagna, e che cosa no
- Niente cloud e niente app: il sensore funziona con la rete di casa anche senza internet, e nessuno fuori casa sa che temperatura c’è nel tuo bagno.
- Le misure arrivano quando servono: con l’alimentazione USB il sensore resta sempre collegato.
- A batteria è un’altra storia. Molti sensori Tuya a batteria accendono il modulo WiFi solo per pochi secondi ogni tanto: OpenBeken ha dei modi per gestirlo, ma non li abbiamo provati.
- La resistenza al vapore di un bagno non è verificata: per i bagni il progetto usa nodi con una sonda su cavo in acciaio.
- Il firmware del sensore lo aggiorni tu, dalla sua pagina.
Che cosa è provato
- Scrittura di OpenBeken sull’S09 e script di avvio: provati su un sensore vero il 15 ottobre 2026; temperatura e umidità compaiono nella pagina del sensore.
- Presa in carico dalla scheda di ORFHAn e pezzo di script che pubblica le misure: controllati sul sorgente e sulla documentazione di OpenBeken e provati al PC con un simulatore, non ancora su un sensore vero.
- Altri modelli Tuya con chip Beken: dovrebbero funzionare allo stesso modo con il loro script di avvio, ma non ne abbiamo provato nessuno.
Lo script per l’S09 e la procedura completa sono nel repository di ORFHAn.