Springe zum Inhalt

Node-RED auf dem Raspberry Pi installieren

Ich bin mit OpenHab nicht so richtig zufrieden, deswegen wollte ich mal Node-Red ausprobieren. Dabei habe ich mich dazu entschlossen, mit einem "sauberen" Raspbian anzufangen. 

 

1) Installation von Raspbian

  • Download von balenaEtcher (zum Schreiben des Images auf eine SD-Karte) und Installation desselben
  • Download eines offiziellen Raspian Images: Da wir keinen Desktop brauchen, genügt die Lite Variante: Raspian Buster Lite. Aus der heruntergeladenen ZIP entpacken wir die img-Datei <datum>-raspian-buster-lite.img
  • Schreiben des Images: Starten von Etcher und auswählen des SD-Kartenlesers mit eingestecker SD-Karte als Ziellaufwerk und der Datei <datum>-raspian-buster-lite.img als Abbild. Mit einem Klick auf Flash wird die SD-Karte beschrieben und anschließend noch überprüft. Das kann ein paar Minuten dauern.
  • Anschließend unbedingt das Laufwerk ("boot") nochmal öffnen und dort im Root-Verzeichnis eine Datei namens ssh(ohne Dateierweiterung!) anlegen. Dadurch wird der standardmäßig deaktivierte SSH-Server wieder eingeschaltet. Sollte das Laufwerk nicht sichtbar sein, einfach die SD-Karte noch einmal abziehen und wieder einstecken.
  • Einsetzen der SD-Karte in den Pi und starten (Der Pi sollte bereits mit einem Netzwerkkabel verbunden sein)
  • Der Pi besorgt sich automatisch eine IP-Adresse über DHCP. Diese kann über einen IP Scanner oder in der Regel auch über die Weboberfläche des heimischen Routers eingesehen werden.

2) Anmelden via SSH und grundlegende Anpassungen vornehmen.

Zum Verbinden via SSH empfehle ich PuTTY.

Standarduser: pi
Standardkennwort: raspberry

  • Zuallererst ändern wir das Kennwort mit passwd

  • Dann empfiehlt sich ein Systemupdate mit sudo apt update und sudo apt upgrade, anschließend starten wir den Pi mit sudo reboot neu.
  • Nach einem erneuten Login starten wir sudo raspi-config, passen den Hostnamen (Network Options > Hostname) an und erweitern das Dateisystem (Advanced Options > Expand Filesystem). Anschließend sudo reboot
  • Optional: Ich möchte auch eine feste IP einstellen: sudo nano /etc/dhcpcd.conf Ich verwende die 192.168.11.191 für die LAN (eth0) Schnittstelle
    interface eth0
    static ip_address=192.168.11.191/24
    static routers=192.168.11.1
    static domain_name_servers=192.168.11.1 9.9.9.9

    Anschließend sudo reboot

  • Für Installation von Node-RED verwenden wir das direkt vom Projekt bereitgestellte Installationsskript
    bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

  • Wir wollen, dass Node-RED automatisch beim Booten startet, wir aktiveren deshalb nach der Installation noch den Systemdienst:
    sudo systemctl enable nodered.service
  • Jetzt lässt sich Node-RED mit sudo service nodered start starten und ist anschließend via https://<ip/host>:1880 erreichbar
  • Als nächstes sichern wir das Ganze noch ab, so ganz offen und ungeschützt fühlt sich das nämlich nicht gut an.
  • Dazu installieren wir erstmal das Admin Tool sudo npm install -g node-red-admin. Danach bringen wir mithilfe des Logs in Erfahrung wo unsere Einstellungen gespeichert sind (journalctl -u nodered). Auf dem jungfräulichen Raspian finden wir unsere Settings unter /home/pi/.node-red/settings.js.
  • Wir generieren den Hash für unser neues Kennwort mit node-red-admin hash-pw und bearbeiten anschließend die settings.js - der Eintrag adminAuth existiert bereits, nur die Kommentierung muss entfernt werden, anschließend setzen wir unseren Hash noch für password ein und fertig.:
    // Securing Node-RED
    // -----------------
    // To password protect the Node-RED editor and admin API, the following
    // property can be used. See http://nodered.org/docs/security.html for details.
    adminAuth: {
    type: "credentials",
    users: [{
    username: "admin",
    password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
    permissions: "*"
    }]
    },
  • Abschließend neu starten sudo service nodered restart

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert