Node-RED in Docker und Integration Home Assistant
Speziell komplexe Automatisierungen können in Home-Assistant und dessen Automations eventuell etwas unübersichtlich werden. Wer an die Grenzen der integrierten Automations stößt, kann alternativ eine eigene Automatisierungs-Plattform wie Node-Red einsetzen. In Node-Red können Abläufe mithilfe von diversen Logikbausteinen in einer visuellen GUI per Drag and Drop zusammengestellt werden.
Nachdem ich Home-Assistant in Docker betreibe, kann Node-Red nicht über den Add-on-Store hinzugefügt werden, sondern über einen eigenen Docker-Container. Der Node-Red Container kann mit folgendem Befehl im Terminal gestartet werden:
docker run -it -p 1880:1880 -v /home/pi/.node-red:/data --name mynodered nodered/node-red
Wer meinem Artikel für das Home-Assistant-Setup in Docker gefolgt ist, kann das beschriebene Setup wie folgt um Node-Red erweitern. Hier der zusätzliche Textblock für die Datei: docker-compose.yml:
version: "3"
services:
haas:
....
nodered:
container_name: nodered
restart: always
image: nodered/node-red
ports:
- 1880:1880
volumes:
- ./nodered:/data
...
Nach dem Start des Containers kann dessen Weboberfläche über den verwendeten Port aufgerufen werden:
siehe: https://nodered.org/docs/getting-started/docker
Username / Password
Nach dem ersten Start wird der in docker-compose.yml verwendete Unterordner ./nodered automatisch befüllt. Für das Setzen eines neuen Admin-Passworts, kann über folgenden Befehl ein Passwort-Hash generiert werden. Eingetragen in der settings.js-Datei, wird das Passwort geändert:
user@rechner:/$ docker exec -it nodered node-red-admin hash-pw
Password:
$2b$08$C.6kGG29J41ZAE2Mq3mp1eU3p/o3/1rLWNISIw7kN1fe6V65Ncq4u
File settings.js:
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2b$08$C.6kGG29J41ZAE2Mq3mp1eU3p/o3/1rLWNISIw7kN1fe6V65Ncq4u",
permissions: "*"
}]
},
Der Aufruf der Weboberfläche kann dann über die IP-Adresse des Docker-Hosts und dem Port 1880 erfolgen:
Jetzt fehlt Node-RED noch eine Verbindung zu Home-Assistant, diese kann wie folgt eingerichtet werden:
Home Assistant mit Node-Red verbinden
Zunächst habe ich über HACS das Node-RED Companion-Repository hinzugefügt und die Integration aktiviert.
Der Zugriff von Node-Red auf Home Assistant erfolgt über einen Access Token, dieser kann in Home Assistant über das Usermenü erstellt werden.
Zurück in Node-Red, benötigen wir für den Zugriff noch eine "Palette": node-red-contrib-home-assistant-websocket
erster Ablauf: Flow
Die Verbindung zu Home Assistant findet in einem Flow über "call service" auf entsprechende Entitäten in Home-Assistant statt:
Sollte die HACS-Integration in Home-Assitant fehlen, erscheint beim Aktivieren ein entsprechender Hinweis:
Fazit
Die Verbindung zu Home Assistant ist geschafft. Meine bisherigen Anforderungen an eine Smart-Home-Automatisierung haben sich relativ einfach mit Home Assistant Automations umsetzen lassen. Sollte ich in Zukunft komplexere Anforderungen haben, bin ich mit Node-RED darauf vorbereitet.😉
{{percentage}} % positiv