Node-RED » IoT-Automation nach dem Baukastenprinzip
Veröffentlicht: 21.04.2022 | Lesedauer: 6 Minuten
Mit Node-RED bringst du viele IoT- und Smart Home-Geräte harmonisch unter einem Dach zusammen. Rollläden und Jalousien abhängig von Sonne, Wetter und Anwesenheit von Bewohnern steuern, Wärme bedarfsgerecht regulieren und in Gefahrensituationen rechtzeitig Alarm schlagen: Bei der Gebäudeautomation geht es um mehr Wohnkomfort durch Automatisierung von Abläufen, mehr Sicherheit und eine Verbesserung der Energieeffizienz. Dazu müssen verschiedene Systeme und Dienste miteinander verknüpft und zu einem einheitlichen Smart Home-System verbunden werden. Hierfür gibt es verschiedene Lösungen – eine davon ist Node-RED.
Die kostenlose Open-Source-Software vernetzt smarte Geräte und Dienste, die von Haus aus nicht oder nur teilweise kompatibel sind. In der Entwicklungsumgebung entwirfst du komplexe IoT-Anwendungen – ohne dafür eine Zeile Code zu schreiben. Der Einstieg gelingt leicht durch das Baukastenprinzip. Durch das Modellieren von Prozessen im Tool erzielst du umfassende Automationsergebnisse.
In Node-RED erzeugst du Verbindungen zwischen Geräten, Internetdiensten und vernetzten Datenquellen – selbst, wenn diese nicht miteinander verwandt sind und verschiedene Protokolle nutzen. Die Automationssoftware kann fast alles im IoT-Bereich miteinander verbinden, in dem du Flussdiagramme (Flows) erstellst und ausführst. Auf die Verfügbarkeit von Schnittstellen zwischen den Sensoren und Aktoren der Hersteller für das Zusammenspiel bist du nicht länger angewiesen.
Mit Node-RED als Plattform für das Internet of Things kommunizieren die einzelnen Geräte einheitlich miteinander. Sage dem Tool einfach, welche Datenquelle du anzapfen möchtest, was genau passieren soll und wohin du das Ergebnis weiterreichen möchtest.
Beispiel: Raumklima mit Node-RED steuern
Ein Flow in Node-RED kann beispielsweise:
1. die Feuchtigkeit des angebrachten Sensors im Badezimmer
abfragen
2. den entsprechenden Wert
(Feuchtigkeit im Badezimmer)
überprüfen
3. den Wandlüfter samt Heizung so lange anstellen, bis sich die Raumluft normalisiert hat.
In Node-RED genügen dazu ein paar Drag & Drop-Aktionen mit der Maus. Programmierkenntnisse zum Erzeugen der Flussdiagramme sind im Normalfall nicht notwendig.
Die ursprünglich von IBM entwickelte IoT-Verbindungsplattform steht inzwischen unter der freien Apache-2.0-Lizenz. Das erlaubt eine kostenfreie Nutzung im privaten und gewerblichen Bereich.
Node-RED basiert auf dem Konzept der Datenflussprogrammierung. Statt Programmierbefehle in einem Texteditor einzugeben, arbeitest du mit einem visuellen Flow-Editor als grafische Umgebung. Hier erzeugst du ein Netz bestehend aus kleineren Bausteinen mit vorgefertigtem Code, den namensgebenden „Nodes“ oder Knoten.
Für die meisten Anwendungsfälle, Hardware und Dienste kann man auf vorgefertigte Knotenmodule zurückgreifen. Eine Grundausstattung steht dir nach der Installation in der Node-Palette auf der linken Seite des Flow-Editors zur Verfügung. Möchtest du einen Knoten verwenden, zieht man diesen einfach mit der Maus aus der linken Spalte in den Arbeitsbereich. Weitere Nodes lassen sich aus dem Paketspeicher in der persönlichen Bibliothek sammeln und von dort einfügen. Die einsatzbereiten Nodes werden von einer wachsenden Nutzerbasis beigesteuert. Im Gegenzug hast du die Möglichkeit, eigene Module mit der Community zu teilen.
Durch Verbinden der Nodes entsteht eine Linie dem Prinzip von Eingabe, Verarbeitung und Ausgabe folgend. Der Datenfluss erfolgt von links nach rechts. Zwischen den Knoten werden Nachrichten zur Informationsübermittlung übertragen. Ein Knoten verfügt dazu über mindestens einen Eingang und einen oder mehrere Ausgänge. Mit den Inject-Knoten lassen sich eigene Daten erzeugen. Der Notification-Knoten bewirkt einen Nutzeralarm in Form einer Pop-up-Benachrichtigung.
Knoten können die empfangenen Informationen aufbereiten, verändern und konvertieren. Das Eigenschaftenfenster zeigt die individuellen Einstellmöglichkeiten eines Knotens an. Ein integriertes Hilfesystem informiert über die Funktionsweise der einzelnen Nodes. Versierte Nutzer verwenden den Function-Node zum Befüllen mit eigenem JavaScript-Code.
Das Node-RED-System unterscheidet zwischen Input Nodes, Output Nodes, Processing Nodes und Social Nodes:
Input Nodes wie „Catch In“, „Http In“ oder „Tcp In“ greifen Daten von Sensoren, Diensten und anderen externen Quellen ab. Die Informationen fließen in den Flow ein.
Output Nodes wie „Debug“, „Http Out“ oder „Mqtt Out“ senden Daten aus dem Flow heraus zu anderen Geräten, Diensten oder sozialen Netzwerken. Beispiel „File“-Node: Der Knoten speichert Ergebnisse aus dem Flow als Datei oder hängt Informationen an eine bestehende Datei an.
Processing Nodes kümmern sich um die Datenverarbeitung. Häufig genutzt werden die Knoten „Change“, „Switch“, „Trigger“ und „Html“. Über den Knoten „HTTP-Request“ lassen sich Elemente aus abgerufenen HTML-Dokumenten extrahieren.
Social Nodes unterstützen beim Senden und Empfangen von E-Mails und Nachrichten über Twitter.
Node-RED ist eine server- und browserbasierte Entwicklungsumgebung. Die Software setzt auf dem Node.js-Webserver auf und läuft plattformübergreifend als Serverdienst. Die Bedienung erfolgt im Browser. Die Serverkomponente startest du entweder lokal auf dem eigenen Rechner oder einem anderen PC im Netzwerk – oder über die Cloud. Einmal eingerichtet, öffne den Flow-Editor durch Eingabe der IP-Adresse mit angehängtem Port 1880 oder über http://localhost:1880/ im Browser.
Weitere Möglichkeiten zur Ausführung von Node-RED sind ein Docker-Container auf einem NAS-Speicher im lokalen Netzwerk oder eine Installation auf dem Raspberry Pi. Empfehlenswert ist eine Variante unabhängig vom eigenen Computer, damit der Arbeitsrechner für die Ausführung der Flows nicht ständig eingeschaltet sein muss.
Tipp: Die Node-RED-Entwickler stellen Skripte und Installationsanleitungen für gängige Plattformen auf ihrer Website bereit.
Die Ausführung auf dem Raspberry Pi für erste Versuche bietet Vorteile: Die Einrichtung ist dank vorbereiteter Images für den Raspberry Pi schnell erledigt. Dank stromsparendem Betrieb ist der Raspberry Pi auch für die energieeffiziente Ausführung von Node-RED-Flows eine gute Wahl.
Tipp: Prüfe nach der Einrichtung deiner Node-RED-Serverumgebung die Sicherheitseinstellungen und Zugriffsrechte auf das Backend.
Über die mit Node-RED erzeugten Flows lassen sich fast alle gebräuchlichen Heim- und Industrieautomatisierungslösungen ansteuern. Dazu genügt es, die API-Funktionen über einen entsprechenden Flow anzubinden – ein direkter Zugriff auf die Hardware wird nicht benötigt.
Das macht die Entwicklungsplattform für Maker, Bastler und anspruchsvolle Nutzer interessant, die eine angepasste IoT-Automatisierung realisieren möchten.
Als Add-on unterstützt Node-RED populäre Automatisierungsanwendungen wie Home-Assistant, FHEM, openHAB, Homebridge, ioBroker oder Homematic CCU3.
Eine Übersicht der verfügbaren Node-RED-Funktionen findet man online in der Projektbibliothek unter http://flows.nodered.org. Gib auf der Seite ins Suchfeld den Gerätenamen, Hersteller oder ein Stichwort ein, zu dem du fertige Flows und Nodes sehen willst.
Möchtest du zum Beispiel herausfinden, welche Automationsmöglichkeiten für eine AVM Fritzbox zur Verfügung stehen, tippe bei „Search library“ fritzbox ein, für Funktionen rund um Amazon Alexa schreibe alexa.
Smart Home Software – So vernetzt du verschiedene Hersteller-Systeme
Sobald mehrere Systeme in deinen Räumen eingesetzt werden sollen, etwa eines zur smarten Lichtsteuerung und eines für die intelligente Wärmeregulierung, wird die Smart Home Steuerung komplizierter.
Verschiedene Möglichkeiten zur Vernetzung unterschiedlicher Smart Home Systeme haben wir in unserem Ratgeber "Smart Home Software" genauer erklärt!
Das Dashboard ist ein Zusatzmodul für das Live-Monitoring. In der Dashboard-Oberfläche begutachte die Ergebnisse deiner visuellen Verdrahtung und überwache die Vorgänge der IoT-Konfiguration. Das Dashboard erreichst du im Browser durch Eingabe der IP-Adresse mit Zusatz „:1880/ui/“ oder über http://localhost:1880/ui/.