AT an einem bestimmten Wochentag ausführen

Aus FHEMWiki
Wechseln zu: Navigation, Suche

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.