Smarthome: Home-Assistant-Automationen mit Und-/Oder-Bedingungen

Heizung, Lampen, TV, Steckdosen: All das kann man mit einem Home-Assistant-Server steuern. Sogar autmatisch und durch mehrere verknüpfte Bedingungen gesteuert.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 5 Min.
Von
  • Heinz Behling

Richtig sinnvoll wird ein Smarthome erst, wenn man sich möglichst wenig darum kümmern muss, also zum Beispiel ums Ab- und Anschalten der Heizung. Diese lästigen Aufgaben soll doch der Server übernehmen und automatisch für das richtige Ambiente sorgen.

Das kann er auch. Im Falle von Home Assistant sorgen die unter den Einstellungen zu findenden Automatiken für dieses Service. Allerdings muss man die erst programmieren und ihnen dabei mitteilen, wodurch die Automatik ausgelöst werden soll. Solche Auslöser können zum Beispiel bei der Heizung sein: Jemand ist zu Hause oder nicht, Fenster sind geöffnet oder die Außentemperatur unterschreitet einen bestimmten Wert.

Nun könnte man für jeden dieser Auslöser jeweils eine eigene Automatik anlegen, also beispielsweise:

  1. Fahre die Heiztemperatur runter, wenn niemand daheim ist
  2. Fahre die Heiztemperatur runter, wenn Fenster geöffnet sind
  3. Fahre die Heiztemperatur runter, wenn es außen wärmer als 16° ist

(Die Ab- beziehungsweise Anwesenheit kann man übrigens sehr gut mit einem Smartphone überprüfen, auf dem die Home-Assistant-App läuft.)

Der Auslöser in der Automatik zu 1 sähe dann so aus (dieses und alle folgenden Beispiel werden in der YAML-Ansicht gezeigt):

In der YAML-Ansicht einer Automatik sieht die Abwesenheitsprüfung so aus.

In diesem Fall muss man also Auslöser verknüpfen, genauer gesagt, sobald niemand zu Hause ist oder ein Fenster geöffnet oder es draußen zu warm ist, soll die Heiztemperatur herabgesetzt werden. Das wichtige bei dieser Bedingung ist das Wort "oder". Aber wie legt man das im Home Assistant an?

Die Oder-Verknüpfung macht uns Home Assistant recht einfach: Geben Sie einfach nacheinander alle Auslöser an. Im visuellen Editor der Automatik klicken Sie dazu nach Eingabe der ersten Bedingung auf Auslöser hinzufügen und geben den oder die weiteren Auslöser ein. Arbeiten Sie stattdessen in der YAML-Ansicht, setzen Sie die Programmzeilen für die weiteren Auslöser direkt unter dem ersten ein. Das sieht dann zum Beispiel so aus:

Mehrere Bedingungen, die Oder-verknüpft sein sollen, werden einfach nacheinander als Auslöser eingetragen.

Die Reihenfolge spielt dabei keine Rolle, denn es muss ja nur mindestens einer erfüllt sein, um die Automatik auszulösen.

Danach folgt dann die Aktion, die ausgeführt werden soll. Das wird genauso erledigt wie bei einer Automatik mit nur einem Auslöser und hier deshalb nicht beschrieben.

Dazu gehören dann aber auch die Automatiken mit den entsprechenden Gegenfunktionen, also:

  1. Fahre die Heiztemperatur rauf, wenn jemand daheim ist
  2. Fahre die Temperatur rauf, wenn die Fenster geschlossen sind
  3. Fahre die Temperatur rauf, wenn es außen kälter als 16° ist

Das sieht soweit alles logisch aus, ist es aber nicht: Ist es zum Beispiel draußen 23 Grad warm und es kommt jemand nach Hause, wird die Heiztemperatur hochgefahren. Das ist sicher nicht beabsichtigt.

Beim Wiederhochfahren der Heizung sieht die Sache also anders aus: Es soll ja nicht ausreichen, dass beispielsweise nur jemand nach Haus kommt. Zusätzlich müssen auch die Außentemperatur niedrig und die Fenster verschlossen sein. Wir brauchen also statt der Oder- eine Und-Verknüpfung mehrerer Auslöser.

Home Assistant hat diese Art der Verknüpfung etwas halbherzig umgesetzt: Man kann nach dem Auslöser (bei HA Trigger genannt) noch weitere in diesem Fall Bedingungen genannte Voraussetzungen angeben, die zusätzlich zum Auslöser erfüllt sein müssen, damit die Automatik ausgeführt wird. Das heißt, man muss sich also in diesem Beispiel für eine der drei Auslöser (zum Beispiel: jemand daheim) als Auslöser entscheiden und die beiden anderen (Fenster geschlossen, Außentemperatur zu niedrig) als zusätzliche Bedingung einsetzen.

Das hat aber einen großen Nachteil: Nur durch den Auslöser startet die Automatik, also wenn jemand nach Hause kommt. Wir brauchen dann also noch zwei weitere Automatiken, die jeweils eine der beiden anderen Konditionen als Auslöser haben und die beiden noch fehlenden als zusätzliche Bedingungen enthalten. Das ist lästig und wird, wenn man noch mehr Konditionen miteinander verknüpfen muss, schnell zu einem unübersichtlichen Wirrwarr.

In solchem Fall kann man zu einem Trick greifen: Als Auslöser wird etwas benutzt, das ohnehin regelmäßig in kurzen Abständen eintritt, die Veränderung des Time-Sensors. Wenn Sie mal ins Logbuch des Home Aisstatnt schauen, taucht dort in Minuten-Abstand diese Zeile auf:

Time kann ebenfalls als Automatik-Auslöser dienen.

Wenn man die Zeit nun als Auslöser einer Automatik benutzt und die drei Konditionen der Heizungssteuerung als zusätzliche Bedingungen einsetzt, die ja alle erfüllt sein müssen (und damit Und-verknüpft sind), hat man das Ziel erreicht. Wichtig: Man darf beim Zeit-Auslöser keine konkrete Uhrzeit angeben. Die entsprechenden Felder müssen leer bleiben.

Wenn Sie Zeit als Auslöser einsetzen, aber keine konkrete Zeit angeben, wird die Automatik in Minutenabstand ausgelöst.

Anschließend klicken Sie auf Bedingung hinzufügen und geben die drei Konditionen ein. Speichern nicht vergessen. Dann wird Ihnen der Home Assistant die Heizung wie gewünscht steuern.

(hgb)