-
Notifications
You must be signed in to change notification settings - Fork 24
Anfänger: Installation RPi, node red, nodes
Behandelt die Installation von Raspbian Buster Lite
- Einleitung
- Installation
- Erster Start
- Zugriff auf den Pi
- Erste Schritte
- Raspberry Pi Grundkonfiguration
- Installation Node-Red
- Installation von Nodes
- Update von Nodes
- Deinstallieren von Nodes
- Conclusion
- License/Credits
Das vermehrt die Frage aufkam, wie man denn mit node-red starten kann, versuche ich mal den üblichen weg - die Installation auf einem Raspberry Pi - zu erklären. Die Wahl fiel auf den Raspberry Pi 3B, weil dort für unter 1 Watt genug Leistung und Schnittstellen zur Verfügung stehen um eine komplette Automation aufzubauen. Außerdem sind für diese Plattform sehr viele Tutorials zu haben und preislich kommt man auch gut zurecht.
Ich bestelle meine Pi's bei reichelt. Dort ist der Service vorzüglich und der Preis gehört mit zu den günstigsten. Natürlich könnt ihr auch irgendwo anders kaufen. Wenn gewünscht stelle ich gerne eine Liste mit Artikelnummern zur Verfügung.
Ich empfehle aber auf jeden Fall ein 2A-Netzteil und eine Marken-Micro SD (Class 10, 8GB).
Im Bild das offizielle Case, Raspberry Pi 3, MicroSD-Karte und -Leser (oben rechts) sowie GooBay 5V/2A Netzteil.
Um mit einem Pi starten zu können, muss zuerst ein Betriebssystem auf der SD-Karte installiert werden. Der Pi hat sonst keinen Massenspeicher und so dient die SD-Karte als "Festplatte".
Um ein Betriebssystem-Image (Abbild) auf eine SD-Karte zu schreiben, benötigt man ein passendes Programm.
Im Beispiel verwende ich balenaEtcher (ehemals nur Etcher), das für Windows, Linux und MacOS verfügbar ist.
Natürlich geht auch der Win32DiskImager für Windows, dd
unter Linux oder der ApplePi Baker unter OSX.
Zuerst lädt man also balenaEtcher von https://www.balena.io/etcher/ herunter und installiert diesen.
Als Betriebssystem entscheiden wir uns für das offizielle Raspbian-Linux von https://www.raspberrypi.org/downloads/raspbian/.
Da wir keine Desktop-Umgebung benötigen, ladet bitte das dort angeboten Raspbian Buster Lite
herunter. Nach
dem Entpacken erhaltet ihr eine img
-Datei.
Startet nun Etcher und wählt als "Laufwerk" euren SD-Kartenleser mit eingesteckter SD-Karte (mind. 4GB), sowie <datum>-raspbian-buster-lite.img
als "Image":
Nach einem beherzten Klick auf Flash
könnt ihr euch erst mal ein erfrischendes Kaltgetränk oder einen Kaffe genehmigen ;-) Nach ein paar Minuten ist das Image dann schon auf der SD-Karte und wird noch durch Etcher verifiziert.
Super - ihr habt soeben ein Linux-Image auf eine SD-Karte geflasht!
Bevor ihr die SD-Karte auf dem Leser nehmt, öffnet das Laufwerk BOOT
und legt dort eine leere Datei namens ssh
(ohne Erweiterung) an. Eventuell müsst ihr die SD-Karte ein mal ziehen und wieder einstecken, damit euch das Laufwerk angezeigt wird.
Da wir uns für Raspbian ohne Desktop entschieden haben, müssen wir ja irgendwie zum Konfigurieren auf den Pi kommen. Dazu nutzt man SSH (Secure Shell) um über einen Terminal die Kommandozeile zu bedienen. Seit letztem Jahr ist der SSH-Server unter Raspbian aber standardmäßig deaktiviert, da einfach viel zu viele Leute Ihren Pi mit Standardpasswort im Internet hatten. Mit dem Anlegen der leeren Datei schaltet man den SSH-Server dann explizit ein.
Steckt nun die fertige SD-Karte in den SD-Kartenslot des noch stromlosen Raspberry Pis. Die Karte im Computer bitte über die Funktion "Sicher entfernen" oder umount
aushängen.
- Ihr benötigt weder Tastatur noch Monitor am Raspberry Pi.
- Versorgt den Pi mit einem Netzwerkkabel, das mit eurem Heimnetz verbunden ist.
- Steckt dann das Netzteil zuerst in den Pi und dann in die Steckdose
Die rote LED sollte durchgehend Leuchten, die Gelbe sollte in unregelmäßigen Abständen blinken. Juhuuu - der Raspberry Pi bootet.
Ich gehe davon aus, dass ein funktionierender DHCP-Server im Netz vorhanden ist und der Pi sich damit automatisch mit einer IP-Adresse versorgt.
Üblicherweise kann man die IP, die dem Pi zugeordnet wurde, im Interface des Router einsehen. Auf einer Fritz!Box beispielsweise geht das unter Heimnetz -> Heimnetzübersicht -> Netzwerkverbindungen
:
Bitte nicht irritieren lassen: Der Pi hat nur ein 100MBit/s Interface, ist in meinem Netz aber über einen Switch angeschlossen, der der Fritzbox gegenüber Gigabit hat.
Der Pi ist also über die nun bekannte IP erreichbar! Wenn man eine FritzBox besitzt, ist er - genauso wie jedes andere Netzwerkgerät - auch über den Namen raspberrypi.fritz.box
erreichbar.
Gleiches gilt für andere Router (raspberrypi.speedport.ip
, raspberrypi.easy.box
, etc.).
Leute die den Bonjour Dienst und IPV6 auf Ihrem Computer aktiviert haben (OSX, Linux), können den Pi auch unter raspberrypi.local
erreichen.
Wie bekommt man nun also Zugang über SSH auf den Pi?
Hier kann man zum Beispiel Putty verwenden. Für jeden anderen SSH-Client (SecureCRT, KiTTY, etc.) sind die Schritte analog auszuführen.
Startet also PuTTY und gebt den Hostnamen oder die IP ein und wählt SSH
(Standard):
Beim ersten Verbinden werdet ihr mit einer Warnung begrüßt:
Diese Meldung ist völlig normal. SSH arbeitet mit sogenannten Host-Keys, wovon jeder SSH-Host einen zufällig bei der Installation des SSH-Servers generierten besitzt. Bestätigt den für euch "neuen" SSH-Host-Key einfach mit "Ja". PuTTY wird euch melden wenn unter dem gleichen Namen ein andere SSH-Host-Key präsentiert wird.
PuTTY verbindet sich daraufhin mit dem SSH-Server des Raspberry Pi und möchte anschließend einen Benutzernamen (login
) von euch wissen. Nach Eingabe des Benutzers folgt logischerweise
das Passwort für den von euch angegebenen Benutzer.
Bei der Erstinstallation ist der Benutzer pi
und das Passwort lautet raspberry
.
Ihr seid auf der Shell:
Öffnet ein Terminal und gebt ssh pi@<host/ip>
in die Konsole ein. Danach müsst ihr nur noch den oben (Windows) bereits erwähnten SSH-Host-Key mit yes
bestätigen und das Passwort für den Benutzer pi
eingeben.
Als Beispiel: ssh [email protected]
oder ssh [email protected]
.
Bei der Erstinstallation ist der Benutzer pi
und das Passwort lautet raspberry
.
Ihr seid auf der Shell:
Zuerst solltet ihr euren Pi mal auf den aktuellen Stand bringen!
Unter Linux gibt es einen administrativen Benutzer (root
) der alles im System darf. Es empfiehlt sich nicht als dieser Benutzer zu arbeiten, da einfach durch Unwissenheit zu viel am System beschädigt werden könnte.
Um also trotzdem Dinge mit Administratorrechten ausführen zu können, gibt es das Kommando sudo
- substitute user, do . Der Benutzer pi
ist bereits für die sudo-Berechtigung freigeschaltet.
Normalerweise muss für diesen Vorgang das eigene Passwort zur Legitimation eingegeben werden, auf dem Pi ist dies, für die Bequemlichkeit, deaktiviert.
Wir updaten also das System:
sudo apt update
sudo apt full-upgrade
apt update
aktualisiert die im System hinterlegten Paketquellen und die Liste der installierbaren Pakete. apt full-upgrade
aktualisiert - wie zu vermuten ist - alle Pakete für die es Updates gibt.
Dann steht üblicherweise ein Reboot an, da normalerweise auch der Kernel des Systems aktualisiert wurde.
sudo reboot
Wenn apt update
mit der Meldung All packages are up to date.
beendet wurde, ist man bereits auf dem aktuellen Stand und braucht apt full-upgrade
nicht mehr auszuführen.
Unter Linux muss typischerweise nicht das komplette System neu gestartet werden um einen einzelnen Dienst neu zu starten oder zu aktualisieren. Wenn allerdings der Kern des Betriebssystems (Kernel) aktualisiert wurde, kommt man um einen Reboot nicht herum.
Raspbian bringt eine leicht bedienbare Konfiguration mit - genannt raspi-config
.
Startet diese mit sudo raspi-config
und ihr werdet mit folgendem Fenster begrüßt:
Das Programm lässt sich mit den Pfeiltasten, Enter, ESC und TAB bedienen. Wählt zuerst Change User Password
und gebt eurem Benutzer pi
ein vernünftiges Passwort. Nach dieser Änderung müsst ihr euch zukünftig mit dem selbst vergebenen Passwort authentifizieren.
Wer möchte kann unter Localisation Options
noch Deutsch auswählen. Die Sprache ist nicht wirklich wichtig, allerdings solltet ihr in jedem Fall die Zeitzone richtig setzen. Typischerweise ist das Europe/Berlin
.
Als nächstes ist es wichtig unter Advanced Options
das Dateisystem mittels Expand Filesystem
zu vergrößern, damit der komplette Platz auf der SD-Karte genutzt wird.
Danach könnt ihr mit TAB auf <Finish>
springen und mit Enter bestätigen. Da ihr am Dateisystem
Änderungen vorgenommen habt, solltet ihr den Pi mit sudo reboot
letztmalig neu starten.
Mit sudo halt
fahrt ihr das System herunter. Jedes mal wenn ihr plant den Pi vom Strom zu trennen, solltet ihr dies tun. Dateisysteme mögen es im Allgemeinen nicht, wenn man ihnen einfach den Boden (Strom) unter den Füßen weg zieht.
Node-Red ist in NodeJS geschrieben und benötigt zur Installation und für den Betrieb logischerweise Node JS und den Node Package Manager (npm).
Die Jungs von Node-Red stellen ein Script zum Update von NodeJS, NPM und zur automatischen Installation von Node-Red unter http://nodered.org/docs/hardware/raspberrypi zur Vefügung. Natürlich werden wir dieses hier nutzen.
Verbindet euch erneut per SSH mit dem Pi.
Copy & Pasted nun diese Zeile in die Shell:
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
(In PuTTY müsst ihr mit SHIFT-EINFG
einfügen, da STRG-V
nicht funktioniert.)
Das Script erklärt euch kurz was nun passieren wird, was ihr natürlich mit y
bestätigen müsst.
Danach startet auch bereits die automatische Aktualisierung und Installation von node-red.
Hinweis: Nicht einfach irgendwelche Shellkommandos, die Ihr im Internet gefunden habt ausführen. Wie hier wird oft ein externes Script nachgeladen, was in diesem Moment genau genommen alles mit eurem System anstellen kann.
Nach einiger Zeit, abhängig davon ob ihr einen Pi 1, 2 oder 3 verwendet, ist die Installation abgeschlossen:
Um Node-Red zu starten, gebt nun einfach node-red-start
ein. Damit wird node-red gestartet und ist ab diesem Zeitpunkt unter https://<ip/host>:1880
erreichbar.
Also Beispielsweise unter http://raspberrypi.fritz.box:1880
.
Um Node-Red zu stoppen, drückt einfach STRG-C
im Konsolenfenster und der Prozess wird beendet.
Achtung: Um beim nächsten Reboot Node-Red automatisch zu starten, muss es als Systemdienst installiert werden. Dies geschieht mit
sudo systemctl enable nodered.service
Um den Dienst zukünftig neu zu starten, zu stoppen oder erneut zu starten wenn er gestoppt wurde, nutzt man:
sudo service nodered restart
sudo service nodered stop
sudo service nodered start
Man kann also auch ohne einen Reboot, nachdem man Node-Red als Systemdienst eingetragen hat, das Ganze mit sudo service nodered start
starten.
Am einfachsten geschieht dies über den Palette Manager von Node-Red:
Dort sieht man die bereits installierten Nodes und kann unter Install
nach Nodes, die man installieren möchte, suchen.
Durch Klick auf install
wird der gewünschte Node installiert und ist ab diesem Zeitpunkt in der "Palette" (links) verfügbar.
node-red-dashboard
installiert man auf genau dem gleichen Weg:
Nach der Installation ist dann das "Dashboard" unter http://raspberrypi.fritz.box:1880/ui/
verfügbar. Natürlich ist dort noch nicht viel zu sehen, da ihr ja noch keine Nodes für das Dashboard angelegt habt ;-)
Natürlich können nodes auch auf der Kommandozeile installiert werden. Verbindet also wieder per SSH mit dem Pi und wechselt in das Verzeichnis in den Node-Red seine zugehörigen
Dateien ablegt. Typischerweise im Home-Verzeichnis des Benutzers der Node-Red ausführt, in unserem Fall also /home/pi/.node-red/
.
Auf die Schnelle kann man mit ~
in das home-Verzeichnis wechseln, also für uns cd ~/.node-red
.
Dort kann man mit npm install <kompletter-name-des-nodes>
einen node installieren.
Zum Beispiel: npm install node-red-contrib-loxone
.
Seit node-red Version 0.17
ist das Update der Nodes einfach über Manage-Palette möglich. Dort einfach die entsprechenden Nodes über den Update-Button aktualisieren.
Genau wie beim Update kann mal einzelne Nodes unter Manage-Palette auch deaktivieren bzw. deinstallieren. Die entsprechenden Schaltflächen sind selbsterklärend.
Ich hoffe ich konnte euch ein wenig die Anfangsangst im Umgang mit dem Raspberry Pi, mit Linux und mit der Installation von Node-Red nehmen.
Feedback und Anregungen gerne an mich.
CC-BY-NC 2019 by [email protected], https://www.codm.de, https://allgeek.de