KNX IoT: Teil 7 - der quelloffene KNX IoT-Stack

Im siebten Teil dieser Artikelserie über KNX IoT erklären Bruno Johnson und Wouter van der Beek den quelloffenen KNX IoT Stack.

Die digitale Transformation ist seit einigen Jahren eines der wichtigsten Strategiethemen auf den Tagesordnungen von Unternehmensvorständen. Die Möglichkeit, digitale Dienste aus Cloud-basierten Anwendungen zu entwickeln, erfordert Internetprotokoll (IPv6) basierte Netzwerkverbindungen zu Edge-Geräten, die zur Kundenschnittstelle werden. Unternehmen aller Formen und Größen in der kommerziellen Gebäudeautomation haben nach drahtlosen IoT-Lösungen gefragt, um dies zu ermöglichen, und die KNX Association reagierte mit der Veröffentlichung der KNX IoT Point API (KNX IoT), einschließlich eines Open-Source-Stacks.

Warum einen Open-Source-Stack veröffentlichen?

Die Implementierung eines neuen Stacks ist eine kostspielige Angelegenheit. Die KNX Association hat die Gelegenheit genutzt, die Implementierung des KNX IoT Open-Source Stacks zu finanzieren, und dieser Stack wurde von Cascoda im Auftrag der KNX Association implementiert. Die Open-Source-Lizenz wurde so gewählt, dass jeder den Stack in seinen Produkten verwenden kann. Da der Stack generisch ist, bedeutet dies, dass eine Portierungsschicht für das zugrunde liegende System erforderlich ist. Das bedeutet auch, dass die Anwendungsschicht fehlt, z. B. was das Gerät tun muss. Um dies zu unterstützen, gibt es jedoch eine Portierungsschicht und eine Anwendungsschicht, so dass funktionale Geräte erstellt werden können. Ein Open-Source-Stack bedeutet also, dass viele Schichten bereits implementiert und einsatzbereit sind.


Stapelkomponenten.

Portierungsschicht

Die Definition des Stacks ist, dass es eine Portierungsschicht zum darunterliegenden Betriebssystem gibt. Dies ermöglicht die Portierung auf jedes andere System. Der Stack unterstützt zwei Betriebssystem-Portierungen: Windows und Linux. Beide Betriebssysteme werden zur Validierung der Implementierung verwendet und können für die Präsentation des Stacks genutzt werden.

Für den Betrieb des Stacks auf Thread-basierten Geräten stehen derzeit zwei Ports zur Verfügung: einer von Cascoda auf seinem Chili-Modul und einer von Nordic auf seinen Zephyr-basierten Modulen.


Stack mit Anwendungsschicht API und Portierungsschicht.

Anwendungsebene

Die Anwendungsebene verfügt über eine API zur Erstellung der Datenpunkte. Die Datenpunkte haben einen dpt- und dpa-Wert und verwenden eine API, um Callbacks zu registrieren, die die GET- (und PUT-) Funktionen behandeln, die für den eigentlichen Datenpunkt implementiert werden sollten. Der Codeschnipsel zur Erstellung eines Datenpunktes lautet wie folgt:


Der Codeschnipsel zur Erstellung eines Datenpunktes

Die Funktionsprototypen für die GET- und PUT-Callbacks sind die gleichen, aber das Verhalten ist unterschiedlich. Die GET-Funktion gibt nur die Daten zurück. Die Funktion zum Zurücksenden einer globalen booleschen Variable als Nutzlast wird in der folgenden Funktion dargestellt:


Die Funktion zum Zurücksenden einer globalen booleschen Variable als Payload.

Die PUT-Funktion wird eine Eingabe-Nutzlast haben, die verwendet werden muss, um eine Aktion auszuführen; die meiste Zeit wird die PUT-Funktion keine Rückgabe-Nutzlast haben, daher wird die Funktion zum Parsen eines Boolean in der Eingabe in der folgenden Funktion dargestellt:


Die Funktion zum Parsen eines Boolean in der Eingabe.

Alle anderen Mechaniken sind bereits Teil des Stacks:

  • Implementierung aller obligatorischen Tabellen.
  • Sicheres Onboarding mit spake.
  • OSCORE Sicherheit.

 

KNX IoT Virtual

Es gibt auch zwei Beispielanwendungen, die es Ihnen ermöglichen, mit KNX IoT herumzuspielen. Obwohl sie als virtuelle Geräte bezeichnet werden, implementieren sie tatsächliche KNX IoT Anwendungen, die auf einem PC laufen und als digitaler Zwilling betrachtet werden können. Die virtuellen Anwendungen können mit der ETS konfiguriert werden.

Die knx_iot_virtual_pb ist eine Tasteranwendung mit Rückmeldung. Sie implementiert einen Button, der nach Konfiguration eine s-mode Nachricht aussenden kann.


Druckknopf Anwendung.

Der knx_iot_virtual_sa ist eine Schaltaktor-Anwendung. Sie implementiert einen Aktor, der nach Konfiguration den empfangenen Wert einer s-mode Nachricht anzeigen kann.


Schaltaktor.

Beide Beispielanwendungen sind als Code auf GitHub und GitLab verfügbar.

Zusammenfassung

KNX IoT kann auf jedem Betriebssystem und jedem IPv6-Netzwerk laufen. Zum Beispiel funktioniert KNX IoT mit Wi-Fi b bis Wi-Fi 6 und allen Versionen von Thread.

Der quelloffene KNX IoT Stack ist frei verfügbar und kann zur Erstellung von KNX Geräten verwendet werden.

Für Thread-basierte Geräte wird eine Portierungsschicht benötigt. Thread-basierte KNX IoT Entwicklungskits sind derzeit von Cascoda erhältlich, die einen solchen Port sowie einen Router für Wi-Fi und Ethernet implementieren. Damit können physische KNX IoT Geräte gebaut und gegeneinander oder gegen virtuelle KNX IoT Geräte getestet werden, und Beispielanwendungen sind für jedermann frei verfügbar.

Bruno Johnson und Wouter van der Beek sind der CEO bzw. COO von Cascoda Limited. Cascoda ist ein Kommunikationsunternehmen, das sichere IoT-Halbleiter-Funkgeräte und -Module herstellt und die Entwicklung von sicheren IoT-Kommunikationsstandards für intelligente Gebäude und intelligente Städte anführt. Die Produkte des Unternehmens lösen Probleme in Bezug auf Reichweite, Zuverlässigkeit, Sicherheit, Stromverbrauch und Skalierbarkeit für industrielles und kommerzielles IoT durch patentierte Innovationen und die neuesten, sichersten Standards, die alle in kostengünstige IoT-Module mit extrem niedrigem Stromverbrauch integriert sind.

www.cascoda.com

Screenshots von Cascoda
Figuren von Cascoda (auf GitHub, als Teil der Stack-Dokumentation)