© saicle/Shutterstock.com
Mit Node-RED IoT-Prototypen erstellen

Viele Knoten führen zum Ziel


Node-RED ist ein visuelles Tool, mit dem sich IoT-Prototypen erstellen lassen, indem es Onlineservices, APIs und Hardwaregeräte miteinander grafisch verbindet. Dieser Artikel geht zunächst auf Node-RED ein, zeigt, wie sich ein einfacher „Flow“ anlegen lässt, Node-Module installiert und schließlich eigene Nodes geschrieben werden.

Das Open-Source-Tool Node-RED [1] steht unter der Apache-2.0-Lizenz und wird hauptsächlich von IBM Emerging Technologies entwickelt. Serverseitig basiert es auf Node.js, während der Browser die grafische Oberfläche darstellt. Mit Node-RED können in einem Flow verschiedene Eingabe-, Ausgabe- und Processing Nodes miteinander verbunden werden. Dadurch lassen sich Daten verarbeiten, verschiedene Dinge kontrollieren und steuern.

Die Node-RED-Oberfläche besteht aus drei Hauptbereichen, dem Node-Panel, dem Sheets-Panel und dem Info- und Debug-Panel. Das Node-Panel ist auf der linken Seite und enthält eine Liste der installierten und zur Verfügung stehenden Nodes. Diese werden in jeweilige Kategorien, wie zum Beispiel Eingabe- und Ausgabekategorien, gruppiert. Das Sheets-Panel in der Mittel definiert die so genannten Flows. Hier werden durch Drag and Drop die Nodes vom Node-Panel hineingezogen, miteinander verbunden und konfiguriert. Das Info- und Debug-Panel auf der rechten Seite ist in Tabs unterteilt. Der Infobereich zeigt für einen ausgewählten Node dessen Beschreibung an. Im Debug-Panel werden die Ausgaben der Debug Nodes oder interne Fehler aufgelistet.

Installation von Node-RED

Node-RED benötigt Node.js und den Package-Manager npm. Sie müssen auf dem System installiert sein. Eine ausführliche Installationsanleitung ist auf der Getting-Started-Seite von Node-RED [2] zu finden. Nach der Installation und dem Start ist Node-RED standardmäßig im Browser unter http://localhost:1880 erreichbar.

Auf der aktuellen Raspbian Version, bei der es sich um ein Debian-Betriebssystem für den Raspberry Pi handelt, ist Node-­RED bereits vorin­stalliert. Node-RED bietet auch eigene Nodes für den Raspberry Pi [3] an, um zum Beispiel auf die GPIO-Pins des Rasp­berry Pi zuzugreifen.

Flow anlegen

Node-RED Nodes verschicken untereinander Message-Objekte, bei denen es sich um JSON-Daten handelt, die einen payload-Parameter enthalten (siehe Screenshot im Debug-Panel).

Input-Nodes, die am weißen Quadrat an der rechten Seite zu erkennen sind, erzeugen Daten, die als Eingabe für eine oder mehrere Output-Nodes dienen. Bei Output-Nodes hingegen liegt das Quadrat auf der linken Seite, und sie verarbeiten die eingehenden Daten. Processing Nodes sind an den weißen Quadraten auf beiden Seiten zu erkennen. Sie lesen die Eingabedaten der Input-Nodes, verarbeiten sie (intern) und geben das Ergebnis an einen Output-Node oder weitere Processing Nodes weiter. Dadurch lassen sich zum Beispiel Daten in andere Formate umwandeln.

Bestimmte Dienste haben sowohl einen Input-Node als auch einen Output-Node. Der Twitter-Node kann zum Beispiel auf öffentliche und persönliche Tweets, Follower oder Direct Messages reagieren, die aus bestimmten Wörtern, IDs oder Tags bestehen. Die Payload des Message-Objekts beinhaltet den Text des Tweets. Umgekehrt lassen sich bestimmte Ereignisse wiederum an Twitter als Tweet schicken. Hierzu schreibt ein Input-Node den Text für den Tweet in die Payload.

Neben den verschiedenen Services, wie zum Beispiel Twitter, WebSocket, MQTT, HTTP oder TCP, bietet Node-RED mit dem Inject Node einen einfachen Node zum Erzeugen von Daten an. Er funktioniert wie ein Button und kann verschiedene Datentypen erzeugen, die sich konfigurieren lassen. Dies kann ein String, ein Boolean-Wert, eine Zahl oder ein Timestamp sein. Mit dem Debug Node existiert auf der anderen Seite eine einfache Möglichkeit, die eingehenden Message-Objekte im Debug-Panel anzuzeigen.

Flow-Set-up

Um einen ersten einfachen Flow anzulegen, reicht es aus, Inject Node und...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang