KNX Server (EIBPORT V3)

Bereits der zweite Blogeintrag innerhalb von drei Tagen - Durch COVID-19 hat man nun wirklich etwas mehr Zeit zuhause zu arbeiten...

 

Wir haben uns nun etwas mit unserem KNX Server vertraut gemacht und eine erste, wenn auch simple Funktion implementiert. Gleich mal eine Warnung vorweg, es wird ab hier etwas technisch werden - aber anhand von diesem simplen Beispiel wird man sehr gut die Limitierungen der KNX Programmierung mittels ETS Software und damit die Vorteile eines Servers erkennen.

 

Unser Büro ist ein eher länglicher Raum mit ca. 20 m² und drei Deckenlampen. Jede Lampe besitzt ein eigenen Ausgang am Schaltaktor, sodass die Lampen unabhängig voneinander geschalten werden können.

Jetzt könnt ihr euch mal überlegen, wie es am sinnvollsten wäre, die Lampensteuerung auf einem Room-Controller mit sechs Tasten umzusetzen. Eine Möglichkeit wäre drei Tasten mit jeweils einer Lampe zu belegen. Dann muss man aber alle drei Tasten drücken wenn man den ganzen Raum beleuchten will. Gut, dann braucht man noch eine vierte Taste mit der man alle Lampen gleichzeitig an- und ausschalten kann -> Hier hat man schon das erste Problem mit der Rückmeldung.

Am Room-Controller kann man ja direkt erkennen ob ein Licht leuchtet oder nicht: Ist es aus, sieht man eine graue Glühbirne, ist es an sieht man eine orangene Glühbirne mit Lichtstrahlen. Im KNX Bus funktioniert das folgendermaßen:

  1. Die Lampen-Taste wird gedrückt und der Room-Controller schickt ein Bit Signal (1) als Schalten an den Schaltaktor
  2. Der Schaltaktor schaltet dadurch den jeweiligen Ausgang ein und sendet ein anderes Bit Signal (1) als Statusrückmeldung an den Room-Controller
  3. Der Room-Controller empfängt dieses Bit und signalisiert mit der orangenen Glühbirne am Display, dass der Ausgang eingeschaltet ist

Es ist möglich ein Bit Signal an beliebig viele Empfänger zu senden -> heißt, ich kann mit einem Tastendruck alle drei Lampen einschalten. Es ist aber nicht möglich mehr als ein Bit Signale an einen Empfänger zu senden - Der Empfänger kann so nicht mehr entscheiden auf welches Bit er hören soll. Schalte ich alle drei Lampen ein, habe ich drei Status Bit erzeugt, wenn ich diese an mein Room-Controller sende, weiß er nicht was er machen soll und macht deshalb gar nichts -> Das Glühbirnen Symbol auf dem Display bleibt grau. Wie das Problem mit einem Server gelöst wird kommt später.

 

Es ist auch nicht besonders schön oder praktisch, dass man 4 Tasten für drei Lampen verwendet. Besser wäre doch eine Taste für alle Lampen gleichzeitig und eine Taste mit der man die einzelnen Lampen durchschalten kann. So in etwa:

 

 

Mit der Taste oben rechts soll man die einzelnen Lampen sequentiell durchschalten können und die Zahl darunter soll angeben, welche Lampe gerade eingeschaltet ist. Links oben sieht man wie eine Rückmeldung bei eingeschaltetem Licht funktionieren soll: orange mit Lichtstrahlen.

 

Das sequentielle Durchschalten funktioniert leider gar nicht ohne Server. Ihr erinnert euch, wir haben drei Schaltaktor Ausgänge, die jeweils auf ein Bit Signal warten um zu schalten. Dem Taster kann ich jedoch nicht sagen, dass er beim ersten Betätigen ein Bit an Ausgang A sendet, beim zweiten Betätigen ein Bit an Ausgang B usw. - Man kann immer nur ein Bit an einen Empfänger senden.

Der Taster hat die Möglichkeit ein Integer mit 8 Bit (1 Byte) zu erzeugen. Ich kann umsetzen, dass eim ersten Betätigen eine "1" erzeugt wird, beim zweiten Betätigen eine "2", beim dritten Betätigen eine "3" und beim vierten Betätigen wieder eine "0". So kann ich zumindest mit einem Taster vier verschiedene Zustände erzeugen. Leider kann der Schaltaktor mit dieser Information gar nichts anfangen - Dieser wartet auf ein Bit und erzeugt habe ich ein Byte. In der ETS Software ist es auch gar nicht möglich diese zwei Signale zu verbinden.

 

Jetzt wird es Zeit für die Umsetzung im KNX Server:

 

 

Ich gehe die Zahlen in den roten Kreisen Schritt für Schritt durch:

  1. Taster, dass alle Lampen eingeschaltet werden sollen (1-Bit) - wird gesetzt durch den Room-Controller
  2. Das Bit wird vervielfältigt und an 4 Empfänger gesendet
  3. Drei Ausgänge des Schaltaktors werden geschaltet - Alle Lampen gehen An bzw. auch wieder Aus
  4. Ein Übersetzer: Er wandelt das Bit um in ein Byte und er ist so konfiguriert: Wenn er eine "1" als Bit empfängt sendet er eine "0" in Form eines Byte. Ein Integer also.
  5. Ist die Status Zahl oben rechts am Room-Controller, die angibt welche der drei Lampen eingeschaltet ist. Dieser Status taucht noch mal an Stelle 11 auf. An dieser Position wird er jedoch auf Null gesetzt sobald der Taster oben Links für alle Lampen An/Aus gedrückt wird
  6. Hier haben wir alle drei Ausgänge des Schaltaktors, verbunden mit einer binären Logik, die hier als UND-Glied konfiguriert ist und die eine Statusrückmeldung für alle drei Lampen an den Room-Controller sendet. Funktion: sind diese drei Ausgänge gleichzeitig auf High wird das Bit für den Status auf "1" gesetzt. Der Room Controller bekommt nun nicht mehr drei einzelne Bits, womit er nichts anfangen kann, sondern nur noch ein einzelnes und damit funktioniert die Rückmeldung mit der orangenen Glühbirne.
  7. Taster für das sequentielle durchschalten der einzelnen Lampen (1-Byte) - mögliche Zustände: 0, 1, 2, 3
  8. Das Byte wird an vier Empfänger verteilt
  9. Hier sehen wir drei Übersetzer. Der erste sendet ein Bit "1" wenn er das Byte "1" empfängt. Der zweite sendet ein Bit "1" wenn er das Byte "2" empfängt und der dritte sendet ein Bit"1" wenn er das Byte "3" empfängt. Wird das Byte "0" empfangen oder ein Byte was im jeweiligen Übersetzer nicht konfiguriert ist, wird immer ein Bit "0" gesendet. Es ist jedoch essentiell, dass das beim Schritt 7 erzeugte Byte in ein Bit umgewandelt wird
  10. Hier sind die drei Ausgänge des Schaltaktors - Bekommen sie ein Bit "1" leuchtet die jeweilige Lampe
  11. Wieder die Status Zahl, die wir bereits im Schritt 5 hatten. Diesmal bekommt sie jedoch den Wert, der durch das Betätigen des Tasters oben rechts für Lampe 1/2/3 erzeugt wird und zeigt diesen auf dem Room-Controller an.

Das Beispiel ist nun wirklich simpel und man kann sich nun fragen: Ist dieser KNX-Server jetzt über 1000€ wert?

Ich finde schon! Allein diese simple Funktion zeigt schon, dass die konventionelle Programmierung in der ETS sehr stark eingeschränkt ist und ganz viele Funktionen einfach nicht umsetzbar sind. Mit einem Server werden diese Ketten gesprengt und es ist einfach alles möglich.

Ich glaub es macht auch kein Unterschied ob ihr euch für ein Gira Server entscheidet, oder wie wir für einen von BAB-Tec. Bestimmt gibt es auch noch viele andere Hersteller von KNX-Server, ich will hier jedoch nicht auf die einzelnen Funktionen der verschiedenen Server eingehen - Es soll ja kein Werbe-Blog werden. Wenn ein Server für euch in Frage kommt, kuckt einfach auf die Funktionen die ihr braucht und wie diese umgesetzt sind. Schaut euch die Visualisierung am Smartphone an - Braucht ihr eine Alexa Steuerung - Wollt ihr IP-Kameras einbinden - Wollt ihr Wetterdaten in einer Excel Datei aufzeichnen - Wollt ihr Sonos Lautsprecher einbinden - und, und, und.

 

Mir wird jedenfalls mittlerweile klar warum KNX soviel kostet, wenn man vom Elektriker ein KNX-Rundum Paket möchte. Natürlich kosten die KNX-Busteilnehmer viel Geld - Man braucht auch ein paar Kabel mehr - aber man muss auch ganz viel mit den Kunden abstimmen, wie etwas umgesetzt werden soll; man muss erklären warum gewisse Dinge ohne Server nicht möglich sind und wenn der Kunde ein Server möchte, kann der Programmieraufwand exponentiell ansteigen.