2 NODE-RED FÜR DEN EINSATZ VORBEREITEN
Eingangs des vorigen Kapitels war von Werkzeug, von Software, die Rede, die wir für unsere Heimautomationslösung benötigen. Nachfolgend werden drei Möglichkeiten beschrieben, sich das Werkzeug Node-RED in den Werkzeugkasten zu legen und es für den Einsatz vorzubereiten.
Linux und Raspberry Pi
Bei den meisten Linux-Installationen ist Node-RED bereits vorinstalliert. Das gilt insbesondere für den Raspberry Pi. Überprüfen lässt sich das mit der Eingabe von node –v. Als Ergebnis wird dann die installierte Version, z. B. v8.11.3, ausgegeben.
Node-RED von GitHub installieren
Sollte das nicht der Fall sein, kann Node-RED von GitHub4 installiert werden. Hierzu öffnen wir ein Terminal. Zunächst sollte jedoch wie fast immer mit sudo apt-get update das System auf den neuesten Stand gebracht werden. Mit der Eingabe von
bash <(curl -sL https://raw.githubusercontent.com/node-red/
raspbian-deb-package/master/resources/update-nodejs-and-Node-RED)
werden die notwendigen Pakete heruntergeladen und befinden sich im Ordner .node-red des Home-Verzeichnisses.
Node-RED starten und beenden
Im Terminal kann mit node-red-start Node-RED gestartet werden. Alternativ geht das auch auf der grafischen Benutzeroberfläche mit dem Icon unter Menu/Programming/Node-RED.
In einem neu zu öffnenden Terminal kann dann Node-RED durch die Eingabe von node-red-stop beendet werden.
Das System administrieren
Mit der Eingabe von
sudo systemctl enable Node-RED.service
am Terminal kann das System so konfiguriert werden, dass Node-RED beim Bootvorgang mit gestartet wird. Mit sudo service Node-RED status wird der Status überprüft, mit sudo service Node-RED stop wird Node-RED beendet.
Wichtige Dateien im Home-Verzeichnis
Es gibt zwei wichtige Dateien, die sich im Home-Verzeichnis .node-red befinden. Dies sind:
•settings.js: Hier sind die Standardvoreinstellungen gespeichert. So kann z. B. die maximale Länge der Ausgabe des debug-Nodes erhöht werden – debugMaxLength: 5000.
JAVASCRIPT-OBJEKTE
Die Datei settings.js exportiert ein JavaScript-Objekt. Um Node-RED zu konfigurieren, sollte ein Grundverständnis hinsichtlich des Hinzufügens und Änderns von Schlüsselpaaren in JavaScript-Objekten vorhanden sein.
•flows_<Rechnername>.json: In dieser Datei werden alle Flows gespeichert, <Rechnername> ist der Name des Rechners, auf dem Node-RED läuft (z. B. raspberrypi). Diese Datei sollte vor jeder Änderung in Node-RED gesichert werden, da einige Updates diese Datei in den Urzustand zurücksetzen.
Sicherheit mit Passwortauthentifizierung
Nach der Installation ist Node-RED nicht gesichert. Das heißt, jeder, der Zugang im und zum eigenen Netz hat, kann auf den Node-RED-Editor zugreifen und so Flows verändern und über spezielle Nodes auf den gesamten Rechner zugreifen. Eine Authentifizierung mittels Passwort kann helfen, das zu vermeiden. Was also zu tun ist:
Ein Passwort-Hash erzeugen:
Das zu verwendende Passwort muss als Hash in der Konfigurationsdatei settings.js abgelegt werden, und zwar mithilfe der Admin-CLI-Tools. In der Regel müssen diese aber noch nachinstalliert werden. Bei der Installation kann es zu einigen Warn- und Fehlerhinweisen kommen, die in der Regel ignoriert werden können.
sudo npm install -g node-red-admin
Nun kann das Tool aufgerufen werden. Es erfragt das Passwort und gibt den Hash aus.
sudo node-red-admin hash-pw
Mit Copy-and-paste in eine leere Textdatei kann der Hash zunächst einmal gesichert werden.
Die Datei setting.js anpassen:
Meistens liegt die Konfigurationsdatei unter /home/pi/.node-red/settings.js. Diese Datei öffnen wir in einem Editor, suchen den bereits vorgegebenen, aber auskommentierten Bereich Security Node-Red und ergänzen ihn wie folgt:
005 | password: "der-generierte-Hash", |
"*" bei permissions besagt, dass der Benutzer admin alle Berechtigungen haben soll. Wird nun nach einem Neustart der Node-RED-Editor aufgerufen, erscheint eine Log-in-Maske, in der sich der Benutzer authentifizieren muss.
Bild 2.1: Das Node-RED-Log-in.
Windows
Bedauerlicherweise funktionieren nicht alle Nodes unter Windows. Auch ist die Installation unter Windows etwas aufwendiger, da unter Umständen Programme eingerichtet werden müssen, die in einem Linux-System bereits vorhanden sind.
Installation unter Windows
Benötigt werden Node.js, npm5 (Paketmanager für JavaScript) und die Windows-Build-Tools für einige Node-RED-Nodes unter Windows.
Node.js installieren:
Die Standardinstallation von Node.js unter Windows erfordert lokale Administratorrechte. Nach der Navigation zur Node.js-Download-Page stehen sowohl eine 32-Bit- als auch 64-Bit-Versionen zur Verfügung. Durch Doppelklick auf die gewünschte Version öffnet sich ein Fenster, in dem ausgewählt werden kann, ob der MSI-Installer heruntergeladen und danach ausgeführt oder direkt ausgeführt werden soll. Nach Aufruf des Installers wird mittels entsprechender Dialogfenster durch den gesamten Installationsprozess geführt.
npm installieren:
Wenn Node.js installiert wird, kann auch gleichzeitig der npm-Paketmanager eingerichtet werden. npm- und Node.js-Version sollten zueinander passen. Deshalb wird davon abgeraten, eine neuere npm-Version als die entsprechende von Node.js zu installieren.
Node-RED für mehrere Benutzer:
Node.js wird wie erwartet in den Ordner Programme installiert. Wird jedoch ein globales Paket wie Node-RED mit npm -g installiert, wird es für den aktuellen Benutzer im Ordner $ env: APPDATA \ npm (% APPDATA% \ npm mit cmd) installiert. Das ist weniger hilfreich, wenn die Installation z. B. auf einem PC für mehrere Benutzeranmeldungen durchgeführt werden soll. In diesem Fall ist ein erweitertes Vorgehen nötig (siehe unten).
Node.js-Windows-Build-Tools installieren:
Viele Node.js-Module, die von Node-RED oder installierten Nodes verwendet werden, haben binäre Komponenten, die kompiliert werden müssen, bevor sie unter Windows funktionieren. Damit npm-Binärdateien auf der Windows-Plattform kompilieren können, ist das windows-build-tools-Modul erforderlich. Hierzu ist eine Terminalsitzung mit Administratorrechten zu starten und folgendes Kommando einzugeben:
npm install –global –production windows-build-tools
Wenn Sie möchten, dass die integrierte Installation von Python v2.7 zur Verwendung freigegeben wird, können Sie folgenden Befehl eingeben:
npm install –global –production add-python-zu-pfad windows-build-tools
Während der Installation kann es vorkommen, dass vom Befehl node-gyp einige Fehler gemeldet werden. Das sind in der Regel keine schwerwiegenden Fehler, die sich auf optionale Compilerabhängigkeiten beziehen, die bei der Erstellung der Module angegeben werden können. Node-RED funktioniert ohne diese optionalen...