rehumatism
rehumatism ricostruisce il protocollo con cui dialogano le parti di un impianto a pavimento Radiax: il display a muro, la scheda del collettore, le sonde delle stanze e la scheda nel vano comune che comanda la pompa. Lo fa soltanto ascoltando il bus di un impianto in uso, senza leggere né modificare nessun firmware. I risultati sono una documentazione del protocollo, degli strumenti di ascolto e una libreria in Python e in C++.
Il progetto nasce da un guasto banale. Il display touch dell’impianto ha cominciato a non rispondere più al tocco. In questi impianti il display non è un semplice schermo: tiene la configurazione, il modo, la temperatura e le correzioni di ogni stanza. Con il display fuori uso, la casa non si poteva più regolare. Capire il bus è servito a costruire un sostituto, il pannello di ORFHAn.
Com’è fatto un impianto Radiax, visto dal bus
La sorpresa più grande è stata scoprire chi comanda. Il padrone del bus non è la scheda in appartamento ma quella nel vano comune, accanto alla pompa e ai contatori. Interroga tutti i dispositivi a turno, tiene l’ora, legge i contatori di calore e acqua e accende la pompa con un suo relè. In appartamento rispondono soltanto:
| Indirizzo | Dispositivo | Cosa fa |
|---|---|---|
01 | display a muro | tiene modo, setpoint e correzioni; contiene la sonda della zona 1 |
50 | scheda del collettore | comanda le valvole delle zone; il suo trasformatore alimenta il bus |
0b-0f | sonde a muro | temperatura e umidità delle zone da 2 a 6 |
54 | scatola del deumidificatore | riceve modo e soglie |
Il circolatore non ha ingressi di comando: si accende e si spegne solo dando o togliendo i 230 V, ed è il relè del padrone a farlo. Sul bus un comando della pompa non esiste: il padrone la accende quando, da quello che il display gli dice, l’impianto è acceso e una zona chiede. Ne segue la scoperta più utile: chi risponde al padrone al posto del display comanda l’impianto, senza toccare nient’altro.
Il bus
- Livello fisico: quattro fili
A B − +. RS485 half duplex più 20 V in continua, che alimentano anche il display. - Linea: 9600 baud, 8 bit, nessuna parità, 1 bit di stop.
- Messaggi:
02 ADDR LEN CMD [dati] XOR 03. Un byte di inizio, l’indirizzo, la lunghezza, il comando, i dati, un byte di controllo e uno di fine. Non è Modbus, e non c’è nessuna firma o cifratura.
Alcuni dei comandi identificati:
| Comando | A chi | Cosa contiene |
|---|---|---|
0a | scatola 54 | il modo del deumidificatore (deumidificare, raffrescare), le soglie di umidità e il setpoint |
32 | scheda 50 e sonde | richieste di ogni zona, setpoint e modo dell’impianto |
08 | sonde | correzione della singola zona |
05 | display | ora e data; modo e setpoint letti dal display; stagione |
3d | display | all’avvio, l’elenco dei dispositivi dell’impianto |
36-39 | display | consumi, con lo storico di 18 periodi |
La stagione la decide il padrone e la comunica al display. Anche lo «spento» cambia con la stagione: d’estate vale 38,0 °C, così nessuna stanza chiede fresco; d’inverno vale 7,0 °C, così nessuna stanza chiede caldo. Un display che manda lo spento sbagliato mette in richiesta tutte le zone. È successo davvero durante le prove, ed è stato corretto.
Gli strumenti
- Ascolto in diretta: registra il bus e mostra impianto, zone, pompa, orologio e consumi mentre succedono.
- Emulatore del display: risponde al padrone al posto del display, che va staccato. Trasmette solo se lo si chiede esplicitamente. Il 1° ottobre 2026 il padrone ha accettato le sue risposte, è passato in manuale a 22 °C e ha acceso la pompa; il giorno dopo l’ha accesa e spenta a comando.
- Libreria in C++, senza dipendenze da Arduino, identica file per file a quella che ORFHAn compila nel suo firmware. Le prove confrontano le risposte della versione C++ con quelle della versione Python sulle catture vere: devono coincidere byte per byte.
Le catture del bus non sono pubblicate: contengono consumi e abitudini di una casa reale.
Cosa resta da capire
- La scatola del deumidificatore risponde di rado: 7 volte su oltre 4.000 interrogazioni nelle prime registrazioni, poi più nulla. Va provata da sola, al banco.
- Il significato di alcuni parametri e di alcuni campi fissi dei messaggi.
- Il funzionamento invernale è in gran parte osservato, ma non ancora in ogni dettaglio.
Come è stato fatto, e cosa non è stato fatto
Tutto viene da una chiavetta USB-RS485 collegata in parallelo al bus di un impianto posseduto e in uso. Nessun firmware è stato letto, copiato o decompilato, nessuna protezione è stata aggirata e nessun documento riservato è stato usato. Osservare e studiare il funzionamento di un prodotto lecitamente posseduto, per capirne i principi e ottenere l’interoperabilità, è previsto dalla direttiva 2009/24/CE e, in Italia, dalla legge sul diritto d’autore (articoli 64-ter e 64-quater). Questo non è un parere legale.
Le informazioni vengono da un solo impianto e possono essere incomplete o sbagliate: impianti e versioni diverse possono comportarsi diversamente. Trasmettere sul bus può avere effetti su tutto l’impianto, e in condominio le parti comuni si toccano solo d’accordo con l’amministratore e il manutentore.
rehumatism è un progetto indipendente, non affiliato ad alcun produttore, rilasciato con licenza MIT. Se un produttore volesse documentare o aprire i propri protocolli, ne saremmo più che felici.
Il tuo parere
Commenti scelti
Una selezione dei commenti ricevuti, pubblicati con il permesso di chi li ha scritti. La media conta tutti i voti.