Al giorno d’oggi, le soluzioni domotiche per quanto riguarda l’impiantistica civile ed industriale sono sempre più diffuse e con esse lo standard affermatosi maggiormente è il protocollo KNX, brevemente introdotto di seguito.
Introduzione al KNX

Quest’ultimo consiste in un sistema decentralizzato di dispositivi interconnessi, ciascuno adibito ad una specifica funzione all’interno dell’edificio, che comunicano tra di loro attraverso un mezzo fisico (il più diffuso è il TP, ossia il doppino twistato, tuttavia sono supportati anche i sistemi IP, RF e PL, rispettivamente protocollo-internet, radiofrequenza e powerline). Una delle caratteristiche principali, se non la più importante ed iconica di questo sistema è l’interoperabilità, ovvero la possibilità di far comunicare e funzionare dispostivi di produttori diversi all’interno dello stesso impianto con il minimo sforzo.
La programmazione e la messa in servizio dell’impianto sono effettuate attraverso il software ETS, distribuito e mantenuto dalla “KNX Association”, il consorzio di aziende fondatrici e sviluppatrici del protocollo stesso, il quale permette di configurare i parametri specifici di ogni dispositivo e di associare a ciascuna periferica un determinato “indirizzo di gruppo”, che verrà in seguito utilizzato per identificare una particolare funzione e/o informazione trasmessa nel BUS.
Si noti che, data l’assenza di un dispositivo centrale che gestisce l’interno impianto, ogni singolo modulo KNX contiene al suo interno la parametrizzazione definita nelle fasi di programmazione. L’intelligenza è, cosiddetta, distribuita su tutti i singoli dispositivi.
La circolazione dei dati in un sistema KNX avviene per mezzo di “telegrammi”, ossia pacchetti di informazione trasmessi da un dispositivo mittente ad un destinatario.
Si consideri, ad esempio, una semplice installazione in cui si vuole che un pulsante, connesso ad un modulo ingressi, controlli un relé situato dall’altra parte dell’edificio attraverso il suddetto protocollo.
In questo caso, dunque, è necessario che alla pressione del pulsante, il modulo ingressi segnali al modulo uscite di commutare il relé corrispondente. Tutto ciò avviene mediante l’invio di un telegramma contenente il nuovo valore da assegnare alla rispettiva uscita.
Criticità riscontrate
Recentemente mi è capitato di apportare alcune modifiche ad un impianto KNX esistente. Nello specifico avevo la necessità di implementare una funzione booleana, che in base allo stato dei suoi ingressi, azionasse una lampada di segnalazione ad intermittenza.
A priori, parrebbe una cosa molto semplice da realizzare in un sistema domotico, il quale per definizione è un sistema automatico. Tuttavia, è proprio nel momento in cui si vogliono implementare logiche più complesse e/o strutturate, che si va incontro al lato negativo di questo protocollo.
Risulta infatti estremamente macchinoso e difficile (a volte impossibile) realizzare un’applicazione che non sia direttamente prevista dal produttore. In altre parole non esiste il modo di configurare un determinato dispositivo diversamente dalle modalità preimpostate (vedi immagine sottostante).

Soluzioni disponibili
Per ovviare a questo problema, sono già presenti sul mercato moduli “intelligenti”, che permettono di realizzare logiche, anche complesse, all’interno dell’impianto. Offrendo, in alcuni casi, la possibilità di interfacciarsi con altri protocolli di comunicazione per integrare dispositivi non-KNX.
Purtroppo però, o questi presentano un costo proibitivo, specialmente se si tratta di una semplice modifica ad un sistema esistente, oppure sono ugualmente limitati ad un insieme predefinito di funzioni.
L’estrema facilità di configurazione di questi impianti, si è quindi rivelata sia un punto a favore, che una criticità. Sostanzialmente, non è possibile fare ciò che si desidera, a meno che non si installi un modulo logico all’interno dell’impianto.
Nel mio caso, dunque, non volendo implementare un dispositivo aggiuntivo, ho optato per una soluzione semplificata, aggirando la difficoltà.
Personalmente, sono rimasto deluso da questo aspetto, poiché ritengo che un sistema, qualora sia programmabile, debba consentire un certo grado di libertà al programmatore senza vincolarlo a ripiegare su metodi preimpostati e, poiché era da tempo che avevo intenzione di approfondire l’argomento, questa esperienza è stata lo stimolo che mi ha indotto a realizzare un dispositivo che rispettasse le mie esigenze, sia in termini di prezzo, che di funzionalità.
Soluzione proposta

La soluzione proposta, attualmente in fase di sviluppo, è basata su un microcontrollore della serie ESP32, prodotto da Espressif e celebre nel mondo dell’IoT per le prestazioni offerte ed il costo ridotto.
La comunicazione con il protocollo KNX avviene tramite doppino twistato (TP) che come per tutti i dispositivi di questo tipo, funge sia da linea di trasmissione, che da sorgente di alimentazione per il modulo stesso. Ciò evita di dover aggiungere un alimentatore ausiliario e permette di trarre vantaggio dalle caratteristiche intrinseche del mezzo di trasmissione.
TPlogic, questo il nome del progetto, è inoltre provvisto di un’interfaccia RS485 accessibile dall’esterno ed isolata dal BUS domotico, che permette di interfacciare l’impianto KNX con altri dispositivi per mezzo di una comunicazione seriale (ad es. Modbus).
Per quanto riguarda gli aspetti costruttivi, il modulo presenta dimensioni contenute pari a 1-DIN, allo scopo di facilitarne l’integrazione in quadri elettrici esistenti.
Dal punto di vista software, si sono sviluppate apposite librerie che consentono di velocizzare il processo di configurazione del dispositivo. Una volta ultimato, sarà quindi possibile programmare il modulo in modo parametrico/dichiarativo, oppure attraverso la scrittura di codice in linguaggio C/C++, favorendo la massima flessibilità in ogni situazione.
Inoltre, non essendo disponibili a priori, librerie e/o componenti software per la gestione del protocollo KNX con ESP32, la gestione di quest’ultime è relegata ad un driver appositamente sviluppato, che consente di operare con flessibilità su tutti i layer della comunicazione.
Stato del progetto e sviluppi futuri
Complessivamente, a circa tre mesi dall’inizio del progetto, l’avanzamento è a buon punto. Lo sviluppo del circuito stampato e la finalizzazione dello schema elettrico sono quasi giunte al termine, mentre la scrittura del firmware e in corso. Quest’ultimo, in linea con i requisiti di progetto, dovrà rendere semplice e contemporaneamente versatile la configurazione del dispositivo.
Concludendo, la progettazione dell’involucro (vedi immagine a lato) è quasi terminata, e gli sviluppi futuri saranno certamente relativi all’espansione del sofware, che dovrà supportare numerose modalità operative, tra cui la possibilità di interfacciamento con protocolli seriali basati su RS485.
I progressi futuri, infine, saranno oggetto di ulteriori articoli a riguardo.
