Martin Weissenböck

Node-RED und Home Assistant

Zwei Wege zum automatisierten Heim

Was erwartet Sie in diesem Beitrag?

Schwerpunkte sind die ersten Schritte mit dem Home Assistant und die Unterschiede zu Node-RED.

Sie werden…


Ein im Text der Kurzfassung weist darauf hin, dass in der Langversion an dieser Stelle mehr Text, ein Programmcode, ein Bild oder eine detaillierte Anleitung zu finden ist. Die Langversion kann über den Link oder den QR-Code am Ende des Beitrags abgerufen werden und enthält den Text in pdf–, HTML– und epub–Format. Alle Links können angeklickt werden.


Für alle, die jetzt beginnen wollen

Ob Node-RED oder Home Automation: für beide Formen bedarf es einiger Vorbereitungen. Ein Computer muss eingerichtet oder fertig eingerichtet gekauft werden. Bauteile (wie Schalter oder Lampen) sind auszuwählen, die in das System integrierbar und über Funk erreichbar sind. In beiden Fällen sollte man schon auch etwas Zeit einplanen, um die Grundlagen der Steuerungen kennenzulernen und zu verstehen.

Die Grundausstattung

Wer gleich Erfahrungen mit einem Smart Home sammeln möchte, kann das bei den Veranstaltungen des ClubComputer (Clubabende, Forum Smart Home) tun. Nützlich ist es, ein paar Komponenten vorher zu kaufen, auf die wir auch bei den Clubveranstaltungen immer wieder zurückgreifen werden. Hier eine kurze Liste:

Computer

Sowohl Node-RED wie auch Home Assistant können auf vielen System installiert werden. Häufig wird ein Raspberry Pi oder ein Linux-Rechner verwendet. Für den Home Assistant gibt es auch noch eine fertige Lösung: der Home Assistant Green ist ein kleiner Rechner, der vorkonfiguriert ist und wirklich nur mehr angesteckt werden muss - also ideal für einen Workshop.

Bezugsquelle: Home Assistant Green, ca. 100 €, Alza. Alza liefert auch gegen eine Gebühr von 0,99 € in einer von 160 Alza(Abhol)Boxen in Wien. Die Standorte sind auf der Webseite zu finden. In dem neuen Shop am Anfang des Getreidemarkts können Komponenten außerdem zu jeder Zeit abgeholt werden.

Zigbee Coordinator

Es gibt (leider zu viele) unterschiedliche Systeme und Protokolle. Unsere Empfehlung für die Clubabende und auch für die Steuerungen zu Hause: das Zigbee-Protokoll (und später einmal Matter). Einen Zigbee Coordinator (Adapter) brauchen wir, um die Peripheriegeräte ansteuern zu können.

Für eine Wohnung:

SONOFF Zigbee 3.0 USB bei Amazon um ca. 25 € Wird an den USB-Port angesteckt.

bild-0001

Dazu ein USB-Verlängerungskabel, da zum Anstecken des Dongle der Platz knapp ist und außerdem der Dongle in einem Abstand zum Rechner platziert werden kann. Beispiel: XGMATT bei Amazon, zwei Stück um ca. 6 €

Für ein Haus:

Da wäre ein SLZB-06p10 um rund 50 € besser. Dieser Adapter ist über das LAN mit dem Computer verbunden. Kaufempfehlung für dieses Gerät: SmartHomeShop in Budapest, liefert auch nach Österreich. Bei Amazon viel teurer!

bild-0004

Pairen (oder Anlernen) - was ist das?

Wenn eine neue Komponente in ein (Zigbee) Smart-Home-System aufgenommen werden soll, müssen die neue Komponente und der Zigbee Coordinator mit einander bekannt gemacht werden.

(1) Das Programm Zigbee2MQTT muss so eingestellt werden, dass es auf neue Komponenten wartet: auf Anlernen aktivieren klicken.

(2) Die neue Komponente muss sich anmelden. Auf der Webseite Zigbee2MQTT wird für mehr als 4000 Komponenten beschrieben, wie das geht. Meistens ist ein Taster auf dem Gerät solange zu Drücken, bis eine LED blinkt. Bei IKEA-Komponenten ist die Taste oft viermal rasch hintereinander zu drücken. Lampen haben keinen Taster: da ist der Stromkreis viermal zu öffnen und wieder zu schließen - die Lampe reagiert dann mit langsam an- und abschwellender Helligkeit.

Schalter, Lampen, Bewegungsmelder und andere

Mögliche Einkaufsquellen: Amazon, AliExpress, IKEA oder andere. Lidl hatte interessante Komponenten, aber die sind nicht mehr im Verkaufsprogramm.

Manche Komponenten werden für Zigbee oder WLAN angeboten – bitte auf die Bezeichnung Zigbee achten.

Zigbee Zwischenstecker

Diese Zwischenstecker dienen zum Schalten von Verbrauchern und oft auch zur Messung der Energiedaten: Spannung, Strom, Wirk–, Blind– und Scheinleistung. Manchmal werden sie unkorrekt als Steckdose bezeichnet. Das liegt vermutlich an der englischen Bezeichnung plug, die für beides verwendet wird.

Vom Amazon NOUS A1Z, 4 Stück um 60 €. Die passen sogar nebeneinander in eine Verteilerleiste. Das Z steht für Zigbee. Ferner erhältlich bei AliExpress – viele Angebote! IKEA TRETAKT (ohne Energiemessung) ab 6,99 € oder IKEA INSPELNING (mit Energiemessung) 9,99 €.

Zigbee LED-Lampe
Taster oder Dimmer

Um Verbraucher ein- und auszuschalten, Lampen zu dimmen oder komplette Beleuchtungsszenen aufzurufen, werden Taster verwendet.

IKEA RODRET Dimmer/Schalter um 5,99 € oder im Kombiangebot mit Lampe oder Zwischenstecker.

Sehr praktisch sind auch Mehrfachtaster: jede einzelne Taste kann drei verschiedene Signale liefert: Einfachklick, Doppelklick und langer Klick - insgesamt also 12 Steuersignale. Bei Aliexpress ab 9 €.

 

bild-0013

Noch mehr Vorschläge

Zum Starten sind diese Teile nicht notwendig, aber interessant für weitere Experimente.

Node-RED

Die vorhergehenden Beiträge in den PCNEWS 181 bis 183 haben Node-RED behandelt. Was ist die Grundidee dabei? Die Programmierung einer Steuerung über eine Grafik!

Ein Steuerprogramm besteht aus Nodes, die durch Linien verbunden werden. Nodes werden durch Rechtecke dargestellt:

bild-0014

Der blaue Punkt weist daraufhin, dass diese Nodes noch nicht abgespeichert worden sind. In jedem Node werden JSON-Objekte verarbeitet, also erzeugt oder verändert. Ferner werden JSON-Objekte von externen Geräte abgefragt oder an externe Geräte geschickt. Häufig wird da die Schnittstelle zu einem MQTT-Brocker (siehe PCNEWS 181) über das Programm zigbee2mqtt verwendet. Die Linien in der grafischen Programmieroberfläche beschreiben dabei die Wege, die die JSON-Objekte zurücklegen. Mit einem inject-Node werden vor allem zum Testen zusätzlich neue JSON-Objekte erzeugt, mit einem debug-Node werden sie sichtbar gemacht. Beispiele dazu sind in den PCNEWS 182 und 183 zu finden.

Die grafische Programmieroberfläche ist sehr anschaulich, kommt aber bei komplexen Aufgaben an ihre Grenzen und fordert dann der Einsatz von JavaScript-Funktionen. Auch das ist jedoch keine große Hürde.

Die grafische Oberfläche regt an, damit zu experimentieren, und ist für Unterrichtszwecke didaktisch interessant.

Node-RED Themen wurden in früheren Ausgabe der PCNEWS behandelt. In diesem Heft beginnen wir mit den Themen rund um den Home Assistant.

Home Assistant (oder kurz: HA)

Die Wikipedia schreibt dazu:

Home Assistant ist eine kostenlose und quelloffene Software zur Hausautomation, die als zentrales Steuerungssystem in einem Smart Home oder Smart House konzipiert ist. Geschrieben in Python liegt ihr Hauptaugenmerk auf lokaler Steuerung und Privatsphäre.

Home Assistant verfügt über ein breites Spektrum an Geräteunterstützung und bietet über 2200 modulare Plug-ins mit Systemintegrationen zu verschiedenen IoT-Technologien, -Systemen und -Diensten, die als Integrationskomponenten verfügbar sind.

Eine Steuerung entsteht im Home Assistant wie eine Erzählung: Sobald die Tür aufgeht und wenn das Licht nicht schon eingeschaltet ist, dann schalte das Licht ein, warte 40 Sekunden und schalte es wieder aus. Prosa im Home Assistant, Grafik in Node-RED. Das sind die Grundideen!

YouTube-Videos

Es gibt eine riesige Menge an YouTube–Videos, da fällt die Auswahl schwer. Probleme, die auftreten:

Trotzdem sind ein paar zu empfehlen. Simon42 spielt jede Woche ein neues Video auf YouTube ein und erklärt dabei – so gut wie fehlerfrei – immer neue Themen.

Wichtige Begriffe

Wer mit HA startet, wird vorerst mit einer Menge an Fachbegriffen konfrontiert. Aber keine Sorge, da gewöhnt man sich rasch daran. Hier eine Liste der wichtigsten Begriffe:

Entität: (etwas vereinfacht) eine Eigenschaft eines Geräts, die per Programm ausgelesen oder geändert werden kann. Ein Gerät hat meistens mehrere Entitäten. Jede Entität hat eine Nummer (für die interne Verarbeitung) und kann einen benutzerfreundlichen Namen bekommen (für den menschlichen Leser). Beispiele: Zustand eines Schalters, Temperatur in einem Raum, Wirkleistung eines Verbrauchers.

Automation: Die Automation ist das Herzstück der programmierten Steuerung für das automatische Heim. Eine Automation hat folgende Teile:

  1. Auslöser (mindestens einer) : Sobald bei wenigstens einem Auslöser ein Ereignis registriert wird, beginnt der Ablauf . Für Programmierer: eine ODER-Verknüpfung der Auslöser. Ereignisse sind oft Zustandsänderungen von Entitäten. Beispiel: ein Bewegungsmelder registriert eine Bewegung.

  2. Bedingung: keine bis beliebig viele. Alle Bedingungen müssen (falls vorhanden) erfüllt sein, damit der Ablauf fortgesetzt wird. Für Programmierer: eine UND-Verknüpfung. Bedingungen warten nicht darauf, dass sie zu einem späteren Zeitpunkt erfüllt werden: wird auch nur eine nicht erfüllt, wird der Ablauf abgebrochen. Beispiel: Ist es Tag = steht die Sonne über dem Horizont?

  3. Aktion (mindestens eine): Daten werden an Entitäten geschickt oder Befehle werden ausgeführt, bei mehreren Aktionen nacheinander. Beispiel: der Zwischenstecker wird umgeschaltet; die Lampe wird auf 60% Helligkeit gedimmt; eine andere Automation wird gestartet.

Wichtiger Hinweis: Beim Abspeichern bekommt die Automation einen Namen. Unbedingt auch den Bereich (z.B. Wohnzimmer) dazu geben – schon bei wenigen Automationen geht der Überblick sonst verloren. Beschreibungen, Kategorien und Labels können auch zusätzlich abgespeichert werden.

Helfer: Sie erfüllen, wie der Name schon sagt, Hilfsfunktionen. Beispiel: Ein Zeitplan, der für jeden Wochentag unterschiedliche Schaltzeitpunkte vorsieht. Jeder Helfer kann von mehreren Automationen verwendet werden.

Gerät: Ein Objekt mit (meist mehreren) Entitäten. Manche Geräte werden vom HA selbstständig erkannt, manche müssen eingepflegt werden. Beispiel: Sobald Zigbee-Geräte in den Pairing-Modus versetzt werden und im Programm Zigbee2MQTT das Pairen (Anlernen) aktiviert ist, werden neue Geräte erkannt und mit ihrer internen hexadezimalen Nummer in das System aufgenommen.

Tipps:

Integration: Gerätegruppen, die gemeinsam in den Home Assistant aufgenommen werden. Am besten an Hand von zwei Beispielen erklärt: MQTT und Tasmota sind Integrationen. Die Integration MQTT erlaubt die Aufnahme von Geräten, die über das Protokoll MQTT kommunizieren. Zur Aufnahme ist meistens das Pairen notwendig. Mit der Tasmota-Integration können Zwischenstecker, die mit der Tasmota-Software geflasht worden sind, automatisch in das System aufgenommen werden. Dasselbe gilt, wenn auf einem ESP32 die Tasmota-Firmware installiert ist: auch dieser ESP32 wird automatisch erkannt und in den Home Assistant aufgenommen. Voraussetzung: der MQTT-Server ist richtig eingetragen, ebenso MQTT-User und MQTT-Passwort.

Skript: Programmschritte, die in Automationen verwendet werden. Vergleichbar mit Unterprogrammen einer Programmiersprache.

Automation: Ein Beispiel

In meinem Arbeitszimmer gibt es eine Bücherwand mit Beleuchtung. Diese Beleuchtung soll über einen Taster ein- und ausgeschaltet werden. Dazu verwende ich einen Taster SOMRIG von IKEA, der bei mir T2-02 heißt: ein Taster mit 2 Knöpfen und der Nummer 02. Die Knöpfe sind mit 1 und 0 oder einem Punkt und zwei Punkten für Ein/On und Aus/Off beschriftet, können aber auch einzeln unterschiedlich verwendet werden.

bild-0015

Die Beleuchtung wird über einen Zwischenstecker mit der Bezeichnung: PL-81 geschaltet.

 

bild-0016

Immer dann, wenn einem Ereignis (hier: dem Drücken einer Taste) eine Aktion (hier: das Umschalten eines Verbrauchers) folgen soll, wird dazu im HA eine Automation eingerichtet.

bild-0005

Das heißt, dass das Drücken der On-Taste die Automation startet.

Als zweites kann eine Bedingung eingerichtet werden. Allerdings brauchen wir hier keine, der Eintrag bleibt leer.

bild-0017

Der Text zeigt als Beispiel eine nette Anwendung: Wenn Martin Weissenböck zuhause ist. (Korrekt wäre zu Hause.) Rund um das Heim wird ein Bereich festgelegt: wenn ich mich dort aufhalten, wird diese Bedingung erfüllt.

Als (einzige) Aktion folgt das Umschalten des Zwischensteckers PL-81 von Aus auf Ein bzw. von Ein auf Aus).

bild-0018

Das war's auch schon. Speichern, ausführen.

YAML

bild-0019

YAML ist ein Datenformat, das im Home Assistant zur Darstellung vieler Details, auch für Automationen, verwendet wird. Wer will, kann eine Steuerung mit YAML-Code statt über einen Text programmieren. Die gerade eingerichtete Automation sieht da so aus:

Ein zweites Beispiel

Sobald ich in mein Arbeitszimmer komme, möchte ich, dass die Beleuchtung des Bücherregals automatisch eingeschaltet wird. Dazu gibt es mehrere unterschiedliche Auslöser, nämlich einen Bewegungsmelder und eine Seitentür. Das Licht soll aber nur unter zwei Bedingungen eingeschaltet werden, nämlich (1) nur wenn es noch nicht brennt und (2) wenn es Tag ist, das heißt, wenn die Sonne über dem Horizont steht. Da das Licht vor allem zur Orientierung in einem dunklen Raum dient und das eigentliche Arbeitslicht von Hand eingeschaltet wird, wird die Beleuchtung des Bücherregals nach 40 Sekunden automatisch wieder ausgeschaltet.

Es gibt viele Möglichkeiten, diese Idee umzusetzen. Hier ist eine:

 

Im Detail:bild-0020

Steuerung für Bücherlicht ist der Name der Automation.

Der Satz beginnend mit Sobald ist etwas holprig, aber das liegt wohl an der Übersetzung. Es gibt zwei Auslöser, einer der zwei reicht aus – für Programmierer: eine ODER-Verknüpfung:

bild-0021

Jetzt kommen die zwei Bedingungen. Beide müssen erfüllt sein – für Programmierer: eine UND-Verknüpfung:

PL-81 ist der Zwischenstecker, über den die Lampen geschaltet werden. Wenn das Licht schon von vorher (etwa wie im ersten Beispiel) von Hand aus eingeschaltet worden ist, soll der Vorgang abgebrochen werden, weil sonst nach Ende der Verzögerungszeit das Licht ausgeschaltet wird, auch wenn es vorher von Hand aus eingeschaltet worden ist.

Nur wenn die Sonne unter dem Horizont steht, wird das Bücherregal beleuchtet.

bild-0022

Wenn alle Schritte bis hierher erfolgreich waren, dann folgt das Ein- und das verzögerte Ausschalten:

bild-0023

Das ist die YAML-Darstellung dieser Automation:

Und was bedeutet das restart in der letzten Zeile? Sobald einer der beiden Auslöser (Bewegungsmelder BM-11 oder Türkontakt TK-01) wieder auftritt, während die Automation noch läuft, wird die Automation von Anfang an neu begonnen. Anders formuliert: solange die Tür offen ist oder Bewegung registriert wird, geht das Licht nicht aus.

Dashboard, User Interface

Die beste Automation nützt nichts, wenn sie nicht benutzerfreundlich bedient werden kann. Diese Benutzeroberflächen heißen Dashboard oder User-Interface. Sie können über Smartphones, Tabletts oder Desktop-Computer bedient werden – am besten auf allen Geräten auf dieselbe Art. Die Darstellung passt sich an die Größe des Bildschirms an (responsive design).

Ja noch mehr: nehmen wir an, wir verwenden zum Steuern einer Stehlampe einen Zwischenstecker, der wahlweise über das Dashboard, über ein Programm (etwa zeitgesteuert) und direkt über den Taster am Zwischenstecker gesteuert wird. Dann soll das Symbol am Dashboard immer den Zustand des Schalters anzeigen – unabhängig davor, wie der Zwischenstecker umgeschaltet worden ist. Was bieten die beiden Programme dafür an?

Node-RED

Dafür gibt es in Node-RED leider nur unvollständige Lösungen, die auch mit selbstgeschriebenen Funktionen nicht alle Wünsche erfüllen.

Home Assistant

Im Home Assistant sind Dashboards (auch mehrere!) einfach grafisch zu erstellen oder zu ändern. Viele unterschiedliche grafische Elemente können zur optisch ansprechenden Gestaltung auf der Arbeitsfläche platziert werden.

Dieser Punkt geht eindeutig an den Home Assistant und kann ein ausschlaggebendes Merkmal bei der Wahl der Systeme sein.

Telegram: Nachrichten von zu Hause

Türen oder Fenster, die zu unerwarteten Zeitpunkten geöffnet werden? Täglicher Bericht über die Energiekosten oder den Wasserverbrauch? Überwachen der Temperatur in den Räumen? Wasseralarm im Keller? Beide Programme erlauben beliebigen Ereignissen das Aussenden von Nachrichten (Text oder Bilder) an einen Benutzer oder auch an eine Gruppe. Dazu gibt es Programmbausteine, die nur mit den Daten eines Telegram-Bots gefüllt werden und dann sofort einsatzbereit sind.

Über Telegram können auch Befehle an die Steuerung geschickt werden. Das ist allerdings ein gutes Stück komplizierter. Besser ist die folgende Lösung.

Unterwegs

 

bild-0024

Wäre es nicht schön, das Smart Home von unterwegs nicht nur überwachen, sondern auch steuern zu können? Auch hier bietet der Home Assistant ausgereifte Lösungen: mit der Home Assistant Cloud erscheint die komplette Benutzeroberfläche am Handy oder am Laptop – exakt in derselben Form wie vor Ort. Der Zugriff ist gesichert und läuft über die Server von Nabu Case, der Firma, die für den kommerziellen Teil der HA verantwortlich ist.

Zur Klarstellung:

Vergleich

Dieser Beitrag kann keinesfalls die Leistungsfähigkeit beider Systeme auch nur annähernd beschreiben. Jedoch sollte das Interesse geweckt werden!

Beim Home Assistant scheint die Regel zu gelten: Es gibt nichts, was es nicht gibt! Benutzer stellen ihre selbst entwickelten Programme anderen zur Verfügung.

Das Beste aus beiden Welten

Na gut, der Satz ist ein wenig belastet. Sei's drum! Node–RED und Home Assistant können gemeinsam verwendet werden: für Home Assistant gibt es das Add-on Node-RED! Anders formuliert: die Steuerung für das automatische Heim kann auch im HA mit Node-RED programmiert werden.

Zusammenfassung

Der Beitrag lädt dazu ein, sich mit Node-RED und Home Automation zu beschäftigen. Der Schwerpunkt liegt, auch in der Langversion, beim HA. Die Clubabende des ClubComputer und das Forum Smart Home | IoT werden in der Folge noch mehr zum Thema Wie automatisiere ich mein Heim? – vor allem mit dem HA – bieten.

Zur Langversion

Alle Zusatzinformationen sind in der Langversion zu finden. Ab dieser Ausgabe wird immer derselbe Link zu einer Übersichtsseite verwendet, von der auf die einzelnen Beiträge dieser Reihe verwiesen wird.

Link und QR-Code: https://pcnews.at/markdown/index.html

qrcode

Erstellt mit QR Code Generator – kostenfrei, ohne Login, ohne Konto: https://goqr.me/. Short URL erstellt mit https://t.ly/.

Copyright

copyright