Heimautomatisierung mit Node-RED, MQTT und HomeKit
Basis System Installieren
Für meine SBCs (Single Board Computer) wie den Raspberry Pi, Banana Pi, Pine 64 oder ODroid XU4 nutze ich vorzugsweise DietPi.
Eine ausführliche Anleitung, wie du DietPi installierst, findest du im Blog Beitrag “DietPi: Klein, schlank und schnell“.
Die folgende Anleitung stützt sich dabei auf DietPi “Helferlein” und Verzeichnisstrukturen.
Avahi
Avahi ist ein mDNS Service, der es ermöglicht, ohne IP-Adresse und einfach über hostname.local auf den Server zuzugreifen.
dietpi-software install 152
Node-RED
Node-RED kann über viele Wege installiert werden. Wir Node-RED mittels dietpi-software installiert, stimmen die Rechte, die Daten werden in /mnt/dietpi_userdata/node-red/ gespeichert und der Dienst automatisch gestartet. Erreichbar ist die Instanz dann unter DeineIp:1880 oder hostname.local:1880, wenn Avahi installiert wurde.
dietpi-software install 122
cd /mnt/dietpi_userdata/node-red/
apt-get install libavahi-compat-libdnssd-dev
sudo -u nodered npm install node-red-contrib-homekit
sudo -u nodered npm install node-red-contrib-ttn
Wichtig
Beim (neu)starten von Node-RED immer darauf achten, den Prozess aus dem gleichen Verzeichnis zu starten.
Standardmäßig nimmt Node-RED immer das aktuelle Verzeichnis, um die Konfiguration zu laden/sichern!
Mit dem hier beschriebenen Setup, immer vor dem manuellen starten in folgendes Verzeichnis wechseln:
cd /mnt/dietpi_userdata/node-red/
Node-RED Neustarten
service node-red restart
Node-RED Absichern
Auf nodered.org findest du die offizielle Dokumentation mit weiterführenden Informationen.
npm install node-red-admin
node-red-admin hash-pw
nano settings.js
MQTT mit Mosquitto
Der MQTT Broker ist mit folgendem Befehl einfach installiert:
dietpi-software install 123
Mosquitto Absichern
Auf mosquitto.org findest du die offizielle Dokumentation mit weiterführenden Informationen.
Ich empfehle mindestens zwei Benutzer anzulegen:
- admin – für das System & Node-RED
- device – für MQTT fähige Endgeräte. Natürlich können beliebig viele weitere Benutzer angelegt werden.
mosquitto_passwd -c /etc/mosquitto/passwd admin
mosquitto_passwd -c /etc/mosquitto/passwd device
Anschließend die Passwort-Date in mosquitto.conf angeben:
nano /etc/mosquitto/mosquitto.conf
Und folgende Zeilen hinzufügen:
password_file /etc/mosquitto/passwd allow_anonymous false
Mit folgendem Befehl wird die geänderte Konfiguration geladen:
service mosquitto reload
Erweiterungen für Node-RED
Hier ist eine Liste mit Node-RED Erweiterungen, die ich im Einsatz habe:
- node-red-contrib-state-machine
- node-red-contrib-influxdb
- node-red-contrib-pushover
- node-red-contrib-syslog-input
- node-red-contrib-ttn
- node-red-node-rbe
- node-red-node-smooth
- node-red-node-suncalc
Hier sind noch ein paar Erweiterungen, die ich mir noch genauer anschauen will: