ioBroker KNX – Mein Weg von Nix zur KNX Visualisierung

Geschätzte Lesezeit: 8 min
ioBroker_KNX_weg_ziel

Wenn du meinen openHAB Artikel gelesen hast, weißt du, ich wollte mal ioBroker mit KNX ausprobieren. Nun lange konnte ich mich nicht zurück halten. Da ja überall geschrieben steht „Einfach!“, „Stunde und läuft“ „Etwas für zwischendurch“ hab ich mir gedacht: „Warum nicht?“ Jetzt musst du wissen, ich bin ein Typ der jedes Fettnäpfchen findet und ausrutscht. So auch diesmal.

Vielleicht kannst du jedoch von meinen Fehlversuchen profitieren und sie bringen dich weiter. Hier beschreibe ich also den Weg von der Installation, Einrichtung der Verbindung von ioBroker zu KNX bis zur Visualisierung. Schlussendlich kann ich in der ioBroker Visualisierung eine Taste drücken und die Lampe über mir leuchtet. Ziel erreicht.

Download und installation von ioBroker für KNX

Im Artikel openHAB – meine Erfahrungen nach 2.5 Jahren hatte ich ja schon erwähnt, dass ich einen Server auf dem Dachboden stehen habe. Also habe ich mich direkt für die Installation über Docker entschieden. Es gibt da ja ein passendes Image von Andrè Germann das sehr viel Gutes verspricht. Andrè leistet schon sehr gute Arbeit, und so schien es mir ziemlich einfach an eine lauffähige Version zu kommen. Es schien so.

Grundsätzlich würde ich sagen: „Wenn du es dir leisten kannst, versuch nicht von Freiwilligen abhängig zu sein.“ Es kann immer mal passieren das ein Entwickler gute Gründe hat seine Arbeit einzustellen. Dann kann ihn niemand dazu zwingen, freiwillig weiter zu machen. Sollte das hier also auf eine längerfristige Sache raus laufen, werde ich mir den ioBroker Server zulegen.

Alle die schon einen Server haben, sei es ein Raspi Image oder der ioBroker Server in Hardware, können diesen Abschnitt überspringen. Du kannst ihn aber auch lesen um zu sehen, was dir alles entgeht 😉

Eins ist mir noch wichtig: Andrè leistet mit seinem Image wirklich gute Arbeit, die Fehler die mir hier begegnen, können immer passieren. Ein Entwickler kann nicht ALLE Eventualitäten überblicken. Zudem Updates einem auch oft einen Strich durch die Rechnung machen. Ohne das Docker Image, hätte ich ioBroker wahrscheinlich gar nicht angefasst.

Aber zurück zu Installation. Ich bin ja noch die Konsole generation, also entschuldige bitte, wenn du hier nicht so viele bunte screenshots findest.

Ab in den Container

Du startest eine shell und holst dir das Docker image nach hause:

sudo docker run --net=host --name iobroker \
      -v /einOrdnerAufDemHost:/opt/iobroker buanet/iobroker:latest

Wichtig sind hier die folgenden Einstellungen:

  • –net=host – sonst findet dein KNX Interface keinen Weg in den Container. ioBroker läuft ja in einem Container. Das heißt in einer abgeschlossenen Umgebung. Du kannst zwar einen oder zwei Ports weiter leiten um Zugriff auf Visu und Admin Interface zu erhalten, aber der oiBroker KNX Adapter erhält keine Daten von dem KNX Interface das am Bus hängt. Lustig ist, dass der ioBroker KNX Adapter fröhlich grün leuchtet und sagt „ALLES OK! Ich habe alles im Griff“ Er allerdings keine vollständige Verbindung zum Bus hat. Klicken in der ioBroker Visualisierung funktioniert also nicht.
  • -v /einOrdnerAufDemHost:/opt/iobroker – Du willst später den Container gegen einen anderen austauschen. Zum Beispiel bei einem Update. Diese Einstellung sorgt dafür, das der Ordner /opt/iobroker in deinem „echten“ Filesystem liegt. Du kannst also den Docker stoppen, Daten verändern und wieder starten. Oder, besonders während der Findungs-Phase wichtig, immer wieder löschen und neu aufsetzten.
  • Wahrscheinlich habe ich noch einige Dinge vergessen, die später dazu kommen. Heute will ich ja nur die Visu zum laufen bringen.

Dieser Befehl lädt also das Image herunter, setzt den Container auf und startet ihn. So weit so gut. Jeder andere Benutzer in der Welt gibt jetzt die Adresse http://192.168.???.???:8081 in den Browser ein und sieht ein Admin Interface. Nicht so der KNX-Blogger. Bei mir läuft auf 8081 schon etwas anderes, also brauche ich einen anderen Port.

Admin Interface erreichbar machen

Nur noch mal zum wiederholen, wahrscheinlich musst du nur http://192.168.???.???:8081 aufrufen und du bist im Admin Interface. Ich musste den Port ändern, weil dort etwas lief. Damit fing alles an. Andrè stellt die Variable IOB_ADMINPORT zur Verfügung um den Admin Port anzupassen. Das funktioniert auch wunderbar, jedoch war das Admin Interface immer noch nicht erreichbar. Aber was solls nach nur 2 Stunden Google hatte ich die Lösung:

Anscheinend passiert etwas komisches mit den Hostnamen während der Container gestartet wird. Andrès start Skript versucht das abzufangen, schaffte es aber bei mir nicht. Also ist Handarbeit angesagt. Du loggst dich per Hand in den Container ein und fügst zwei Adapter manuell zur ioBroker hinzu. Die Adapter heißen Admin und Discovery. Das geht mit den folgenden Befehlen.

1. _>sudo docker exec -it iobroker bash
2. docker_>iobroker del admin.0
3. docker_>iobroker del discovery.0
4. docker_>iobroker add admin --port 8090
5. docker_>iobroker add discovery

Befehl 1. dient dazu eine Shell (in diesem Fall bash) in dem Container zu starten und sich einzuloggen. Das ist ungefähr so als würdest zu per SSH auf einen anderen Rechner steigen.

Befehle 2. bis 5. entfernen die existierenden Adapter und fügen neue hinzu. Wie gesagt, ich brauchte den Port 8090, weil 8081 schon belegt war.

Und weil ich ja ein Glückspilz bin, war Port 9000 (den ioBroker auch benutzt) ebenfalls schon besetzt. Also musste ich auch 9000 gegen etwas anderes ersetzen. Das geht mit diesem Befehl in der Container Shell:

5. docker_>iobroker setup custom 

Und Schwupps, war ich nach einem Nachmittag auf der Admin Oberfläche. Akzeptierte alle Bedingungen und war froh, denn „Es lebt“.

Verbindung ioBroker zu KNX aufbauen

Mit vollem Elan, „Jetzt kann kann ja nichts mehr schief gehen“, geschaut wie ich auf KNX komme. Acha, Google sagt, es gibt da so Adapter. Also schauen wir mal in den Reiter Adapter und suchen nach KNX.

ioBroker KNX Adapter Auswahl
Unter „Adapter“ findest du den ioBroker KNX Adapter, mit dem du in den Bus einsteigen kannst.

Über die drei Punkte den Adapter installiert und gehofft, das alles läuft. Der KNX Adapter braucht die IP von deinem Interface (dazu später mehr) und eine Lizenz. Die Lizenz bekommst du indem du dich bei: ioBroker.net anmeldest und eine Lizenz für „0“ Euro kaufst. Erschrecke dich nicht, es gibt sie auch für 100 Euro, falls du den ioBroker KNX Adapter geschäftlich einsetzten möchtest. Ich will ja nur eine Visualisierung für mein kleines Häuschen, also habe ich guten Gewissens die kostenlose Lizenz „gekauft“. Dann kopierst du die Lizenz in den Adapter und hoffst.

Welches KNX Interface denn nun?

Ich habe das MDT SCN-IP000.01 Interface. Der ioBroker KNX Adapter hat da so eine Anzeige ob er verbunden ist. Diese Anzeige stand auf Orange „Keine KNX Verbindung“. Wenn ich allerdings meinen openHAB2 Docker gestoppt habe wurde die Anzeige grün. Ich weiß, dass dieses Interface 5 parallele Verbindungen unterstützt. Also wieder mal Google fragen und Antworten bekommen. Ja, das MDT Interface ist super für ioBroker. Es wird sogar von ioBroker selbst empfohlen (irgendwo im Forum, entschuldige, dass ich nicht ALLE Seiten wiedergeben kann, die ich besucht habe, es währen hunderte 🙂 ) Also kann es nicht am Interface liegen.

Das Interface hat aber zwei Modi:
  • Eine Verbindung zulassen (standard)
  • Fünf Verbindungen zulassen

Der Modus mit fünf Verbindungen muss durch drücken der Programmiertaste am Interface aktiviert werden. Das heißt, bei vollem Betrieb nimmst du dir einen spitzen Gegenstand und drückst die Programmiertaste bis die LED blinkt. Ja, trau dich. Danach kannst du auch eine ETS5 Verbindung zu KNX aufbauen, während ioBroker und openHAB2 gleichzeitig mit dem Bus sprechen. Hab ich ausprobiert. Auch mit dem Bus Monitor von der ETS5.

Das Lämpchen leuchtete Grün!

ioBroker KNX Verbindung hergestellt.
Das grüne Lämpchen ganz links bedeutet: ioBroker spricht mit KNX

Das war übrigens der Punkt, an dem ICH heraus gefunden habe, dass ich den –net=host Switch brauche für den Docker (siehe oben). Denn das Lämpchen war zwar grün, aber es tat sich nichts. Keine Signale vom Bus und keine zum Bus hin. Das Container interne Interface war nicht in der Lage mit dem KNX Interface zu sprechen. Also fröhlich von vorne begonnen. Da die Ports bis jetzt auch nur innerhalb Docker umgeleitet waren, habe ich mich auch mit denen beschäftigen dürfen. Was ein Spaß, sage ich euch 😉

Stellst du nun das Logging im KNX Adapter auf „Info“ (Das geht im Adapter Abschnitt der Admin Oberfläche) dann siehst du auch Meldungen, die dir in etwa sagen: Ich empfange etwas von KNX, verstehe es aber nicht.

Die ganzen Objekte anlegen

In diesem Abschnitt bin ich wirklich froh und stolz der KNX-Blogger zu sein. Warum? Nun der KNX Adapter kann eine knxproj Datei importieren und die Objekte, zum Beispiel „Büro Licht Decke“ von allein anlegen. Je sauberer das Projekt angelegt ist, desto besser läuft der Import. Da ich ja der KNX-Blogger bin und dir immer erzähle: „Arbeite strukturiert und sauber“ mache ich das ja selbst auch so.

Was soll ich also sagen: Projektdatei aus ETS importiert. Einige Sekunden gewartet die Objekte waren da. Du kannst zu diesem Zeitpunkt auch in den Objekte Abschnitt gehen und den Objekten unter „knx.0“ Werte zuweisen. Du kannst also, wenn alles funktioniert hat, jetzt schon dein Licht mit ioBroker per KNX schalten.

ioBroker - Licht schalten
Über einen Klick auf „false“ kannst du hier schon dein Licht schalten.

Die Zielgrade – Die ioBroker Visualisierung

Mein Ziel ist es, in der ioBroker Visualisierung EINE Lampe zu schalten. Am besten die im Büro, denn hier sitze ich gerade und so muss ich nicht aufstehen und nachschauen ob das Licht leuchtet. Ich will keine super Visualisierung, ich will auch keine vollständige Integration von ioBroker in mein System. Das folgt alles später. Schritt für Schritt.

Also, da es einen „KNX Adapter“ gibt, schau ich mal nach einem Adapter für die Visualisierung. Und tatsächlich. Es gibt ihn. Also wieder drei Punkte und installieren. Der Schritt war wirklich echt einfach. Dann startest du die Visualisierung und siehst eine kleine Wohnung. Dort sind Taster wie zum Beispiel „Ein“ und „Aus“. Die sind zwar für die Küche, aber für meine Zwecke werden sie schon reichen.

Ich habe mir die Tasten in der Mitte ausgesucht und ihnen das Objekt „Büro Licht Decke“ zugewiesen.

Zuordnung von Objekten zu Elementen in der Visualisierung.

Jetzt nur noch die Visualisierung starten, Maus über so ein Objekt legen und Augen zu machen. Mit geschlossenen Augen klicken und die Augen langsam wieder aufmachen. „DAS LICHT IM BÜRO LEUCHTET!!!!!!!“ Nach nur zwei Nachmittagen basteln. Ok, über openHAB2 ging es schon vorher und wir haben einen Taster im Büro dafür. Aber über den ioBroker hat es noch nie funktioniert. Und es ist gefühlt schneller als openHAB. Ich hab natürlich keine Messungen vorgenommen, aber es fühlt sich „flüssiger“ an.

Halte dich fest, denn jetzt kommen bestimmt noch viele weitere spanende Projekte mit ioBroker.

Fazit

Boah, war das eine Geburt. So wie ich das sehe, wäre der Artikel nur halb so lang, wenn ich direkt den ioBroker Server gekauft hätte. Oder zumindest den ioBroker Master Kurs von Matthias Kleine gekauft hätte. Ich bin jedoch erst nach der Installation auf der Seite Haus-Automatisierung.com gelandet.

Nach den ersten Hürden beim installieren des Docker Containers beschreibt der Artikel die holprige Strecke zur KNX Interaktion. Die ioBroker Visualisierung am Ende war dann der kleinste Aufwand. Das hat wieder richtig Spaß gemacht. Ich habe alle Einzelheiten protokolliert, damit du auch „ganz einfach“ die Verbindung zwischen ioBroker und KNX schaffen kannst.

Was machen wir als nächstes?

Viel Spaß mit KNX,
Damian

Bild von Peter H auf Pixabay

2 Gedanken zu “ioBroker KNX – Mein Weg von Nix zur KNX Visualisierung

    1. Hallo Mathias,
      nein, kannte ich noch nicht. Habe mir gerade mal die Seite angeschaut. Sieht interessant aus. Werde ich mal testen.
      Habe schon gesehen, gibt es auch als docker Container. Also dürfte die Installation kein Problem darstellen.

      Viele Grüße,
      Damian

Schreibe einen Kommentar