Node-RED – Node Kategorien

Werbung
Smarthome-Training-openHAB2-Kurs-de

Node-RED – Node Kategorien

Im heutigen Beitrag wollen wir uns mit den Node-Red Node Kategorien beschäftigen. Ihr erhaltet einen Überblick über die wichtigsten Node Kategorien und deren Hauptfunktionen. Falls ihr noch nicht wisst was Node-RED überhaupt ist, empfehle ich den Beitrag Was ist Node-RED. Die Installation auf einem Node-RED auf Raspberry Pi installieren oder Node red in Docker installieren geht auch sehr leicht von der Hand. Als Hardware nutzt ihr entweder einen Windows Rechner mit Docker oder einen Raspberry Pi

Node-RED – Node Kategorien – Übersicht

Die Palette auf der linken Seite zeigt Gruppen (1), in welchen die Kategorien enthalten sind. Dabei sind die Kategorien in den einzelnen Gruppen verteilt. Neben den Standardgruppen (1) sind weitere Gruppen (2) zu sehen, die ihr z.B. bei der Installation zusätzlicher Node über den Palette Manager erhaltet. Bei mir sind dies z.B. Punkte aus der Hausautomatisierung und Social Media wie Telegram.

node-red-node-kategorien-palette
Node-RED palette

Welche Node-RED Kategorien gibt es eigentlich?

Dies Übersicht der Node Kategorien soll helfen, den richtigen Einstieg für eure Node-RED Automatisierungen zu finden.

KategorieFunktion
inputEingabewerte zur weiteren Vearbeitung z.B. empfangen einer Nachricht, Status einer Lampe, Zeitstempel, MQTT Nachricht usw.
outputAusgabewerte zur weiteren Verarbeitung z.B. senden einer Nachricht MQTT, Mail usw.
functionFunktionale Nodes, die eine Logik ausführen können. Dies kann z.B. eine einfache Switch Node sein bei x linker Fluss, bei y rechter Fluss.
socialNutzung von sozialen Kommunkationswegen wie Twitter, Mail, Telegram usw.
storageDateiaktionen aus ausführen z.B. Ergebnis in eine Datei/Datenbank schreiben, aus Dateien/Datenbank lesen.
analysisAnalyse von Daten
advancedErweiterte Funktionen, zum Beispiel exec node für das Ausführen von Befehlen auf dem PI (starten von Programmen)
miscMögliche weitere diverse Kategorien wie z.B. PI nodes z.B. zum ansteuern der GPIO pins

Im Nachfolgenden gehen wir noch etwas detailliertes auf die einzelnen Nodes ein. Dies ist nur ein Auszug der für mich wichtigsten und gängigsten Standardnodes. Es gibt hunderte weitere nodes. Denn jeder kann im Grunde eigene nodes entwickeln und so eine Anbindung an z.B. openHAB 2, Wetterdaten, deconz, Astrofunktionen realisieren.

Node Kategorie – input

Die input nodes werden verwendet um Werte in einen Fluss einzusteuern. Dies können ganz einfache Dinge wie eine Zeichenkette, ein Zeitstempel oder auch komplexere Strukturen wie JSON oder MQTT Nachrichten sein. 

Beispiel input node
Über eine einfach HTTP Anfrage lösen wir ein Ereignis aus. 
NodeFunktion
node-red-inject-nodeDie inject node wird verwendet um Werte in einen Fluss zu geben. Dies kann z.B. ein Zeitstempel oder eine Zeichenkette sein. Über die inject node lässt sich z.B. auc komfortabel testen. Wenn ihr einen bestimmten Wert als Auslöser benötigt, könnt ihr diese auslösenden Wert direkt eingeben.
Die link in ist eine besondere node, die mit der link out node verbunden wird. So lassen sich bei komplexen Flüssen Verknüpfungen erstellen. Dies funktioniert auch Fluss übergreifend.
Die mqtt in node werden zur Kommunikation von mqtt Nachrichten. So kann ein bestimmte mqtt Nachricht abgegriffen werden und hierauf reagiert werden. Wenn ihr z.B. eine mqtt Nachricht bei einer Bewegung veröffentlicht, könnt ihr auf diese Bewegung reagieren.
node-red-http-in-nodeÜber die http in node können http Anfragen verarbeitet werden. Node-RED fungiert als einfacher Webserver und greift die Wert einfach oder im JSON Format ab. Durch JSON lassen sich so strukturiert werde übergeben.

Node Kategorie – output

Die output nodes sind im Grunde das Gegenteil der input nodes. Hier geben wir Wert aus unserem Node-RED weiter, um so z.B. Aktionen in z.B. unserem Smart Home oder anderen Systemen auszuführen.

Beispiel output node
Über einen Bewegungsmelder haben wir per MQTT eine Nachricht empfangen (mqtt in). Nun reagieren wir auf diese Nachricht mit einer MQTT Nachricht, die ein Licht einschaltet.
output nodes
NodeFunktion
node-red-debug-nodeDie debug node ist für mich eine der wichtigsten output nodes. Über die debug node könnt ihr euch nämlich die Werte aus anderen nodes ausgeben lassen. So kann man sich den Inhalt wie einen JSON String, http request usw. einfach anzeigen lassen.
node-red-link-out-nodeDie link out node das Gegenstück für die link in node,. Hierrüber lassen sich Verbindungen über Flows hinweg ermöglichen. Dies hilft der Strukturierung enorm.
node-red-mqtt-out-nodeDie mqtt out node verwendet ihr um MQTT Narchrichten auf über den MQTT Broker zu veröffentlichen. So besteht die Möglichkeit jede beliebige Aktion wie Licht an, Rollo rauf über MQTT auszulösen.
node-red-http-response-nodeDie http response node ist die output node für http Anfragen, die über http in an den Webserver gesendet wurden. Über diese lassen sich Antworten zu den Anfragen generieren.

Node Kategorie – function

Als nächsten wichtige Kategorie gibt es function nodes. Wie der Name schon vermuten lässt, werden beliebige Funktionen ausgeführt.

Beispiel function node
Nehmen wir wieder unser Beispiel eine MQTT Nachricht. Anstatt z.B. für jede Bewegung auf dem Bewegungsmelder eine einzelne MQTT Nachricht über einen separaten Flow zu schicken, nutzen wir switch node, um die verschiedenen Bewegungsmelder in einem Flow zu steuern.

In der folgenden Übersicht einige aus meiner Sicht grundlegende Funktionen, die jeder kennen und verstehen sollte.

function nodes
NodeFunktion
node-red-function-swich-nodeMit der switch node lässt sich der Flow in 1-n weitere logische Verzweigungen unterteilen. Hierbei wir der Eingangswert verarbeitet. Kommt z.B. der Zustand (an/aus) einer Lampe an, könnt ihr die weitere Verarbeitung je nach Wert steuern. Bei an geht wird dem Ausgang 1 und aus dem Ausgang 2 gefolgt.
node-red-function-range-nodeDie range node ist eine Funktion um Werte zu skalieren. Bekommt ihr z.B. Werte als Dezimalzahl 0,1 und wollt diese mit 10 multiplizieren, lässt sich dies über eine range node für alle eingehenden Werte realisieren. Der Vorteil hier, es ist einfach umstellbar und die Skalierung beliebig.
node-red-function-change-nodeDie change node wird genutzt um Werte zu ersetzen. So lässt sich z.B. bei einem einkommenden Wert dieser einfach ersetzen oder über eine Regular Expression oder JSONata dynamisch Werte auslesen und weiterverarbeiten.
node-red-function-delay-nodeDie delay node ist im Grunde selbsterklärend. Hierüber können Verzögerungen in den Flow eingebunden werden. Dies ist sinnvoll, wenn es bei Schaltungen im Smarthome eine zeitliche Abhängigkeit geben soll.

Node Kategorie – social

Die social Kategorie beinhaltet alle möglichen Nodes zu Einbindung von Kommunikationsmedien wie z.B. Twitter, Telegram, Mail usw. Eine Übersicht spare ich mir, denn jeder hat seine bevorzugte Methode.

Beispiel social node
Ich nutze z.B. Telegram um mir Nachrichten aus meinem Smarthome zu schicken. So werde ich über Ereignisse wie Fenster geöffnet bei Abwesenheit automatisch informiert.

Node Kategorie – storage

Über nodes in der Kategorie storage lassen sich werte Speichern. Dies kann in einer Datei (einfache Textdatei) aber auch in eine Datenbank sein.

Es gibt noch weiter Kategorien, aber für mich reichen die oberen um diverse Logiken im Smarthome über Node-RED zu realisieren.

Tags:

Ich bin Thomas. Ich bin hauptberuflich SAP Berater und Softwareentwickler. Das Thema Smart Home hat mich nach der Sanierung unseres 60er Jahre Hauses gepackt. Es wurde alles in Eingenleistung geplant und die Buskabel verlegt. Ich betreibe seit einiger Zeit einen openHAB 2 Praxis Blog. Hier schreibe ich Schritt für Schritt Anleitungen (Tutorials) zur Umsetzung des eigenen Smart Home. Weiterhin engagiere ich mich in unserem MyFreeLife e.V. und helfe bei der Erstellung barrierefreier Smart Homes. Nun wird es Zeit mein breites Wissen im Bereich Smart Home mit Euch zu teilen.

Was meint ihr dazu?

      Hinterlasse einen Kommentar