Inzwischen ist das KNX 2 Binding für openHAB verfügbar. Die Anleitung zur Integration findest du hier.

Für alle, die eine KNX Installation zu Hause verbaut haben, wissen: KNX ist eine feine Sache. Zusammen mit openHAB wird das ganze noch viel besser. Die Anbindung des KNX Bus an openHAB ist einfacher als man sich das vielleicht vorstellt.

Zuerst stellt sich die Frage: Was benötige ich, damit mein openHAB mit dem KNX Bus kommunizieren kann? Das ganze funktioniert über einen KNX IP Gateway. Falls ein solches Bauteil schon im Haus in Betrieb ist muss hier nichts weiter getan werden, ansonsten sollte man sich dieses Bauteil anschaffen. Da ich ungern mit Stromkabeln hantiere habe ich mich für ein IP Gateway mit PoE Stromversorgung (Power over Ethernet) entschieden. Hierbei wird der Gateway über das Netzwerkkabel mit Strom versorgt. Im Idealfall passiert das über einen PoE Switch, der bei mir direkt neben dem Verteilerkasten steht. Ansonsten gibt es auch Adapter, die das ganze erledigen. Alternativ findest du in der Liste ein IP Gateway mit Spannungsversorgung über den KNX Bus.

KNX IP Schnittstelle anschließen

Der Anschluss des KNX IP Gateway ist recht simpel. In meinem Fall habe ich die alte serielle BUS Schnittstelle entfernt und die Anschlussklemme mit meinem neuen IP Gateway verbunden. Aktuell ist das ganze noch eher fliegend gelöst – aber was nicht ist kann ja noch werden. Danach das Netzwerkkabel (mit PoE) anstöpseln – fertig. Idealerweise ist im Netzwerk DHCP aktiviert, damit die Schnittstelle automatisch eine IP zugewiesen bekommt. Die IP Adresse findest du am leichtesten in der Netzwerkübersicht des Routers (z.B. FritzBox) heraus.

Fliegende Montage der KNX IP Schnittstelle

Fliegende Montage der KNX IP Schnittstelle

Binding installieren und konfigurieren

Im nächsten Schritt muss openHAB KNX beigebracht werden. Das geht über die Paper UI Ansicht recht einfach. Hierzu wird im Browser die Paper UI unter openhabianpi:8080/paperui aufgerufen. Über die Menüleiste wird der Punkt „Add-ons“ angewählt -> oben das Tab „Bindings“ anwählen und bis zu „KNX Binding“ herunterscrollen und rechts auf „Install“ klicken. Das Binding ist (leider) noch kein 2.1 Bindung. Das ist aber nicht weiter tragisch.

Paper UI KNX Binding installieren

Paper UI KNX Binding installieren

Nun geht es ans Eingemachte. Um das Binding zu konfigurieren müssen wir auf die Config Datei zugreifen. Dafür musst du dich mit dem Raspberry als Server verbinden, um an die Dateien zu gelangen. Das geht auf dem Mac mit dem Finder oder über ein FTP Programm wie z.B. Filezilla.

Wenn du mit dem Server verbunden bist, ist das richtige Verzeichnis /openHAB-Conf/services. Hier sollte die Datei knx.cfg zu finden sein. Diese Datei öffnest du mit einem Texteditor. Ich habe mich für Visual Studio Code von Microsoft (mehr zu Visual Studio Code) entschieden. Hier gibt es extra openHAB Addon, welches die Arbeit enorm erleichtert. Aber auch andere Editoren wie Sublime Text sind wunderbar geeignet.  Der Inhalt sieht in etwa so aus: 

Zu Beginn ist alles mit # auskommentiert. Die zu konfigurierenden Zeilen werden durch einfaches entfernen der # aktiviert. In unserem Fall sind das 3 Zeilen

Bei ip ist die IP Adresse der KNX IP Schnittstelle einzutragen.

Bei type ist TUNNEL einzutragen.

Bei localIP ist die IP Adresse des Raspberry Pi einzutragen.

Das ist schon die ganze Konfiguration des KNX Bindings. Ab jetzt kann es an die Erstellung von Items gehen. Hierfür solltest du eine Übersicht über die Gruppenadressen deiner KNX Geräte im Haus haben.

Items anlegen

Das Grundprinzip der KNX Items wird anhand eines einfachen Schalters, auch Switch genannt, veranschaulicht. Auf Dimmer, Rolläden, Thermostate, Wetterstation, etc. werde ich in einem weiteren Artikel eingehen.

Zuerst muss eine Items Datei angelegt werden. hierzu öffnen wir das Verzeichnis /openHAB-conf/items und legen eine Datei mit dem Namen knx.items an. In dieser Datei landen alle KNX Items, in unserem Fall der Schalter.

Als Beispiel wählen wir eine Deckenleuchte im Esszimmer. Dieser besitzt eine Gruppenadresse um den Befehl zu empfangen und eine Listening Adresse, über die der aktuelle Status des Akors (An / Aus ) abgefragt wird. In unserem Beispiel lautet die folgendermaßen

Gruppenadresse: 1/1/8
Listeningaddress: 11/1/8

und der Code für das Item sieht so aus:

Switch: Die Art des Items. In unserem Fall ein Schalter mit An / Aus

Licht_EG_Essen_Tisch: Der „Ruf“Name des Items. Mit diesem Namen kann das Item später in der Visualisierung oder in Regeln angesrprochen werden. Ich habe mich für Worte mit _ als Trennung entschieden.

„Esstisch“: Die Beschriftung des Items. So würde das Item später in der Visualisierung benannt werden. Wähle eine kurze und selbsterklärende Bezeichnung, damit du sofort weißt um welches Licht oder Gerät es sich handelt. Wichtig ist auch das Wort in “ “ zu setzen.

(Essen, Licht): Hier kannst du deine Items gruppieren, um sie später gemeinsam anzuzeigen oder zu schalten. In meinem Fall habe ich eine Gruppe für das Esszimmer und eine Gruppe für alle Lichter im Haus gewählt – jeweils durch Kommas getrennt. Wichtig: die Gruppen in ( ) setzen.

{knx=“1/1/8+<11/1/8″}: Jetzt kommt die eigentliche Geräteansteuerung. hier ist definiert welche Gruppenadresse angesteuert wird. Die erste Adresse 1/1/8 ist die Adresse, über die der Aktor seinen Schaltbefehl erhält. Die zweite Adresse ist die Listening Address 11/1/8 über die der Status des Aktors abgefragt wird. Das + verbindet Gruppenadresse  die dazugehörige Listening Addess. Das < sorgt dafür, dass der Status regelmäßig abgefragt wird, damit auch immer der Richtige Status (An / Aus) in der Visualisierung angezeigt wird. Der Befehl wird in { } gesetzt.

Item in Sitemap einfügen

Damit das Item auch betätigt werden kann, muss es noch in die Sitemap eingefügt werden. Falls du noch keine Sitemap angelegt hast, schaue dir den Artikel zum Aufbau der Sitemap an (Coming soon).

In der Sitemap wird die Art der Steuerung definiert. In unserem Fall ist das Item ein Switch.

Das Item mit dem Rufnamen angesprochen werden, also item=Licht_EG_Essen_Tisch.

Wenn wir dem Schalter in der Visualisierung ein individuelles Icon zuordnen möchten, ist das natürlich möglich. In unserem Fall ist es eine Glühlampe über den Code icon=“light“. Die Liste der möglichen Icons findest du hier.

Geschafft! IP Schnittstelle angeschlossen und in Betrieb genommen, KNX Binding konfiguriert und unsere erste Lampe zum Leuchten gebracht. Viel Spaß beim Anlegen weiterer KNX Items.