rehumatism

in corso MIT PythonC++RS485

Repository

rehumatism: il bus RS485 di un impianto a pavimento Radiax, capito ascoltando

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

Il bus di un impianto Radiax e i due punti in cui si collega ORFHAn

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:

IndirizzoDispositivoCosa fa
01display a murotiene modo, setpoint e correzioni; contiene la sonda della zona 1
50scheda del collettorecomanda le valvole delle zone; il suo trasformatore alimenta il bus
0b-0fsonde a murotemperatura e umidità delle zone da 2 a 6
54scatola del deumidificatorericeve 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

Alcuni dei comandi identificati:

ComandoA chiCosa contiene
0ascatola 54il modo del deumidificatore (deumidificare, raffrescare), le soglie di umidità e il setpoint
32scheda 50 e sonderichieste di ogni zona, setpoint e modo dell’impianto
08sondecorrezione della singola zona
05displayora e data; modo e setpoint letti dal display; stagione
3ddisplayall’avvio, l’elenco dei dispositivi dell’impianto
36-39displayconsumi, 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

Le catture del bus non sono pubblicate: contengono consumi e abitudini di una casa reale.

Cosa resta da capire

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.