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.😉

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details