Schlagwort-Archive: node-red

NodeRed auf dem Raspberry Pi

Ein Artikel wie ihr NodeRed auf dem RaspberryPi in betrieb nehmen könnt.

nodered logo
NodeRed auf dem Raspberry Pi installieren

Node-Red das IoT, grafische Entwicklungswerkzeug von IBM bietet uns viele Möglichkeiten nach dem Baukastenprinzip verschiedene Geräte und Systeme zu steuern, verbinden und Daten zu verarbeiten und diese miteinander kommunizieren zu lassen.

Dann wollen wir mal los legen.

Step 1) System aktualisieren

sudo apt-get update && sudo apt-get upgrade

Step 2) Node-Red auf dem RaspberryPi installieren

Mit folgendem Befehl installieren wir alle nötigen Komponenten (NodeJs und Node-Red) auf unserem RaspberryPi:


bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Damit die Installation gestartet wird, müsst ihr zwei mal mit Y, bestätigen.

Node-Red Installation auf dem Raspberrypi
Node-Red Installation auf dem Raspberrypi

Die Installation kann bis zu 30 Minuten dauern. Holt euch am besten in der Zeit einen Kaffee oder räumt eure Festplatte ein wenig auf 🙂

Step 3) Node-Red starten

Ist die Installation erfolgreich abgeschlossen, können wir mit dem Befehl: node-red-start starten.

Node-Red auf dem Raspberry starten
Node-Red auf dem Raspberry starten

NodeRed stoppen könnt ihr mit dem Command: node-red-stop

Step 4) NodeRed im Browser aufrufen

NodeRed starten, dies dauert eine Weile. Ist NodeRed dann gestartet können wir unter der Adresse https://RaspberryPiHostname:1880 oder über die IP IP:1880 und dem Port 1880 NodeRed im Browser aufrufen.

Node-Red im Browser auf dem Raspberry
Node-Red im Browser auf dem Raspberry

Nun könnt ihr eigentlich schon mit NodeRed loslegen optional, wenn euer Raspberry von außerhalb zu erreichen ist, empfehle ich euch nun weiter zu lesen, um den Raspberry vor fremden Zugriff zu schützen.

Step 5, optional) NodeRed Konfigurationsdatei: settings.js öffnen

Bevor wir nun weiter machen, so sehr wir uns auch freuen, dass es prinzipiell funktioniert, beenden wir NodeRed erstmal: node-red-stop

Wenn wir uns nun in das Verzeichnis /home/pi/.node-red wechseln und uns die settings.js (sudo nano settings.js) anschauen, sehen wir in Zeile 126,
dass wir ein Password Hash einsetzen müssen, um NodeRed mit einem Benutzernamen und Password absichern zu können. Den Hash erstellen wir nun als nächstes.

Node-Red Settings.js, JSON Array, mit einem Beispiel Objekt
Node-Red Settings.js, JSON Array, mit einem Beispiel Objekt

In der settings,js können wir schon mal die Kommentare entfernen, so dass es wie im Bild aussieht. Das Password wird als Hash verschlüsselt, in der Datei hinterlegt. Um nun diesen Hash erzeugen zu können, benötigen wir NodeRed Admin.

Step 6, optional) Node-Red Admin Tool installieren

Mit dem Befehl:

sudo npm install -g node-red-admin

installieren wir das Tool.

Nach der Installation führen wir das Tool aus:


node-red-admin hash-pw
node-red-admin hash-pw
node-red-admin hash-pw

Nun tragen wir dort unser gewünschtes Passwort ein und erhalten in Kürze ein Hash, welches wir uns zwischenspeichern.

Hier wird unser generierter Hash angezeigt, welchen wir uns zwischenspeichern.
Hier wird unser generierter Hash angezeigt, welchen wir uns zwischenspeichern.

Step 7, optional) JSON Array-Objekt anpassen

Ist der Hash nun in der _Zwischenablage, gehen wir zurück in das Verzeichnis:

cd /home/pi/.node-red

mit

sudo nano settings.js 

öffnen die Konfigurationsdatei. Wir gehen zur Zeile 125 und löschen den alten Hash raus und ersetzen ihn durch unseren. Falls gewünscht, kann man nun noch in Zeile 124 den Benutzernamen ändern. Für diesen Artikel lasse ich ihn nun so.

Damit unsere Änderungen übernommen werden schließen wir die Datei mit STRG+X und STRG+O.

Alternativ kann man die Datei auch lokal auf einem Windows PC ändern und nach dem Anpassen mit zb WinSCP wieder austauschen.

Unser geändertes Array sollte nun so aussehen:

adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$6No1bpgYMjG/n0skkHQcyeyA6gPgakD8F.N7znmegs4SrckSuPzl2",
permissions: "*"
}]
},

Da es sich hierbei um ein Array handelt, lassen sich natürlich mehrere Benutzer festlegen. Wurden die Änderungen erfolgreich vorgenommen, können wir NodeRed wieder starten:

node-red-start

Ist NodeRed auf dem Raspberry Pi wieder am laufen können wir den Webbrowser aktualisieren und wir werden ab sofort nach einem Benutzernamen und einem Passwort gefragt:

Node-Red Anmeldung auf dem RaspberryPi
Node-Red Anmeldung auf dem RaspberryPi

Wie ihr hier noch weiter nachlesen könnt, könnt ihr Node-Red auch noch weiter absichern wie zb mit HTTPS und OAUTH, dass würde jedoch den Rahmen eines Artikels sprengen, wer dennoch Interesse hat, lohnt es ein Blick auf die Dokumentation zu werfen:
https://nodered.org/docs/security.html

Node-Red Dienst beim Systemstart automatisch starten

Möchten wir, dass Node-Red bei jedem Start vom Raspberry automatisch mit startet, führen wir noch folgenden Befehl aus:

sudo systemctl enable nodered.service

Möchten wir das automatische Starten des Node-Red Services auf dem RaspberryPi wieder deaktivieren, können wir dies mit folgendem Befehl machen:

sudo systemctl disable nodered.service

Alternativ wäre mittels CronJobs ein Autostart zu konfigurieren:

Cronjobs auf dem Raspberry Pi einrichten

Nun könnt ihr euch mit NodeRed austoben!

Happy Noding!