Die Idee ist einfach. Das Hoflicht soll nicht nur mit einem Taster an und ausgeschalten werden, sondern auch mit einem Bewegungsmelder.
Der Bewegungsmelder: EQ3 HomeMatic Funk Bewegungsmelder außen 131777 und der SchaltAktor: EQ3 91836 HomeMatic Funk-Schaltaktor 4-fach, Hutschienenmontage sind bereits an FHEM angelernt.
In meinem Beispiel habe ich den Namen des Schaltaktors „HM_4F7FFF_Sw_01“ durch HofLicht ersetzt. Das lässt sich besser lesen.
notify schaltet Licht an
Erkennt der Bewegungsmelder „HM_390B00“ eine Bewegung, wechselt sein Status in „motion“. Auf diesen Status setzen wir unser Notify und schalten damit das Hof-Licht ein:
define BewegungHof notify HM_390B00:motion set HofLicht on
Der von mir eingesetzte Bewegungsmelder liefert auch Helligkeitswerte mit. Damit sind wir in der Lage, dass Hoflicht nur einzuschalten, wenn es auch wirklich dunkel ist. Den Wert für die Helligkeit müsst Ihr jedoch ausprobieren. Die Werte hängen vom Model und Aufstellungsort ab.
define BewegungHof notify HM_390B00:motion \
{if (ReadingsVal("HM_390B00","brightness","")<90) \
{fhem("set HofLicht on")} }
Licht per Taster anschalten
define FunkSender_Taste1 notify HM_4BC983_Btn_02 set HofLicht toggle
Ich verwende hier toggle zur Änderung des Schaltzustandes. Damit benötigen wir nur eine Taste bzw. Kanal.
Als Komfort-Funktion schaltet bei mir auch der Türkontakt das Licht ein. Jedoch nur, wenn es dunkel ist.
define LICHT_AN_TUER_AUF notify HM_4EE60B:open \
{if (ReadingsVal("HM_390B00","brightness","")<110) \
{fhem("set HofLicht on")} }
Das Lich muss auch wieder aus
Nun müssen wir noch dafür sorgen, dass das Hoflicht auch wieder ausgeht. Dabei müssen Wir jedoch ein paar Sachen beachten.
– Wenn die Tür geschlossen wird, soll das Licht ausgehen, es sei den der Bewegungsmelder ist im Status „motion“.
-Wird keine Bewegung auf dem Hof mehr erkannt, soll das Licht ausgehen.
-Wurde das Licht mit dem Schalter ausgemacht, oder die Tür nicht geschlossen, was auch immer, soll das Licht nach 30 Minuten ausgehen.
Hierfür nutzen wir einen Wachdog:
define LICHT_AUS_TUER_ZU watchdog HM_4EE60B:closed 00:00:30 HM_390B00:motion \
IF ([HM_390B00] eq "noMotion") (set HofLicht1 off)
attr watchdogFLBewegungsMelder autoRestart 1
Wechselt der Status auf noMotion wird mit einer Verzögerung von 30 Sekunden das Licht ausgeschalten:
define watchdogFLBewegungsMelder watchdog HM_390B00:noMotion 00:00:30 HM_390B00:motion \
set HofLicht off
attr watchdogFLBewegungsMelder autoRestart 1
Das Attribut autoRestart 1 sorgt dafür, dass der Watchdog nach dem Trigger wieder in den Zustand defined zurückgesetzt wird. Damit ist der Watchdog für eine erneute Auslösung bereit. Setstate zum zurücksetzen eines Status, soll nicht mehr verwendet werden! (setstate watchdog_BewegungsMelder_Hof defined)
Da wir schon einmal beim Watchdog sind, richten wir gleich noch eine zweite Überwachung ein. Wenn vergessen wird, dass Hoflicht auszuschalten, dann soll es nach 30 Minuten automatisch aus gehen.
define watchdogHoflicht_AUS watchdog HofLicht:on 00:30:00 HofLicht:off set HofLicht off
attr watchdogHoflicht_AUS autoRestart 1
Alternativ kann der Timer zum Ausschalten auch schon beim Notify gesetzt werden:
define FunkSender_Taste1 notify HM_4BC983_Btn_02 set HofLicht on;;\
define spaeter_aus at +00:03:30 set HofLicht off
Hierbei wird beim Einschalten des Lof-Lichts mittels FunkSchalter auch gleich der Timer zum Ausschalten ausschalten gestartet. Jedoch finde ich die Lösung mit einem seperaten Watchdog besser.
Ich hoffe die Code-Beispiele können den Einen oder Anderen bei seiner FHEM-Installation helfen.