Intelligente FHEM-Zeitschaltuhr mit DOIF

Smarthome
FHEM Zeitschaltuhr mit DOIF

Wie wäre es, wenn Ihr nach Hause kommt und das Licht im Flur automatisch angeht? Macht dies aber zu jeder Tageszeit Sinn oder müsste es nicht viel mehr abhängig von Wetter und Tageslicht geschaltet werden? Vor einigen Jahren war die Realisierung einer intelligenten FHEM-Zeitschaltuhr noch relativ umständlich. Zeitliche Events wurden ausschließlich mit dem AT-Befehl definiert, schon vorhandene Events anderer Geräte konnten mit NOTIFY abgefangen werden. Möchte man etwas zeitverzögert schalten, und dies von dem Ausbleiben eines weiteren Ereignisses abhängig machen, musste dies mit dem WATCHDOG-Modul realisiert werden. Es war also immer ein kompliziertes Zusammenspiel aller 3 Module.

Am 21.4.2014 wurde dann von Damian im FHEM-Forum die Entwicklung eines neuen Moduls mit dem Namen DOIF angekündigt, das die Funktionalität von den oben genannten Modulen unter einem Dach vereint und die Nutzung daher stark vereinfacht. Ich hatte zu diesem Zeitpunkt schon alle meine Automatisierungen auf die klassische Art umgesetzt und daher keine Lust, dies alles wieder über den Haufen zu werfen. In diesem Artikel möchte ich verschiedene Praxisbeispiele für die Nutzung von DOIF aufzeigen, die ich im Laufe meiner Umstellung realisieren werde. Ein großes Dankeschön an Damian, für die Entwicklung dieses grandiosen Moduls.

Voraussetzung

Natürlich benötigt Ihr für die FHEM-Zeitschaltuhr eine laufende FHEM-Installation, um die Tipps in diesem Artikel umzusetzen. Wenn Ihr nur zeitgesteuert schalten wollt, benötigt Ihr natürlich keine Dämmerungs- und Anwesenheitserkennung. Trotzdem kann es Sinn machen, alles miteinander zu kombinieren.

Wie wird ein DOIF angelegt?

Je nach Komplexität kann es in einer DOIF-Definition durchaus recht unübersichtlich werden. FHEM bringt von Haus aus einen erweiterten Editor mit, der Syntaxhighlighting unterstützt, so dass Ihr zumindest eine farbliche Darstellung bekommt und Fehler hierdurch schneller erkennt. Aktiviert wird er für die jeweils genutzte WEB-Definition folgendermaßen:

fhem_web_codemirror

DOIF nutzt die folgenden Syntax:

Damit der Editor beim Anlegen der DOIF-Bedingung auch genutzt werden kann, ist es notwendig zuerst ein leeres DOIF-Objekt anzulegen und es hinterher mit dem Editor zu bearbeiten. Da man für die Definition aber eine gültige Bedingung angeben muss, habe ich es mir angewöhnt, hier einfach eine beliebige Zeitangabe anzugeben und diese nach dem Anlegen dann wieder zu editieren.

Dieser DOIF würde also um 12:00 ausgelöst werden, allerdings nichts tun, da keine Befehle angegeben wurden. Damit ich das Objekt wiederfinde, wird auch gleich ein Raum zugeordnet.

Mit einem Klick auf „DEF“ öffnet sich nun der Codemirror-Editor wie auf dem folgenden Bild zu sehen ist. Die Änderungen werden über den Button „modify di_test“ gespeichert.

fhem_doif_editor_aufrufen

FHEM-Zeitschaltuhr mit DOIF in der Praxis

Weihnachtsbeleuchtung schalten

Da die Weihnachtsbeleuchtung aus mehr als einer Lichterkette besteht, habe ich alle verwendeten Funksteckdosen mit dem Modul STRUCTURE zusammengefasst. Dies vereinfacht das Schalten, da nur noch ein Befehl ausgeführt werden muss.

Bei „wz_beleuchtung1+2“ und „ku_beleuchtung3“ handelt es sich um die Namen meiner Steckdosenschalter. Die „clientstate“-Angaben bewirken, dass der Status von dem STRUCTURE auf „on“ steht, wenn mindestens eines der angegeben Devices eingeschaltet ist.

Auf folgenden Weg schalte ich zu bestimmten Zeiten und abhängig von der Dämmerung die Weihnachts-Lichterketten und Weihnachtsdeko, die von draußen sichtbar ist:

Das DOIF wird im Anschluss folgendermaßen angepasst:

Ich möchte, dass die Weihnachtsbeleuchtung zwischen 6:30 und 9:00 und 13:00 und 23:00 eingeschaltet wird. Allerdings nur, wenn es auch wirklich dunkel ist, der Twilight-Light Wert also kleiner 5 ist. Achtet bei der logischen Verknüpfung von Bedingungen auf die Klammersetzung.

Weihnachtsbaum einschalten bei Anwesenheit

Ähnlich wie im vorherigen Beispiel schalte ich den Weihnachtsbaum. Einziger Unterschied: Ich möchte, dass er sich ausschaltet, sobald ich die Wohnung verlasse und sich wieder einschaltet, wenn ich nach Hause komme.

Das DOIF wird folgendermaßen angepasst:

„wz_xmastree“ ist der Name der Funksteckdose, „Anwesenheit“ der STRUCTURE, den wir im Blogartikel über die Anwesenheitserkennung angelegt haben.

Nun wünsche ich viel Spaß mit Eurer intelligenten FHEM-Zeitschaltuhr. Wenn Ihr Fragen, Anregungen oder Verbesserungsvorschläge habt, schreibt sie gerne unten in die Kommentare.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.