Hilfe

Node-RED Nodes einrichten

Installation

Installiere als erstes Remote-RED in Node-RED. Verwende hierzu „Palette verwalten“ innerhalb des Node-RED Editors und installiere das Paket

node-red-contrib-remote

Access-Node

Die Access-Node ermöglicht Dir von der App lokal oder auch remote aus der Ferne auf eine Webseite zuzugreifen. In der Regel ist dies Dein Dashboard oder eine Seite des UI-Builders.

Erstelle eine Node vom Typ „remote access“ für jede Seite, auf die Du zugreifen möchtest. Neben dem Namen enthält diese Node lediglich eine Config-Node. Die Konfiguration ist in die Config-Node ausgelagert, da diese Einstellungen auch für weitere Funktionen wie Push Notifications genutzt werden.

Config-Node

Pro Access-Node erstellt Du eine entsprechende Config-Node. In dieser wird hinterlegt, mit welchem Host, Port und URL die Verbindung stattfindet. Die Vorgabewerte zeigen als Beispiel das Dashboard. Es ist aber auch möglich weitere Seiten aus dem lokalen Netzwerk zu konfigurieren, insofern der Server auf dem Node-RED installiert ist darauf zugreifen kann.

  • Name: Mit diesem Titel wird die Seite später in der App angezeigt.
  • Protokoll: Das verwendete Protokoll des Webservers. Bei Node-RED ist dies normalerweise http, über die settings.js kann dies jedoch auf https umgestellt werden.
  • Host: Die lokale IP des Host, dessen Webseite freigegeben werden soll. „localhost“ verwendet den Node-RED Server auf dem die Access-Node läuft.
  • Port: Der Port der weitergeleitet wird. Bei Node-RED ist dies normalerweise 1880, bei sonstigen Webseiten meist 80.
  • Basis URL: Die initial aufzurufende Seite.

Den Standort des Servers kannst Du nur einmalig bearbeiten. Hier gibst Du an, in welcher Ecke der Welt der Server stehen soll, über den Deine Webseite geoutet wird. Für eine möglichst schnelle Verbindung wähle den Ort, der am nächsten bei Dir ist.

Sobald Du diese Einstellungen erstellt hast und die iOS oder Android App installiert hast, kannst Du über die Schaltfläche „Remote-RED App verbinden“ eine App verbinden. Hierzu mehr im Abschnitt App verbinden.

Notification-Node

Über diese Node kannst Du eine Push Notification an die Geräte versenden, die mit der gewählten Config-Node verbunden sind. Wähle hierzu eine Config-Node, die Du auch z.B. bereits in einer Access-Node verwendest. Du kannst in mehreren Notification-Nodes die selbe Config-Node verwenden.

Konfiguriere den Titel und den Text der Benachrichtigung. Die Vorgabewerte gehen davon aus, das im Payload der eingehenden Notification die Strings „title“ und „body“ enthalten sind. Du kannst aber auch feste Texte eingeben oder Flow- bzw. Global-Variablen verwenden.

Immer sobald eine Message bei der Notification-Node ankommt, wird eine Notification an Deine Geräte versendet.

Question-Node

Über diese Node kannst Du eine Frage per Push Notification an die Geräte versenden, die mit der gewählten Config-Node verbunden sind. Wähle hierzu eine Config-Node, die Du bereits in einer Access-Node verwendest. Du kannst in mehreren Question-Nodes die selbe Config-Node verwenden.

Wichtig ist, das die Confg-Node auf Deinen lokalen Node-RED Rechner verweist und eine Access-Node damit aktiv ist. Die Basis URL ist dabei irrelevant.

Konfiguriere den Titel und den Text der Benachrichtigung. Die Vorgabewerte gehen davon aus, das im Payload der eingehenden Nachricht die Strings “title” und “body” enthalten sind. Du kannst aber auch feste Texte eingeben oder Flow- bzw. Global-Variablen verwenden.

Du kannst bis zu drei Antworten vorgeben. Der Text der Antworten kannst Du direkt als String eingeben oder aus der eingehenden Nachricht übernehmen. Ist der Text leer, wird die Antwort nicht angezeigt. Über den Wert kannst Du angeben, was die Node per msg.payload ausgibt, wenn Du diese Antwort wählst.

Immer sobald eine Message bei der Question-Node ankommt, wird eine Notification an Deine Geräte versendet.

App installieren und verbinden

App installieren

Die Apps kannst Du aus dem Apple AppStore bzw. aus dem Google PlayStore installieren. Die App wird Dich nach dem ersten Start um das Recht bitten, Dir Push Notifications zu senden. Erlaube dies, insofern Du die Notification Funktion nutzen möchtest.

Instanzen

Innerhalb der App wird immer wieder von einer Node-RED Instanz gesprochen. Eine Instanz ist die Verbindung mit einer Config-Node aus Node-RED. Innerhalb der App kannst Du mehrere Instanzen, also lokale Seiten, hinzufügen.

Solange die App nicht mit mindestens einer Config-Node verbunden ist, kannst Du mit Ihr nicht viel anfangen.

App verbinden

Durch das Verbinden werden Zertifikate zum Zugriff auf Deine lokale Seite an die App übertragen. Ebenfalls wird die Konfiguration übertragen. Für nachträgliche Änderungen an diesen Feldern muss die Instanz in der App gelöscht und neu verbunden werden.

Öffne in Node-RED die Config-Node, die Du verbinden möchtest. Drücke die Schaltfläche „Remote-RED App verbinden“. Die Config-Node nimmt nun Verbindung mit einem der Remote-RED Servern auf und stellt kurz darauf einen QR-Code dar.

Verwende innerhalb der App die Funktion „Node-RED Instanz verbinden“ und scanne den QR-Code. Die App sollte nun verbunden sein. Um weitere Apps (z.B. auf einem anderen Handy) zu verbinden, drücke den Button erneut und generiere dadurch einen weiteren QR-Code.

Ganz wichtig ist, dass Du die Config-Node mit „Hinzufügen“ bzw. „Aktualisieren“ verlässt und danach die Änderungen mit „deploy“ speicherst.

Erweiterte Funktionen

Geofencing

Über Geofencing ist es möglich Node-RED zu informieren, wenn Du definierte Gebiete verlässt oder betrittst. Öffne hierzu die Optionen innerhalb der Remote-RED App und gehe hier auf „Geofences verwalten“. Eine Liste bestehender Geofences wird ggf. angezeigt, die Du hier bearbeiten kannst. Verwende „Geofence hinzufügen“ um einen neuen anzulegen.

Der Name des Geofence wird später in Node-RED ausgegeben. Ein Geofence in Remote-RED ist immer kreisförmig um eine Koordinate, dessen Radius konfiguriert werden kann. Um die Koordinate festzulegen, tippe auf die Karte. Das Betreten und Verlassen des Geofence wird dann an die gewählte Instanz gesendet.

Innerhalb von Node-RED hat die Remote-RED Access-Node ein entsprechenden „geofence output“ über den die Änderungen ausgegeben werden.

Achtung bei Android: Eine andere App wie z.B. Maps muss aktiv den Standort aktualisieren, damit ein Geofence ausgelöst wird.

iOS Kurzbefehle

Über einen Kurzbefehl können Node-RED Aktionen direkt vom iOS Homescreen aus oder per Siri Sprachbefehl ausgeführt werden. Hierzu musst Du in der Apple App „Kurzbefehle“ entsprechende Kurzbefehle erstellen. Wähle bei einer Aktion unterhalb von „Apps“ Remote-RED aus. Wähle danach „Aktion ausführen“. Die ersten zwei Felder (Aktion und Wert) werden einfach als Text an die gewählte Node-RED Instanz übergeben und können dort z.B. per Switch Node ausgewertet werden.

Innerhalb von Node-RED hat die Remote-RED Access-Node ein entsprechenden „action output“ über den die Aktionen ausgegeben werden.

Ein Beispiel: Ich erstelle zwei Kurzbefehle um ein Licht per MQTT zu schalten. Hierzu gebe ich beim Kurzbefehl „Licht an“ die Aktion „LIGHT“ und den Wert „ON“ an. Beim zweiten Kurzbefehl Namens „Licht aus“ die Aktion „LIGHT“ und den Wert „OFF“. In Node-RED hängt hinter dem „action output“ eine Switch Node, die den JSON Parameter „action“ auswertet und alles zu „LIGHT“ an eine Function Node übergibt. Diese ändert den Payload der Message so, dass nur noch der JSON Parameter „value“ (ON/OFF) als Payload enthalten ist und gibt den an das entsprechende MQTT Out weiter.

Als zusätzliche Funktion kannst Du über „Ermittle Context“ Node-RED Variablen abfragen und innerhalb Deiner Shortcuts verwenden.

Android Widget

Ein Android Widget bietet etwa die gleichen Funktionen wie die iOS Shortcuts. Ein oder mehrere Widgets können dem Homescreen hinzugefügt werden. Du kannst die Größe recht frei selbst bestimmen. Über das kleine Zahnrad unten rechts kommst Du in die Konfiguration des Widgets.

Füge eine oder mehrere Aktionen zu dem Widget hinzu. Durch das antippen einer Aktion öffnest Du den Bearbeitungsdialog. Gib der Aktion einen Namen, der dann im Widget angezeigt werden soll. Die beiden Felder Aktion und Wert werden einfach als Text an die gewählte Node-RED Instanz übergeben und können dort z.B. per Switch Node ausgewertet werden. Ein Beispiel dazu findest Du in etwas weiter oben bei „iOS Kurzbefehle“. Wähle die Instanz zu der die Aktion gesendet wird. Über Stil kannst Du dem ganzen etwas Farbe geben und per „Neue Zeile..“ kannst Du bestimmen, wie viele Aktionen nebeneinander im Widget angezeigt werden.

Fehlerbehebung

Network Error innerhalb von Node-RED

Der Rechner auf dem die Remote-RED Access-Node innerhalb Node-RED installiert ist braucht natürlich Internetzugriff. Wenn beim Verbinden einer App ein ‚Network Error‘ angezeigt wird, erreicht Dein Node-RED Rechner höchst wahrscheinlich meine Server nicht. Wenn Du eine Firewall verwendest, müssen folgende Pfade erlaubt sein:

Server Standort ‚Amerika (USA)‘:

  • Ausgehend Port 443 zu contact-us.remote-red.com / 5.161.113.250 / 2a01:4ff:f0:c185::1 für das Hinzufügen neuer Instanzen
  • Ausgehend Port 443 zu api-nodered03.remote-red.com / 5.161.113.250 / 2a01:4ff:f0:c185::1 für die API Kommunikation
  • Ausgehend Port 22 zu proxy-nodered03.remote-red.com / 5.161.113.250 / 2a01:4ff:f0:c185::1 für den SSH Tunnel

Server Standort ‚Europa (Deutschland)‘:

  • Ausgehend Port 443 zu contact-de.remote-red.com / 49.13.208.138 & 49.12.191.168 / 2a01:4f8:c012:caae::1 & 2a01:4f8:c013:5d65::1 für das Hinzufügen neuer Instanzen
  • Ausgehend Port 443 zu api-nodered02.remote-red.com / 49.13.208.138 / 2a01:4f8:c012:caae::1 für die API Kommunikation
  • Ausgehend Port 443 zu api-nodered04.remote-red.com / 49.12.191.168 / 2a01:4f8:c013:5d65::1 für die API Kommunikation
  • Ausgehend Port 22 zu proxy-nodered02.remote-red.com / 49.13.208.138 / 2a01:4f8:c012:caae::1 für den SSH Tunnel
  • Ausgehend Port 22 zu proxy-nodered04.remote-red.com / 49.12.191.168 / 2a01:4f8:c013:5d65::1 für den SSH Tunnel

Server Standort ‚Asia (Singapur)‘:

  • Ausgehend Port 443 zu contact-sg.remote-red.com / 194.233.74.204 / 2407:3640:3009:6554::1 für das Hinzufügen neuer Instanzen
  • Ausgehend Port 443 zu api-nodered05.remote-red.com / 194.233.74.204 / 2407:3640:3009:6554::1 für die API Kommunikation
  • Ausgehend Port 22 zu proxy-nodered05.remote-red.com / 194.233.74.204 / 2407:3640:3009:6554::1 für den SSH Tunnel

DNS
Um die Hostnamen meiner Server aufzulösen wird natürlich DNS benötigt. Wenn Deine Firewall ausgehenden Traffic einschränkt, musst Du nahezu alle ausgehenden Ports (53, 853 und alle höher als 1023) zu Deinem DNS Server öffnen.