FHEM: Lichtüberwachung mit Alexa
Mit Kindern im Haus kommt man häufig nicht mehr hinterher die Lichter in ungenutzten Räumen auszuschalten. Auch ist eine effiziente Steuerung des Lichts durch die gestiegenen Stromkosten gerade so aktuell wie noch nie. Da kann das Ausschalten nicht benötigter Lichter dazu beitragen, den Stromverbrauch zu reduziert und damit die Haushaltskasse entlasten. Auch der Umweltschutz spielt eine Rolle, da durch das Ausschalten der CO2-Ausstoß reduziert werden kann, da weniger Strom produziert werden muss. Um dieser Aufgabe in seinem Smart Home zu begegnen, stellt sich allerdings die Herausforderung zu erkennen, ob sich im Zimmer eine Person aufhält, die das Licht noch benötigt.
Hierzu können Präsenz- oder Bewegungsmelder zum Einsatz kommen. Da eine solche Lösung mit viel zusätzlicher Hardware verbunden wäre, habe ich mir in FHEM eine Lösung in Verbindung mit den ohnehin schon in nahezu jedem Raum vorhandenen Amazon Echos überlegt. Hierbei überwache ich die Brenndauer einer Lampe und gebe über das Echo-Gerät nach 30 Minuten eine Warnung aus, dass das Licht in einer Minute ausgeschaltet wird. Durch den Befehl „Alexa, Licht anlassen“ kann diese Abschaltung wieder abgebrochen werden. Räume wie z.B. das Esszimmer, in dem sich Personen häufiger über einen längeren Zeitraum aufhalten, sind bei uns allerdings von dieser Automation ausgenommen.
Grundlage für meine Lösung sind das von Michael Winkler gepflegte FHEM-Modul echodevice für die Ansteuerung der Echo-Geräte, ein Watchdog sowie ein DOIF. Außerdem sollte der Lichtaktor ein on-for-timer unterstützen. Die Einrichtung und Konfiguration des echodevice Moduls wird ausführlich im Blog von Michael Winkler erläutert, weshalb ich darauf nicht weiter eingehe.
Der erste Teil der Lösung ist ein Watchdog zur Überwachung des Lichts. Nach dem Einschalten prüft der Watchdog ob 30 Minuten später das Licht (AK_SZ_Licht) noch immer brennt und setzt in diesem Fall einen On-Timer von 60 Sekunden. Gleichzeitig wird auf dem Echo (ED_SZ_Echo2) die Meldung ausgegeben, dass das Licht in einer Minute ausgeschaltet wird und wie dies verhindert werden kann. Zuletzt wird der Watchdog getriggert.
define WD_SZ_Licht_aus watchdog AK_SZ_Licht:on.* 00:30:00 AK_SZ_Licht:off.* set AK_SZ_Licht on-for-timer 60 ;; set ED_SZ_Echo2 speak Licht wird in einer Minute ausgeschaltet. Zum Abbruch sage Alexa, Licht anlassen. ;; trigger WD_SZ_Licht_aus .
Der zweite Teil besteht aus einem DOIF, das die Spracheingaben des Echo-Geräts überwacht und auf ein „Alexa, Licht anlassen“ reagiert. In diesem Fall wird der Lichtaktor aus dem on-for-timer wieder in einen normalen On-Status zurückgesetzt und der Watchdog erneut getriggert, damit er in 30 Minuten erneut nachfragen kann.
define DI_SZ_Licht_weiter DOIF ([ED_SZ_Echo2:voice] eq "alexa licht anlassen") (set AK_SZ_Licht on) (trigger WD_SZ_Licht_aus .)
Das Konzept kann beliebig ausgebaut und angepasst werden. Es könnten unterschiedliche Timer je Raum verwendet werden, eine fehlende on-for-timer Funktion des Aktors könnte mit einem weiteren Watchdog ersetzt werden oder weitere Geräte im Raum abgeschaltet werden.