Node-Red in Verbindung mit Loxone

Ich habe Anfang diesen Jahres einen node-red node für die Anbindung des Loxone Miniservers geschrieben: node-red-contrib-loxone. Die Entwicklung können Interessierte im Loxone-Forum nachlesen. An dieser Stelle auch noch mal Danke für das ganze Feedback!

Loxone baut eine recht komplette und dafür immer noch halbwegs offene Hausautomationslösung mit vielen fertigen Hard- wie auch Software-Komponenten und eigenem Funksystem. Es gibt eine eigene Konfigurationsoberfläche mit SPS-artigen Programmiermöglichkeiten und eine recht schicke Visualisierung. Ein großer Vorteil liegt zum Beispiel in der fertigen Logik der einzelnen Bausteine und in Extensions, die die Verbindung in andere Welten wie EnOcean, Modbus und DMX schaffen.

Mit der Zeit arbeitet Loxone aber immer mehr daran, in seinem System eher die eigenen Komponenten zu bevorteilen. Das äußerte sich zum Beispiel darin, dass die Modbus-Kommunikation nur noch im Fünfsekundentakt möglich ist.
In Anbetracht der Tatsache, dass der Miniserver schon ein paar Jahre alt ist, will ich das sogar verstehen. Das System muss seiner Hauptaufgabe (Schalten, Steuern, Regeln) nachkommen – und das hat eben die höchste Priorität gegenüber „nachgelagerten“ Aufgaben.
Der Miniserver ist zum Beispiel auch zu schwach auf der Brust, um SSL/TLS zu implementieren. Meiner Meinung nach einer der größten Nachteile des Systems…

Außerdem habe ich viele Kommunikationsmöglichkeiten – wie zum Beispiel MQTT – vermisst. Mit node-red-contrib-loxone wurde es dann endlich möglich, gewisse Dinge doch wieder in die eigene Hand zu nehmen!
Hier möchte ich auch das vorzügliche LoxBerry Projekt erwähnen, das bereits viele Unzulänglichkeiten des Miniservers ausgleicht.

Mein wichtigtes Anliegen war, wie bereits erwähnt, die Öffnung der Plattform Richtung MQTT. Damit hatte ich dann alle Möglichkeiten eine Anbindung zu beliebigen Systemen zu realisieren.

Bei einem Freund, der als Elektriker Loxone vielen Kunden konzeptioniert und einbaut, habe ich dann mal testweise Homematic-Komponenten (Keymatic und Fensterkontakte) über node-red mit Loxone verknüpft.

Als Bindeglied diente mir MQTT, wie ich ja bereits unter Homematic mit node-red über homegear beschrieben habe. Über die günstige Nachrüstmöglichkeit von optischen Funk-Fensterkontakten freut er sich immer noch 😉

Die Verbindung des nodes läuft über den vom Miniserver bereit gestellten Websocket. Dieser wird zum Beispiel auch von der Smartphone-App genutzt. Der Verbindung zu node-red liegt die vorzügliche node-lox-ws-api von Ladislav Dokulil, dem ich hiermit explizit dafür danken möchte, zu Grunde. Dadurch musste ich die komplette Websocket-Kommunikation nicht selbst implementieren und konnte mich um die eigentlichen nodes kümmern.

Mit Version 9 der Loxone Software wurde jetzt die Verschlüsselung der Websocket-Aufrufe und der Login-Credentials umgestellt. Dank Ladislav konnte ich die gewünschte Verschlüsselung einfach in einen Konfigurationsparameter übergeben und brauchte nicht meinen kompletten Code anzupassen.

Wichtig ist, dass die „alten“ Verschlüsselungs- und Hashing-Methoden noch bis März 2018 von Loxone in Version 9 unterstützt werden. Für die älteren Versionen (<9) werden sie natürlich noch benötigt und sind daher weiterhin im Node als Parameter vorhanden.

Ich bin weiterhin gespannt, was die Leute alles in Verbindung mit Loxone und node-red anstellen. Kommentiert gerne, wenn ihr mich auf ein Projekt hinweisen wollt.


Update

Sebastian Hehn hat in seinem Blog sehr anschaulich und für Anfänger verständliche Verwendung von Alexa mit Loxone über node-red gezeigt – Super!

Amazon Echo steuert Loxone Smart Home via Node-RED

7 Kommentare

  1. Hi Patrik,
    erstmal Danke für deinen tollen Artikel. Der ist zwar schon älter, allerdings ist das Thema für mich gerade ganz aktuell. Ich bin was Node-Red sowie MQTT angeht noch ganz frisch, daher ist mir der Nutzen teils nicht ganz klar. Mein Ziel ist genau das, was du für deinen Kumpel implementiert hast, nämlich die Anbindung der HomeMatic Fenstersensoren etc. an Loxone. Da du auch das LoxBerry Projekt erwähnt hast, kennst du sicher das MQTT Gateway Plugin. Damit hätte man den Mosquitto Broker sowie die Anbindung des Loxone Miniservers an den Broker über MQTT abgedeckt. Fehlt also noch die Anbindung der HomeMatic Zentrale an MQTT, was du über HomeGear ja schon beschrieben hast. (Ich habe den Charlie-Bausatz mit RaspberryMatic im Einsatz und überlege da noch welchen genauen Weg ich gehen soll).
    Damit ist die Anbindung doch schon abgeschlossen und Node-Red gar nicht von Nöten?! Außer man möchte weitere Dinge per Node-Red einbinden die nicht direkt MQTT sprechen können, ein Dashboard realisieren oder Logiken in Node-Red abbilden anstatt dies im Miniserver zu tun.
    Sehe ich das so richtig? Also rein für den Use Case HomematicLoxone wird lediglich MQTT benötigt und Node-Red hattest du in deinem Setup daher auch gar nicht konkret dafür im Einsatz?

    Beste Grüße,
    Jens

    1. Sers Jens,

      danke!
      Ja, das siehst du richtig. MQTT weiß aber nicht, welcher Datenpunkt zu welchem gehört und sicher versteht der Miniserver keine Kommandos von Homematic. Somit brauchst du also irgend eine Art Regel mit der du die beiden Welten aufeinander abbilden kannst.
      Entweder du machst das in einem deiner beiden Systeme oder du nutzt dafür eben node-red.
      Ich kenne mich mit LoxBerry leider zu wenig aus und weiß nicht, ob es genau dafür dort schon Möglichkeiten gibt?

      In meinem Setup habe ich node-red also genau dafür im Einsatz, da es damals (2017) das LoxBerry-Plugin für mqtt glaube noch gar nicht gab und ich natürlich den von mir entwickelten node-red-contrib-loxone dafür nehmen wollte.
      Homegear konnte damals schon komplett MQTT und hat mir, zusammen mit meinem selbstentwickelten Funkmodul, ja schon die Homematic-Anbindung erledigt. Das Setup hab ich bei meinem Kumpel dann einfach dupliziert.

      Das was hier in node-red passiert ist wirklich nur die einfache „Übersetzung“ der Datenpunkte.

      Halt mich da gerne auf dem Laufenden. Und vielleicht sollte ich mir endlich mal einen LoxBerry aufsetzen.

      Gruß,
      Patrik

      1. Hi Patrik,
        Danke für die schnelle Antwort! Ich beginne zu verstehen 🙂
        Es ist zumindest meine Annahme, dass das LoxBerry MQTT Plugin das auch leistet, aber das finde ich dann mal raus und teste es. Die Nutzung von HomeGear auf der anderen Seite, um direkt MQTT Support zu haben ist natürlich auch charmant… Ich gebe Bescheid wie es nachher laufen wird.

        Der LoxBerry läuft bei mir aktuell für Wetterdaten- und Stromzähler-Integration, sowie Auto-Backup wunderbar.

        Grüße,
        Jens

        1. Hi Patrik,
          ich habe das Ganze nun im Testsetup am Laufen und erkenne jetzt den wahnsinnigen Komfort deines Plugins mit Node-Red! Ganz toll! Die in Loxone konfigurierten Komponenten einfach per Dropdown auswählen zu können ist natürlich fantastisch für eine schnelle und einfache „Programmierung“. Auf der HomeMatic Seite habe ich RedMatic als Addon für raspberrymatic installiert, um so Node-Red mit dem node-red-contrib-ccu direkt auf dem RPi nutzen zu können. So habe ich für die CCU den gleichen Komfort und muss außer einer Direktverbindung (evtl. mit nem Format-change dazwischen) nichts mehr tun. Klasse! MQTT kommt so bei mir (aktuell) dann garnicht zum Einsatz. Aber wer weiß was sonst noch für Dinge eingebunden werden wollen…
          Nochmal Daumen hoch und Danke für deinen Node!
          Beste Grüße,
          Jens

          1. Genau so! 😀 Mqtt würde ich in deinem Setup auch nicht nutzen, da weder Loxone oder die CCU das nativ sprechen.
            Wenn du allerdings jetzt anfängst andere Geräte anzubinden, dann könnte es Sinn machen auf MQTT als „grundliegende“ Kommunikationsinfrastruktur zu setzen.

            Denk bitte dran, dass über den Websocket den node-red-contrib-loxone nutzt, nur die visualisierten Elemente im Zugriff sind. Das ist von Loxone so gebaut/dokumentiert.

            Hatte es glaube in der node-Doku auch erwähnt: https://github.com/codmpm/node-red-contrib-loxone

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.