Übersetzungen dieser Seite:
  • de-informal

KNX-Grundlagen

Bei KNX handelt es sich um einen Feldbus zur Gebäudeautomation. Sein grundlegend kompatibler Vorgänger ist der Europäische Installationsbus (EIB), dessen Abkürzung man noch häufig als Synonym für KNX in Verwendung sieht. Die Projektierung und Programmierung von KNX-Installationen erfolgt über die proprietäre Software ETS.


Grundlagen zur Hardware

Zur Installation wird ein geschirmtes, 4-adriges Twisted Pair-Kabel verwendet, welches grün ummantelt ist. Die beiden Adernpaare sind schwarz/rot und gelb/weiß. Für den eigentlichen Bus wird nur das schwarz/rote Adernpaar benötigt. Darüber erfolgt die Spannungsversorgung (30 Volt Gleichspannung von einem KNX-Netzteil) und auch die Signalübertragung. Das zweite Adernpaar kann als zusätzliche Stromversorgung verwendet werden, wenn einige KNX-Komponenten mehr Leistung benötigen.

Für den Anschluss an die Geräte werden spezielle Stecker verwendet, in denen bis zu 4 Adernpaare eingeklemmt sein können.

Man unterteilt die Geräte in

  • Sensoren (z. B. Lichtschalter, Bewegungsmelder, Thermometer) und
  • Aktoren (z. B. Schaltrelais für Beleuchtung, Motorsteuerung für Jalousien).

Anders als bei Twisted Pair-Netzwerkkabeln gibt es keine Punkt-zu-Punkt-Verkabelung. Es reicht bei KNX aus, wenn alle schwarzen und alle roten Leitungen und Anschlüsse miteinander verbunden sind. Mit den oben beschriebenen Steckern lassen sich Leitungen ohne Probleme zum nächsten Busteilnehmer weiterführen.

Die Sensoren sind meist überall im Gebäude verteilt, während sich die Aktoren und andere Geräte wie Netzteil oder Gateway häufig zentral im Schaltschrank befinden.

Die Busleitung selbst hat keine Verbindung zum normalen Haushaltsstromnetz. Das Schalten des Arbeits-stroms erfolgt in den Aktoren. Vereinfacht gesagt kann man diese als elektronisch steuerbare Relais beschreiben.


Adressierung und Kommunikation

Bei KNX kommen zwei verschiedene Arten von Adressen zum Einsatz.

physikalische Adresse z. B. 1.0.28 Jedem Gerät wird eine physikalische Adresse zugewiesen, damit es auf dem Bus eindeutig identifiziert werden kann. Für die Verwendung von KNX im Kontext cyber-physischer Systeme ist die physikalische Adresse kaum von Bedeutung.
Gruppenadresse z. B. 3/4/91 Die Gruppenadressen sind für die Zuordnung der Datagramme notwendig. Gruppenadressen stellen das zentrale Adressierungsschema in KNX dar.

Physikalische Adressen

Eine physikalische KNX-Adresse besteht ebenso wie eine Gruppenadresse aus 2 Byte, so dass insgesamt 16 Bit für die Codierung der Adressinformation zur Verfügung stehen. Sie wird manchmal auch als Geräteadresse bezeichnet und besteht aus 3 Ziffern, welche mit Punkten getrennt sind. Sie folgt dem Schema:

Bereich . Linie . Teilnehmer

Gruppenadressen

Eine Gruppenadresse besteht ebenfalls aus 2 Byte. Allerdings werden die 16 Bit ein wenig anders aufgeteilt. Um sie von der physikalischen Adresse unterscheiden zu können, werden Schrägstriche als Trennzeichen verwendet. Die Gruppenadresse folgt dem Schema:

Hauptgruppe / Mittelgruppe / Untergruppe

Broadcast-Kommunikation

Auf dem KNX-Bus werden im Normalbetrieb die Geräte nicht direkt angesprochen. Stattdessen werden die Datagramme als Broadcasts versendet. Der Absender eines Datagrammes kann zwar anhand seiner physikalsichen Adresse identifiziert werden aber im Normalfall ist das nicht von Bedeutung.

Wichtig ist in erster Linie die verwendete Gruppenadresse, denn anhand dieser erkennt das empfangende Gerät, ob es das eingehende Datagramm verarbeiten muss oder ignorieren kann.

Neben der Gruppenadresse und der physikalischen Adresse des Absendergerätes beinhaltet ein KNX-Datagramm unter anderem auch die eigentlichen Nutzdaten. Je nach Datagrammtyp kann es sich dabei um eine einfache 1 oder 0 zu Ein- oder Ausschalten eines Aktorkanals und der daran angeschlossenen Lampe handeln aber auch um andere Angaben, wie z. B. einen Zahlenwert. Auf diese Weise kann ein Temperatursensor auch die ermittelte Raumtemperatur über den KNX-Bus versenden und ein Aktor für ein Heizungsventil die Information verarbeiten.

Wenn KNX über ein IPv4-Netzwerk erweitert werden soll, kann dieses Verhalten unter Verwendung von IP-Multicast nachgebildet werden. Für den Multicast-Betrieb ist die IPv4-Multicast-Adresse 224.0.23.12 reserviert. Für IPv6 gibt es keine entsprechende Reservierung.


Beispiele gibt es auf einer separaten Beispielseite.

Dort wird vor allem der Zweck von Statusadressen klar.


Anbindung an IP-Netzwerke

Mit einem sogenannten Gateway lässt sich die Kommunikation einer bestehenden KNX-Installation über das Twisted Pair-Busnetzwerk hinaus erweitern. Für diesen Zweck werden UDP-Pakete verwendet, die im Payload den Inhalt der KNX-Datagramme enthalten. Die Kommunikation kann je nach Konfiguration an einen bestimmten Netzteilnehmer oder als IP-Broadcast verschickt werden.

Das Protokoll, das hierbei Verwendung findet, heißt KNXnet/IP und und benutzt den Port 3671/UDP. Dadurch ist es möglich, eine KNX-Installation in ein IP-basiertes cyber-physisches System einzubinden.


KNX und Node-RED

Für Node-RED gibt es eine ganze Reihe an Nodes, welche für die Kommunikation mit KNX erstellt wurden. Ein stabil laufender Node, der für die Übungen im Rahmen des Unterrichts empfohlen wird, lässt sich unter dem Namen node-red-contrib-knx-ultimate finden und installieren.

Achtung! Aktualisierungen an dem Node durch den Entwickler haben dazu geführt, dass dieser nicht mehr mit der neuesten als Snap verfügbaren Version von Node-RED kompatibel ist. Der folgende Link führt zu einer Anleitung, wie eine ältere, kompatible Version installiert werden kann.

Installationsanleitung für node-red-contrib-knx-ultimate

Node einfügen

Nach der Installation stehen mehrere Nodes in der Palette am linken Bildschirmrand zur Verfügung. Der erste davon mit der Bezeichnung KNX DEVICE ist geeignet.

Gateway konfigurieren

Bevor dieser Node konfiguriert werden kann, muss im Feld Gateway eine bestehende Gateway-Konfiguration ausgewählt werden oder ein neues angelegt. Die Eingabemaske für ein neues Gateway sieht so aus wie rechts dargestellt.

Es wird eigentlich nur die IP-Adresse des Gateways benötigt. Der Name kann frei gewählt werden und der Port 3671 ist der vorgesehene Standardport. Für unsere Installation ist die Einstellung Multicast die richtige. Die Multicast-IP-Adresse lautet wie oben bereits angesprochen 224.0.23.12.

Für eine Installation, bei der direkt mit dem Gateway kommuniziert wird, wird empfohlen von Multicast auf Tunnel UDP umzustellen.

Node für Datagrammversand konfigurieren

Sobald diese Konfiguration gespeichert wurde, kann mit der Konfiguration des eigentlichen KNX-Nodes fortgefahren werden.

Für dieses Beispiel verwenden wir die bereits bekannte Gruppenadresse 3/4/91 für unseren fiktiven Schaltaktor, mit welchem ein Licht geschaltet werden kann.

Neben der Gruppenadresse geben wir an, dass es sich um einen Datenpunkt vom Typ Switch handelt, also um einen einfachen Ein-/Ausschaltvorgang. Nachdem wir diesen Node mit Licht an benannt haben, sind wir schon fast fertig.

Es fehlt nur noch eine Einstellung im Abschnitt Erweiterte Optionen, bei der der Haken zum RBE-Filter entfernt werden muss. Hierbei handelt es sich um eine Einstellung dieses Nodes, welche nichts mit KNX selbst zu tun hat.

Nodes in Flows einbinden

Wenn wir diesen Node noch mit zwei Engaben mit den Inhalten true und false versehen, dann können wir damit bereits das Licht an- und ausschalten.

Mit Hilfe eines weiteren Nodes vom gleichen Typ, welcher auf die Gruppenadresse 3/5/91 hört, kann die Statusantwort des Schaltaktors empfangen werden.

Node für Datagrammempfang konfigurieren

Für den Empfang der Statusnachricht kann der gleiche Typ von Node verwendet werden, wie für den Versand.

Die Unterschiede in der Konfiguration des Nodes liegen in der Angabe der Gruppenadresse und des Datenpunkttyps. Hier sind die Statusadresse 3/5/91 und der Typ Status anzugeben.

Auf die gleiche Art und Weise können Nodes konfiguriert werden, die auf Basis von KNX-Datagrammen Vorgänge in Node-RED auslösen sollen. Es wäre z. B. denkbar, eine Taste eines KNX-Sensors mit einer Gruppenadresse zu belegen, die von einem Node erkannt wird, um daraufhin eine MQTT-Nachricht zu verschicken.

Umgehehrt könnte man eingehende MQTT-Nachrichten dazu verwenden, um KNX-Schaltvorgänge auszulösen.


Weitere Informationsquellen