Bastelecke > Smarthome > ioBroker und Node-RED > Node-RED als Adapter in den ioBroker integrieren
Die wohl einfachste und einsteigerfreundlichste Möglichkeit Node-RED zusammen mit dem ioBroker zu kombinieren, ist es Node-RED als Adapter hinzuzufügen. Nur so erreicht man volle Integration, kann in Node-RED die Objektdaten vom ioBroker direkt auswählen und darin ohne Umwege, wie MQTT oder Rest-API, schreiben. Während frühere Adapterversionen noch das Ansprechen einer externen Node-RED Instanz ermöglichten, funktioniert das bei der aktuellen Version nicht mehr. Vielmehr nimmt der Adapter eine komplette Node-RED Instanz auf dem ioBroker-Host in Betrieb. Das ist frisst zwar Ressourcen und Performance, doch kann bei kleinen Installationen absolut ausreichend sein. Ich möchte hier auf diese Möglichkeit eingehen, da es die einfachste Möglichkeit für all diejenigen unter uns ist, die ioBroker auf einem Raspberry-Pi installiert haben und weder über einen Proxmox-VE Server verfügen, noch Lust haben sich einen zweiten Raspberry-Pi für Node-RED daneben zu stellen.
Adapter hinzufügen
Um den Adapter hinzuzufügen, rufen wir zunächst die Admin-Oberfläche unseres ioBrokers im Webbrowser auf. Diese erreichen wir unter:
http://[IP-Adresse_des_ioBrokers]:8081
Sollte die IP-Adresse automatisch vergeben worden und nicht bekannt sein, kann sie im Router, z. B. der AVM-FritzBox, nachgesehen werden. Weiter werde ich darauf jedoch nicht eingehen, da ich davon ausgehe, das jeder der diesen Artikel liest, bereits mit ioBroker arbeitet und wissen sollte welche IP-Adresse dieser hat.
Wer wissen möchte was ioBroker ist und wie er ihn installiert, kann hier weiterlesen:
Bastelecke > Smarthome > ioBroker – Die universelle Zentrale für euer Smarthome
Fahren wir also mit der Adapter-Installation fort. Über den Menüpunkt Adapter gelangen wir in den Katalog der installierbaren Adapter, welche von Werk aus bereits im ioBroker eingepflegt sind. Hier suchen wir uns, über Eingabe von node-red in der Suchbox, den passenden Adapter heraus.

Indem wir auf die drei senkrecht angeordneten Punkte in der Adapter-Kachel klicken, gelangen wir zur Installation. Hier wählen wir dann den Plus-Button in der unteren linken Ecke.

Nach dem Akzeptieren der Lizenzbedingungen läuft die Installation dann eigenständig durch.

Die Installation ist erfolgreich abgeschlossen wenn in der letzten Zeile Process exited with code 0 erscheint. Auch der Hintergrund des Installation-Dialoges sollte sich bereits verändert haben und nun bereits Konfigurations-Dialog des Adapters geladen haben.
Den Installationsdialog können wir nun schließen und uns dem Konfigurationsdialog zuwenden:

Hier ließe sich später noch die Verhaltensweise des Adapters konfigurieren. Auch ein Passwortschutz der Oberfläche lässt sich hier festlegen. Für den Start reicht die gezeigte Grundkonfiguration jedoch aus und es muss nichts verändert werden. Allenfalls den Port 1880 sollten wir uns merken oder notieren. Über ihn kann man später die Node-RED Oberfläche aufrufen ohne den Umweg über das ioBroker Admin Panel nehmen zu müssen:
http://[IP-Adresse_des_ioBrokers]:1880
Den Konfigurations-Dialog können wir jedenfalls erstmal schließen. Node-RED läuft bereits im Hintergrund, wie wir in der nun auftauchenden Liste unserer Instanzen erkennen können:

Mit dem Pause-Button könnten wir den Adapter nun anhalten oder mit dem dann an der Stelle erscheinenden Play-Button wieder starten. Mit dem Schraubenschlüssel gelangen wir wieder in den Konfigurations-Dialog, der kreisrunde Pfeil startet den Adapter neu und mit dem vierten Symbol könnten wir theoretisch auf die Oberfläche von Node-RED gelangen.
Ich sage absichtlich theoretisch, denn aus irgendeinem mir unbekannten Grund verlinkt dieser Button hier falsch:

Mit dieser Adresse bekommen wir, zumindest im Brave-Browser, nur eine leere, weiße Seite angezeigt. Erst wenn wir das undefined in der Adressleiste manuell entfernen, klappt es.
Allerdings hat Node-RED nun auch einen eigenen Menüpunkt an der linken Seite bekommen. Hierrüber gelangen wir ebenfalls in dessen Oberfläche. Auch könne wir, wie bereits erwähnt, direkt die Adresse aufrufen, oder sie uns auch als Lesezeichen im Browser speichern.

Zugriff auf Objekte (erste Schritte)

Auf eine Besonderheit, bei der Verwendung von Node-RED direkt im ioBroker, möchte ich hier noch eingehen: Den Zugriff die Objektdaten.
Da Node-RED direkt im ioBroker installiert ist, kann es direkt auf die Daten zugreifen. Hierfür stellt Node-RED spezielle Nodes zur Verwendung bereit.
Diese direkte Möglichkeit der Interaktion haben wir auch nur dadurch das wir Node-RED direkt als Adapter im ioBroker installiert haben. Installieren wir Node-RED als externe, eigenständige Software, können wir zwar auch auf die Objekte Zugreifen, benötigen hierfür jedoch eine externe Schnittstelle, wie beispielsweise MQTT. Das ist jedoch Thema für das nächste Kapitel.
Wir haben Node-RED als Adapter installiert und können daher nun die ioBroker Nodes nutzen. Diese finden wir in unserer Liste der verwendbaren Nodes, wenn wir etwas nach unten scrollen, in der Kategorie ioBroker.
Per Drag-and-Drop können wir hier einen Node auswählen und in unseren Flow ziehen. Zum Testen nehmen wir hier einfach mal den Node „ioBroker in“ und ziehen ihn nach rechts. Durch Doppelklick auf den frisch hinzugefügten Node öffnet sich der Dialog um den Node zu bearbeiten. Hier lassen sich verschiedene Einstellungen vornehmen. Die wesentlichste ist die Auswahl des „Topic“, also der Wert auf den zugegriffen werden soll. Wissen wir exakt welchen Wert wir benötigen, können wir auch direkt in die Zeile schreiben. Wir können ihn jedoch auch durch anklicken des Buttons, hinter der Zeile, auswählen.

Haben wir bereits etwas Erfahrung mit ioBroker, und haben uns beispielsweise bereits eine Visualisierung in VIS erstellt, sollte uns dieser Dialog bereits bekannt vorkommen:

Da es sich hier bei mir um ein leeres Testsystem handelt, welches ich lediglich zu Demonstrationszwecken habe, ich hier unter 0_userdata ein Objekt mit dem Namen Testwert angelegt. In eurem Produktivsystem könnt ihr hier jedoch jeden erdenklichen Wert auswählen.
Zu Demonstrationszwecken ziehen wir uns nun als Output den Debug-Node in den Flow und verbinden beide Nodes mit einer Linie miteinander. Diese ziehen wir einfach mit der Maus zwischen beiden Knotenpunkten der Nodes.

Um das ganze nun zu aktivieren, wählen wir oben, rechts „Übernahme (deploy)“.

Hat alles geklappt wird unter dem ioBroker Node nun ein grüner Punkt mit dem Schriftzug „connected“ angezeigt.

Zu Demonstrationszwecken haben ich meinen soeben erstellten Testwert mit dem String Hallo Welt beschrieben. Die Änderung wird nun von dem ioBroker Node erkannt und der Wert an den Debug-Node übergeben, welcher ihn im Debug-Bereich an der rechten Seite von Node-RED ausgibt.
Sicher ist dieses das denkbar dümmste was man mit ioBroker und Node-RED anstellen kann und dient nur zu Demonstrationszwecken. In Zukunft werden wir hier eher Schaltzustände von Sensoren und Schaltern auslesen und bei Änderung den Wert an Aktoren weiter geben. Geräte ein- und ausschalten, Rollläden hoch- und runterlassen, logische Zwischenschritte einbauen, wo beispielsweise bei der Rollladensteuerung zusätzlich überprüft wird ob es Tag oder Nacht ist, das Fenster offen oder geschlossen ist, oder ob die Raumtemperatur einen Sonnenschutz erforderlich macht. Das werden wir jedoch ein anderes Mal, in einem separaten Artikel behandeln.
Vieles in Node-RED ergibt sich aus dem grafischen Zusammenspiel der Komponenten. Daher möchte ich jeden dazu ermutigen selbst etwas zu Testen und die einzelnen Nodes auszuprobieren. Ich wünsche euch viel Spaß beim Erstellen eurer ersten logischen Verknüpfungen.
Wenn ihr nun wissen wollt wie ihr Node-RED als eigenständige Instanz an ioBroker anbindet, dann lest hier weiter:
Node-RED als eigenständige Instanz mit dem ioBroker verbinden