Hilfe
Alles, was Du für die Einrichtung von Remote-RED brauchst: vom Node-RED Node bis zur Fehlerbehebung.
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-Benachrichtigungen genutzt werden.
Config-Node
Pro Access-Node erstellst Du eine entsprechende Config-Node. In dieser wird hinterlegt, mit welchem Host, Port und welcher 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, sofern 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 Hosts, 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 festlegen. Hier gibst Du an, in welcher Ecke der Welt der Server stehen soll, über den Deine Webseite geroutet wird. Für eine möglichst schnelle Verbindung wähle den Ort, der am nächsten bei Dir liegt.
Sobald Du diese Einstellungen erstellt und die iOS- oder Android-App installiert hast, kannst Du über die Schaltfläche „Remote-RED App verbinden" eine App verbinden. Mehr dazu im Abschnitt „App installieren und verbinden".
Notification-Node
Über diese Node kannst Du eine Push-Benachrichtigung an die Geräte versenden, die mit der gewählten Config-Node verbunden sind. Wähle hierzu eine Config-Node, die Du zum Beispiel bereits in einer Access-Node verwendest. Du kannst in mehreren Notification-Nodes dieselbe Config-Node nutzen.
Konfiguriere den Titel und den Text der Benachrichtigung. Die Vorgabewerte gehen davon aus, dass 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.
Sobald eine Message bei der Notification-Node ankommt, wird eine Benachrichtigung an Deine Geräte versendet.
Question-Node
Über diese Node kannst Du eine Frage per Push-Benachrichtigung 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 dieselbe Config-Node nutzen.
Wichtig ist, dass die Config-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, dass 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. Den 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 festlegen, was die Node per msg.payload ausgibt, wenn diese Antwort gewählt wird.
Sobald eine Message bei der Question-Node ankommt, wird eine Benachrichtigung an Deine Geräte versendet.
App installieren und verbinden
App installieren
Die Apps kannst Du aus dem Apple App Store bzw. aus dem Google Play Store installieren. Die App wird Dich nach dem ersten Start um das Recht bitten, Dir Push-Benachrichtigungen zu senden. Erlaube dies, sofern 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.
Ö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-Server 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: Verlasse die Config-Node mit „Hinzufügen" bzw. „Aktualisieren" und speichere die Änderungen danach mit „Deploy".
Wenn Du keinen QR-Code scannen kannst, kannst Du auch den Link unterhalb des QR-Codes verwenden. Öffne diesen auf Deinem Handy, wodurch die App geöffnet und die Instanz verbunden wird.
Konfiguration einer Instanz ändern
Sind Änderungen notwendig, kannst Du diese innerhalb der Config-Node in Node-RED durchführen. Nach den Änderungen musst Du diese durch einen Redeploy aktivieren. Danach kannst Du in der App die Instanz aktualisieren, indem Du innerhalb der App die Liste der Instanzen nach unten ziehst.
Instanz aus der App löschen
In iOS/iPadOS löschst Du eine Instanz durch Wischen von rechts nach links. In Android drückst Du lange auf den Namen der Instanz.
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 auf „Geofences verwalten". Eine Liste bestehender Geofences wird gegebenenfalls 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 einen 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, 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 einen entsprechenden „action output", über den die Aktionen ausgegeben werden.
Ein Beispiel: Ich erstelle zwei Kurzbefehle, um ein Licht per MQTT zu schalten. Beim Kurzbefehl „Licht an" gebe ich die Aktion „LIGHT" und den Wert „ON" an, beim zweiten Kurzbefehl „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 mit „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 ihn an den entsprechenden MQTT-Out weiter.
Als zusätzliche Funktion kannst Du über „Ermittle Context" Node-RED-Variablen abfragen und innerhalb Deiner Kurzbefehle verwenden.
Android Widget
Ein Android-Widget bietet etwa die gleichen Funktionen wie die iOS-Kurzbefehle. Ein oder mehrere Widgets können dem Homescreen hinzugefügt werden, die Größe kannst Du recht frei selbst bestimmen. Über das kleine Zahnrad unten rechts kommst Du in die Konfiguration des Widgets.
Füge eine oder mehrere Aktionen zum Widget hinzu. Durch Antippen einer Aktion öffnest Du den Bearbeitungsdialog. Gib der Aktion einen Namen, der dann im Widget angezeigt wird. 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 weiter oben bei „iOS Kurzbefehle". Wähle die Instanz, an die die Aktion gesendet wird. Über „Stil" kannst Du dem Ganzen etwas Farbe geben, und per „Neue Zeile" bestimmst Du, 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öchstwahrscheinlich unsere Server nicht. Wenn Du eine Firewall verwendest, müssen die Adressen aus der Tabelle unten für Deinen Serverstandort erlaubt sein.
DNS: Um die Hostnamen unserer Server aufzulösen, wird 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.
Amerika (USA)
| Zweck | Port | Ziele |
|---|---|---|
| Hinzufügen neuer Instanzen | 443 | contact-us.remote-red.com · 5.161.113.250 · 2a01:4ff:f0:c185::1 |
| API-Kommunikation | 443 | api-nodered03.remote-red.com · 5.161.113.250 · 2a01:4ff:f0:c185::1 |
| SSH-Tunnel | 22 | proxy-nodered03.remote-red.com · 5.161.113.250 · 2a01:4ff:f0:c185::1 |
Europa (Deutschland)
| Zweck | Port | Ziele |
|---|---|---|
| Hinzufügen neuer Instanzen | 443 | contact-de.remote-red.com · 49.13.208.138 & 49.12.191.168 · 2a01:4f8:c012:caae::1 & 2a01:4f8:c013:5d65::1 |
| API-Kommunikation | 443 | api-nodered02.remote-red.com · 49.13.208.138 · 2a01:4f8:c012:caae::1 |
| API-Kommunikation | 443 | api-nodered04.remote-red.com · 49.12.191.168 · 2a01:4f8:c013:5d65::1 |
| SSH-Tunnel | 22 | proxy-nodered02.remote-red.com · 49.13.208.138 · 2a01:4f8:c012:caae::1 |
| SSH-Tunnel | 22 | proxy-nodered04.remote-red.com · 49.12.191.168 · 2a01:4f8:c013:5d65::1 |
Asien (Singapur)
| Zweck | Port | Ziele |
|---|---|---|
| Hinzufügen neuer Instanzen | 443 | contact-sg.remote-red.com · 194.233.74.204 · 2407:3640:3009:6554::1 |
| API-Kommunikation | 443 | api-nodered05.remote-red.com · 194.233.74.204 · 2407:3640:3009:6554::1 |
| SSH-Tunnel | 22 | proxy-nodered05.remote-red.com · 194.233.74.204 · 2407:3640:3009:6554::1 |