AT an einem bestimmten Wochentag ausführen
at Zielvorgabe:
An jedem Mittwoch um 21:00 Uhr soll ein Schaltaktor (hier das FHEM-Gerät "Signallampe") einen Verbraucher ein- und fünf Minuten später wieder ausschalten.
Vorbemerkung zu den Wochentagen: Wochenbeginn ist in Perl der Sonntag, welcher mit 0 definiert ist, also ist 3 = Mittwoch, 4 = Donnerstag usw.
Der Befehl für die Konfiguration dazu lautet (als Einzeiler, kein Zeilenumbruch) wie folgt:
define Licht4An at *21:00:00 { if ($wday == 3) { fhem ("set Signallampe on ;; define Licht4Aus at +00:05:00 set Signallampe off ") } }
Mehrzeiler:
define Licht4An at *21:00:00 {\ if ($wday == 3) {\ fhem ("set Signallampe on");;\ fhem ("define Licht4Aus at +00:05:00 set Signallampe off ")\ }\ }
Im Detail:
- define Licht4An => lege ein neues Objekt Licht4An und ...
- at *21:00:00 => ... prüfe immer um 21:00 Uhr ...
- if ($wday == 3) => ... ob der 3. Wochentag ist, wenn ja dann ...
- fhem ("set Signallampe on");; => ... soll FHEM die Signallampe einschalten und ...
- fhem ("define Licht4Aus => noch ein Objekt Licht4Aus anlegen ...
- at +00:05:00 => ... welches in 5 Minuten ...
- set Signallampe off") => ... die Signallampe wieder ausschaltet.
Das Objekt Licht4Aus wird in der FHEM-Weboberfläche nur in den knapp 5 Minuten sichtbar, wo die Signallampe eingeschaltet ist, also bitte nicht wundern, dass nur Licht4An in der Übersicht auftaucht.
Weiterführende Hinweise
- Bei vielen Geräten ist es möglich, diese mit den modifizierten Anschaltbefehlen on-for-timer oder on-till ... zu einem bestimmten Zeitpunkt direkt auch wieder auszuschalten. Wird dieses - ggf. über die set extensions - unterstützt, benötigt man keine derart geschachtelte Definition. Dies hat bei entsprechender Hardware (z.B. HomeMatic) den weiteren Vorteil, dass die Überwachung des Ausschalt-Timers direkt dem Aktor erfolgt.
- Das Attribut disabledForIntervals kann ebenfalls für eine Wochentagssteuerung genutzt werden.
- Komplexere Wochentagssteuerungen sind mit den Modulen WeekdayTimer und DOIF möglich.
- Weitere Erläuterungen zur Verwendung des Perl-if finden Sie hier.