Node-Red ist eine Open-Source-Softwareplattform, die es ermöglicht, schnell und einfach integrierte Systeme zu erstellen, indem sie eine visuelle Programmierschnittstelle bereitstellt. Es wurde ursprünglich von IBM entwickelt und ist jetzt ein Projekt der OpenJS Foundation.
Node-Red ist in der Regel in der Internet der Dinge (IoT)-Entwicklung und im Bereich der Datenintegration sehr beliebt. Es kann auch als Low-Code-Plattform verwendet werden, um Geschäftsanwendungen schnell zu entwickeln. Es kann auf verschiedenen Plattformen, einschließlich Raspberry Pi, Windows, Mac und Linux, ausgeführt werden.
Node-Red basiert auf Node.js und bietet Zugriff auf eine Vielzahl von Bibliotheken und Tools, die es ermöglichen, Daten zu sammeln, zu verarbeiten und zu visualisieren. Es verfügt über eine umfangreiche Sammlung von vorkonfigurierten „Knoten“, die als Bausteine für Flussdiagramme verwendet werden können, um Funktionen wie Datenabfragen, Verarbeitung und Integration mit anderen Systemen zu ermöglichen. Mit Node-Red können Benutzer Flussdiagramme erstellen, um Daten zu sammeln, zu verarbeiten und zu verwenden, indem sie einfach Knoten zusammenfügen und verbinden.
Wie kann man Node-Red auf dem Raspberry installieren und nutzen?
Um Node-RED auf einem Raspberry Pi zu installieren und zu verwenden, können Sie die folgenden Schritte ausführen:
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist und aktualisieren Sie ihn, indem Sie den Befehl sudo apt-get update und sudo apt-get upgrade ausführen.
- Installieren Sie Node.js auf Ihrem Raspberry Pi, indem Sie den Befehl sudo apt-get install nodejs ausführen.
- Installieren Sie Node-Red auf Ihrem Raspberry Pi, indem Sie den Befehl sudo apt-get install -y node-red ausführen.
- Starten Sie Node-Red, indem Sie den Befehl node-red ausführen. Sie sollten nun in der Lage sein, auf die visuelle Programmierschnittstelle von Node-Red zuzugreifen, indem Sie im Webbrowser des Raspberry Pi auf http://localhost:1880 gehen.
- Um Node-Red beim Start des Raspberry Pi automatisch zu starten, fügen Sie den Befehl node-red-start zu Ihrer Datei /etc/rc.local hinzu – vor exit 0 am Ende der Datei.
Sobald Node-Red installiert und gestartet ist, können Sie damit beginnen, Flussdiagramme zu erstellen, indem Sie Knoten hinzufügen und verbinden. Es gibt eine Vielzahl von Knoten verfügbar, die für verschiedene Aufgaben wie Datenabfrage, Verarbeitung und Integration mit anderen Systemen verwendet werden können. Sie können auch benutzerdefinierte Knoten erstellen oder von der Community bereitgestellte Knoten installieren, um Ihre Funktionalität zu erweitern.
Wie kann man Node-Red zur Automatisierung verwenden?
Node-RED kann verwendet werden, um eine Vielzahl von Automatisierungsaufgaben durchzuführen. Hier sind einige Anwendungsszenarien und einfache Beispiele dafür, wie sich Node-Red mit wenigen – eigentlich immer gleichen bzw, ähnlichen Abläufen und Befehlssätzen produktiv verwenden lässt:
Integrierung von IoT-Geräten: Node-RED kann dazu verwendet werden, um IoT-Geräte miteinander zu verbinden und zu integrieren. Zum Beispiel lassen sich die Daten von Sensoren sammeln und an eine Cloud-Plattform senden oder um Steuerbefehle an IoT-Geräte zu senden. Das folgende Beispiel zeigt, wie Sie mit Node-RED ein Flussdiagramm erstellen können, um Daten von einem IoT-Gerät zu sammeln und an eine Cloud-Plattform zu senden:
- Fügen Sie einen „inject“-Knoten hinzu, um manuell eine Nachricht zu senden, um den Fluss zu starten.
- Fügen Sie einen „MQTT“-Knoten hinzu, um sich mit dem MQTT-Broker des IoT-Geräts zu verbinden.
- Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und dem Thema, das vom IoT-Gerät veröffentlicht wird.
- Fügen Sie einen „function“-Knoten hinzu, um die empfangenen Daten zu verarbeiten und zu formatieren. Im function-Knoten können Sie JavaScript-Code verwenden, um die Daten zu bearbeiten und zu transformieren, bevor sie weitergeleitet werden.
- Fügen Sie einen „HTTP request“-Knoten hinzu, um die Daten an die Cloud-Plattform zu senden. Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und dem Endpunkt, an den die Daten gesendet werden sollen.
- Fügen Sie einen „debug“-Knoten hinzu, um die Nachrichten zu überwachen, die durch den Fluss gesendet werden. Dies kann nützlich sein, um Fehler zu identifizieren und den Fortschritt des Flusses zu verfolgen.
Erstellung von Benachrichtigungen und Alarmen: Node-RED kann verwendet werden, um Benachrichtigungen oder Alarme zu erstellen, wenn bestimmte Bedingungen erfüllt sind. Beispielsweise kann Node-Red dazu genutzt werden, um eine E-Mail-Benachrichtigung zu senden wenn ein Sensor einen bestimmten Schwellenwert überschreitet. Das folgende Beispiel zeigt, wie Sie mit Node-RED ein Flussdiagramm erstellen könnten, um Benachrichtigungen oder Alarme zu erstellen, sofern bestimmte Bedingungen erfüllt sind:
- Fügen Sie einen „inject“-Knoten hinzu, um manuell eine Nachricht zu senden, um den Fluss zu starten.
- Fügen Sie einen „function“-Knoten hinzu, um die empfangene Nachricht zu verarbeiten und zu überprüfen, ob bestimmte Bedingungen erfüllt sind. Im function-Knoten können Sie JavaScript-Code verwenden, um die Nachricht zu überprüfen und zu entscheiden, ob eine Benachrichtigung oder ein Alarm gesendet werden soll.
- Wenn die Bedingungen erfüllt sind, fügen Sie einen „email“-Knoten hinzu, um eine E-Mail-Benachrichtigung zu senden. Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und der E-Mail-Adresse, an die die Benachrichtigung gesendet werden soll.
- Fügen Sie einen „debug“-Knoten hinzu, um die Nachrichten zu überwachen, die durch den Fluss gesendet werden. Dies kann nützlich sein, um Fehler zu identifizieren und den Fortschritt des Flusses zu verfolgen.
Datenverarbeitung und Datentransformation: Ein weiteres Einsatzgebiet für Node-RED ist es werden, Daten aus verschiedenen Quellen zu sammeln und zu verarbeiten. Es kann beispielsweise dazu genutzt werden, um Daten in verschiedenen Formaten zu transformieren – etwa CSV-Dateien in JSON. Hier ist ein Beispiel dafür, wie Sie mit Node-RED ein Flussdiagramm erstellen könnten, um Daten aus verschiedenen Quellen zu sammeln und zu verarbeiten:
- Fügen Sie einen „inject“-Knoten hinzu, um manuell eine Nachricht zu senden, um den Fluss zu starten.
- Fügen Sie einen „HTTP request“-Knoten hinzu, um Daten von einer Web-API abzurufen. Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und dem Endpunkt, von dem die Daten abgerufen werden sollen.
- Fügen Sie einen „function“-Knoten hinzu, um die empfangenen Daten zu verarbeiten und zu formatieren. Im function-Knoten können Sie JavaScript-Code verwenden, um die Daten zu bearbeiten und zu transformieren, bevor sie weitergeleitet werden.
- Fügen Sie einen „JSON“-Knoten hinzu, um die Daten in das JSON-Format zu konvertieren.
- Fügen Sie einen „file“-Knoten hinzu, um die konvertierten Daten in eine Datei zu schreiben. Konfigurieren Sie den Knoten mit dem entsprechenden Dateinamen und Pfad.
- Fügen Sie einen „debug“-Knoten hinzu, um die Nachrichten zu überwachen, die durch den Fluss gesendet werden. Dies kann nützlich sein, um Fehler zu identifizieren und den Fortschritt des Flusses zu verfolgen.
Integration von Anwendungen und Diensten: Node-RED kann darüber hinaus dazu verwendet werden, um verschiedene Anwendungen und Dienste miteinander zu integrieren. So lassen sich beispielsweise Daten aus einer Cloud-Plattform in eine CRM-Software zu übertragen oder Benachrichtigungen von einer Social-Media-Plattform an eine Smartphone App senden. Das folgende Beispiel zeigt, wie Sie mit Node-RED ein Flussdiagramm erstellen könnten, um verschiedene Anwendungen und Dienste miteinander zu integrieren:
- Fügen Sie einen „inject“-Knoten hinzu, um manuell eine Nachricht zu senden, um den Fluss zu starten.
- Fügen Sie einen „function“-Knoten hinzu, um die empfangene Nachricht zu verarbeiten und zu formatieren. Im function-Knoten können Sie JavaScript-Code verwenden, um die Nachricht zu bearbeiten und zu transformieren, bevor sie weitergeleitet wird.
- Fügen Sie einen „HTTP request“-Knoten hinzu, um die formatierten Daten an eine andere Anwendung oder einen Dienst zu senden. Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und dem Endpunkt, an den die Daten gesendet werden sollen.
- Fügen Sie einen „debug“-Knoten hinzu, um die Nachrichten zu überwachen, die durch den Fluss gesendet werden. Dies kann nützlich sein, um Fehler zu identifizieren und den Fortschritt des Flusses zu verfolgen.
Erstellung von Benutzeroberflächen: Last but not least kann Node-RED genutzt werden, wenn es darum geht einfache Benutzeroberflächen zu erstellen, um Daten anzuzeigen oder um Benutzereingaben zu sammeln. Diese Benutzeroberflächen können in Form von Webseiten oder mobilen Apps bereitgestellt werden. Das folgende Beispiel verdeutlicht, wie man mit Node-RED ein Flussdiagramm erstellen kann, das eine einfache Benutzeroberfläche zur Anzeige von Daten erzeugt:
- Fügen Sie einen „inject“-Knoten hinzu, um manuell eine Nachricht zu senden, um den Fluss zu starten.
- Fügen Sie einen „HTTP request“-Knoten hinzu, um Daten von einer Web-API abzurufen. Konfigurieren Sie den Knoten mit den entsprechenden Verbindungsdetails und dem Endpunkt, von dem die Daten abgerufen werden sollen.
- Fügen Sie einen „template“-Knoten hinzu, um die empfangenen Daten in eine HTML-Vorlage einzufügen. Konfigurieren Sie den Knoten mit dem HTML-Code, der die Daten anzeigen soll.
- Fügen Sie einen „http response“-Knoten hinzu, um die generierte HTML-Seite an den Benutzer zu senden.
- Fügen Sie einen „debug“-Knoten hinzu, um die Nachrichten zu überwachen, die durch den Fluss gesendet werden. Dies kann nützlich sein, um Fehler zu identifizieren und den Fortschritt des Flusses zu verfolgen.
Dies alles sind nur einzelne Beispiel, die zeigen sollen, wie einfach Node-RED mit der Kenntnis weniger Befehle verwendet werden kann.
Es lassen sich sehr einfach auch andere Knoten hinzufügen, um die Funktionalitäten zu erweitern bzw. zu verbessern. Die Vielzahl an Möglichkeiten, wie man Flussdiagramme erstellen kann, ist letztlich nur vom spezifischen Anwendungsbedarf abhängig und die Verfügbarkeit von Knoten eingeschränkt.
Welche NodeRed Communities gibt im Internet und wo bekommt man weitere Beispiele und Hilfe?
Es gibt viele Node-Red-Communities im Internet, in denen Sie Beispiele und Hilfe finden können. Hier sind einige der wichtigsten Ressourcen:
- Die offizielle Node-Red-Website: Hier finden Sie Informationen zu Node-RED, einschließlich Dokumentation, Tutorials und Beispielen: https://nodered.org/
- Das Node-Red-Forum: Hier können Sie Fragen stellen und Antworten von der Node-RED-Community erhalten: https://discourse.nodered.org/
- Das Node-Red-GitHub-Repository: Hier finden Sie den Quellcode von Node-RED und können möglicherweise Hilfe beim Debuggen von Problemen finden: https://github.com/node-red/node-red
- Das Node-Red-Slack-Workspace: Hier können Sie direkt mit der Node-RED-Community kommunizieren und Unterstützung erhalten: https://nodered.org/slack/
- Das Node-Red-Cookbook: Hier finden Sie eine Sammlung von Beispielen und Tutorials, die von der Node-RED-Community erstellt wurden: https://cookbook.nodered.org/
Wer über die kostenlosen Ressourcen hinaus, sich intensiver in Node-Red einarbeiten will, dem sei auch das äußerst verständlich geschriebene Buch von Udo Brandes: Node-RED: Das umfassende Handbuch. Visuelles Programmieren leicht gemacht sowie im speziellen Raspberry Pi Kontext das englischsprachige Buch von Dogan Ibrahim: Programming with Node-RED: Design IoT Projects with Raspberry Pi, Arduino and ESP32 ans Herz gelegt.
Welche Alternativen gibt es zu Node-Red?
Vorweg: Node-Red ist eine der Besten Möglichkeiten, die es gibt, sich schnell in das Thema Automatisierung einzuarbeiten. Hinzu kommt, dass die Anforderungen an die Hardware (u.a. Raspberry Pi) sehr gering sind und die Software kostenlos installiert werden kann.
Wem Node-Red – aus welchem Grund auch immer nicht ausreicht – für den gibt es auch viele verschiedene Alternativen zu Node-RED, abhängig von den spezifischen Anforderungen und Funktionen, die man hat.
Einige der bekanntesten Alternativen zu Node-RED sind:
- Zapier: Eine Plattform zur Integration von Anwendungen und Diensten, die eine Vielzahl von Vorlagen und integrierten Tools bietet. Zapier ermöglicht es Benutzern, Flussdiagramme zu erstellen, um Daten von einer Anwendung oder einem Dienst an einen anderen zu senden.
- IFTTT (If This Then That): Eine Plattform zur Integration von Anwendungen und Diensten, die es Benutzern ermöglicht, Regeln zu erstellen, um Daten zwischen verschiedenen Quellen und Zielen zu übertragen. IFTTT bietet eine Vielzahl von Vorlagen und integrierten Tools, die es Benutzern ermöglichen, Flussdiagramme zu erstellen, ohne Code schreiben zu müssen.
- Microsoft Power Automate: Eine Plattform zur Automatisierung von Geschäftsprozessen, die von Microsoft entwickelt wurde. Power Automate bietet eine visuelle Drag-and-Drop-Oberfläche und unterstützt die Integration mit vielen verschiedenen Anwendungen und Diensten.
- Open Integration Hub: Eine Plattform zur Integration von Anwendungen und Diensten, die es Benutzern ermöglicht, Flussdiagramme zu erstellen, um Daten von einer Anwendung oder einem Dienst an einen anderen zu senden. Der Open Integration Hub bietet eine Vielzahl von integrierten Tools und Vorlagen, die es Benutzern ermöglichen, Flussdiagramme ohne Code schreiben zu erstellen.
Dies ist nur eine kleine Auswahl der verfügbaren Alternativen zu Node-RED und ob sie jeweils eine bessere Lösung sind, ist abhängig davon, welche spezifischen Anforderungen und Funktionen im jeweiligen Einsatz erforderlich sind. Je nachdem könnten andere Plattformen oder Tools besser geeignet sein. Es lohnt sich auf jeden Fall, verschiedene Optionen zu vergleichen und zu entscheiden, welche am besten zu Ihren Bedürfnissen passen.