Node-RED lässt sich unter Linux und Windows installieren, wobei für ein Smart Home ein Raspberry Pi 3 vollkommen ausreicht, wenn man nicht gerade Spracherkennung oder Videobearbeitung einsetzen möchte. Node-RED gibt es auch als Docker Container, wobei ich selbst damit wenig Erfahrung habe.
Die Installation auf einem Raspi erfolgt nach der Installation von PiOS (Bookworm) mit Hilfe des offiziellen Scriptes unter https://nodered.org/docs/getting-started/raspberrypi als normaler Benutzer, nicht als root!
Dieses Script wurde vor einiger Zeit aktualisiert. Jetzt werden gegen Ende der Installation verschiedene Sicherheitseinstellungen abgefragt und eingerichtet, nachdem im letzten halben Jahr einige erfolgreiche Hacks von Node-RED Systemen, die aus dem Internet frei zugänglich waren, gemeldet wurden.
Die Installation dauert auf älteren Raspis etliche Minuten. Zum automatischen Start von Node-RED empfehle ich auf der obigen Webseite den Punkt „Autostart on boot“ zu befolgen.
Nach einem Neustart ist Node-RED über http://<hostname>:1880
zu erreichen. Die IP-Adresse des Raspis, der über LAN oder WLAN ins Netz eingebunden wurde, lässt sich über ip a
herausfinden.
Anschließend habe ich den MQTT Broker mosquitto installiert, hier aber als Benutzer root mit sudo apt install mosquitto
. Später bezieht man sich in Node-RED auf den MQTT Broker mit localhost:1883. Wer einen mosquitto ab Version 2.0 installiert, muss für den Zugriff von Sensoren oder anderen Geräten aus dem lokalen Netzwerk die Konfigurationsdatei anpassen, sonst wird der Zugriff nur vom lokalen System aus erlaubt.
Wer Zigbee Geräte von verschiedenen Herstellern benutzen möchte, sollte jetzt neben einem kompatiblen Zigbee USB Stick noch die Software zigbee2MQTT installieren, auch hier wieder mit dem gleichen Benutzer wie Node-RED (nicht als root!). Dann ist kein zusätzlicher herstellerspezifischer Hub oder Gateway zum Ansprechen der Zigbee Geräte erforderlich.
Danach installiere ich im Node-RED Editor über den Menuepunkt „Palette verwalten“ bzw. „Manage palette“ weitere Nodes:
node-red-dashboard (Version 1, aktuell ist Dashboard 2, das auf einem neueren Framework basiert und deshalb bestehende Dashboards komplett neu eingerichtet werden müssen) um UI Elemente auf einem Browser (egal, ob PC, Tablet oder Smartphone) angezeigt zu bekommen. als Beispiel siehe mein eigenes Dashboard
node-red-contrib-cron-plus um zeitbasierte Flows anzustoßen
node-red-contrib-ical-events um Ical Kalender abzufragen und damit Flows zu starten
node-red-contrib-telegrambot um Telegram Nachrichten per Node-RED zu versenden (WhatsApp und Signal sind deutlich schwieriger in Node-RED einzubinden). Die Einbindung ist allerdings nicht trivial.
node-red-contrib-ui-led und weitere Nodes node-red-contrib-ui-*, um zusätzliche Elemente für die Dashboard Anzeige zu erhalten
node-red-node-pi-sense-hat wenn man ein SenseHat Modul für den Raspi ansteuern möchte