Nel settimo di questa serie di articoli su KNX IoT, Bruno Johnson e Wouter van der Beek spiegano lo stack open source KNX IoT.
La trasformazione digitale é stata uno dei maggiori argomenti strategici delle riunioni in agenda dell’esecutivo dell’azienda negli ultimi anni. L’opportunità di sviluppare servizi digitali a partire da applicazioni basate su cloud richiede connessioni di rete basate su protocollo Internet (IPv6) a dispositivi edge che diventano l’interfaccia del cliente. Le aziende di ogni forma e dimensione nel settore dell’automazione degli edifici commerciali hanno chiesto soluzioni IoT wireless per far sì che ciò avvenga, e KNX Association ha risposto rilasciando KNX IoT Point API (KNX IoT), incluso uno stack open-source.
Perché lanciare uno stack open-source?
L’implementazione di un nuovo stack è un’attività costosa L’Associazione KNX ha colto l’opportunità di finanziare l’implementazione dello stack open-source KNX IoT, che è stato implementato da Cascoda per conto dell’Associazione KNX. La licenza open-source è stata scelta in modo tale che tutti possano utilizzare lo stack nei loro prodotti. Poiché lo stack è generico, significa che è necessario un livello di porting per il sistema sottostante. Inoltre, significa che manca il livello applicativo, ad esempio quello che il dispositivo deve fare. Tuttavia, a supporto di ciò vi sono un livello di porting e un livello di applicazione che consentono di creare dispositivi funzionali. Quindi, avere uno stack open-source significa che molti livelli sono già implementati e pronti all’uso.
Livello di portabilità
La definizione di stack è che esiste un livello di porting per il sistema operativo sottostante. Ciò consente la portablitá a qualsiasi altro sistema. Lo stack supporta due porte per i sistemi operativi: Windows e Linux. Entrambi i sistemi operativi sono utilizzati per convalidare l’implementazione e possono essere usati per mostrare lo stack.
Quando si esegue lo stack su dispositivi basati su Thread, sono attualmente disponibili due porte: una di Cascoda sul modulo Chili e una di Nordic sui moduli basati su Zephyr.
Livello di Applicazione
Il livello dell’applicazione dispone di un’API per creare i punti dati. I datapoint avranno un valore dpt e dpa e useranno un’API per registrare callback per gestire le funzioni GET (e PUT) che dovrebbero essere implementate per il datapoint effettivo. Lo snippet di codice per creare un datapoint è il seguente:
I prototipi di funzione per i callback GET e PUT sono gli stessi, ma il comportamento è diverso. La funzione GET restituisce solo i dati. La funzione per inviare una variabile booleana globale come payload è rappresentata dalla funzione seguente:
La funzione PUT avrà un payload in ingresso che deve essere usato per eseguire un’azione; la maggior parte delle volte la funzione PUT non avrà un payload di ritorno, quindi la funzione per analizzare un booleano in ingresso è rappresentata nella funzione seguente:
Tutte le altre meccaniche fanno già parte dello stack:
- Implementazione di tutte le tabelle obbligatorie.
- Inserimento sicuro con Spake.
- Sicurezza OSCORE.
KNX IoT Virtuale
Sono disponibili anche due applicazioni di esempio che consentono di giocare con KNX IoT. Sebbene siano chiamati dispositivi virtuali, implementano applicazioni KNX IoT reali in esecuzione su un PC e possono essere visti come un gemello digitale. Le applicazioni virtuali possono essere configurate con ETS.
Knx_iot_virtual_pb è un’applicazione a pulsante con feedback. Implementa un pulsante, che dopo la configurazione può inviare un messaggio in modalità s.
Knx_iot_virtual_sa è un’applicazione per attuatori di interruttori. Implementa un attuatore che, dopo la configurazione, può mostrare il valore ricevuto di un messaggio in modalitá s.
Entrambe le applicazioni di esempio sono disponibili come codice su GitHub e GitLab.
Riassunto
KNX IoT può funzionare su qualsiasi sistema operativo e su qualsiasi rete IPv6. Ad esempio, KNX IoT funziona con Wi-Fi b fino a Wi-Fi 6 e con tutte le versioni di Thread.
Lo stack KNX IoT open-source è disponibile gratuitamente e può essere utilizzato per creare dispositivi KNX.
Per i dispositivi basati su thread è necessario un livello di portanza. Attualmente sono disponibili presso Cascoda kit di sviluppo KNX IoT basati su thread che implementano tale porta, oltre a un router per Wi-Fi ed Ethernet. Questo permette di costruire e testare dispositivi KNX IoT fisici tra loro o contro dispositivi virtuali KNX IoT, e le applicazioni di esempio sono liberamente disponibili per chiunque.
Bruno Johnson e Wouter van der Beek sono rispettivamente CEO e COO di Cascoda Limited. Cascoda è un’azienda di comunicazioni che produce radio e moduli semiconduttori sicuri per l’IoT e guida lo sviluppo di standard di comunicazione IoT sicuri per gli edifici e le città intelligenti. I suoi prodotti risolvono i problemi di portata, affidabilità, sicurezza, potenza e scalabilità per l’IoT industriale e commerciale grazie a innovazioni brevettate e ai più recenti standard di sicurezza, tutti integrati in moduli IoT economici a bassissimo consumo.
Screen shots by Cascoda
Figures by Cascoda (on GitHub, as part of the stack documentation)