AT zu einem absoluten Datum ausführen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(Diverse Edits zusammengefasst) |
||
| (7 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Mit dem Befehl | Mit dem Befehl [[at]] können in FHEM Aktionen zu einem definierten Zeitpunkt ausgeführt werden: | ||
<nowiki>define morgens_Licht_an at *07:15:00 set Licht1 on</nowiki> | <nowiki>define morgens_Licht_an at *07:15:00 set Licht1 on</nowiki> | ||
Es können | Es können relative und absolute Uhrzeiten, sowie ein bestimmtes Datum definiert werden. | ||
<nowiki>define Licht_25_Januar_an at 2011-01-25T07:15:00 set Licht1 on</nowiki> | |||
<nowiki>define morgens_Licht_Wochenende at *07:15:00 {if (!($we)) set Licht1 on }</nowiki> | Die Ausführung kann an Bedingungen geknüpft sein, wie z.b. bestimmte Wochentage oder nur am Wochenende: | ||
<nowiki>define morgens_Licht_Wochenende at *07:15:00 {if (!($we)) {fhem("set Licht1 on")} }</nowiki> | |||
Theoretisch kann auf die selbe Art kann auch auf ein Ausführungsdatum geprüft werden. | |||
<nowiki>define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) {fhem("set Licht1 on")} }</nowiki> | <nowiki>define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) {fhem("set Licht1 on")} }</nowiki> | ||
| Zeile 14: | Zeile 17: | ||
Da dieser Fall nur einmal zutrifft, ist es sinnvoll, die Aktion nach Auslösung zu löschen, damit nicht nach dem 25. Januar 2011 weiter täglich geprüft wird, ob das Datum nochmal auftritt: | Da dieser Fall nur einmal zutrifft, ist es sinnvoll, die Aktion nach Auslösung zu löschen, damit nicht nach dem 25. Januar 2011 weiter täglich geprüft wird, ob das Datum nochmal auftritt: | ||
<pre>define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) \ | |||
{fhem "set Licht1 on | {fhem ("set Licht1 on; delete Licht_25_Januar_an"} }</pre> | ||
Grundsätzlich erfordert die Lösung, täglich bei Erreichen der gewünschten Uhrzeit zu prüfen ob der richtige Tag erreicht wurde, mehr Code und ist auch Perfomanceseitig ungünstiger. Das dies als Lösung des Problems gelegentlich empfohlen wird, basiert auf der verbreiteten, aber falschen Annahme, dass als Zeitpunkt kein bestimmtes Datum definiert werden könne. | |||
Siehe auch | |||
* [[At]] | |||
* [[Trick_der_Woche#Januar_2018]] | |||
[[Kategorie:Code Snippets]] | [[Kategorie:Code Snippets]] | ||
Aktuelle Version vom 19. Dezember 2025, 23:49 Uhr
Mit dem Befehl at können in FHEM Aktionen zu einem definierten Zeitpunkt ausgeführt werden:
define morgens_Licht_an at *07:15:00 set Licht1 on
Es können relative und absolute Uhrzeiten, sowie ein bestimmtes Datum definiert werden.
define Licht_25_Januar_an at 2011-01-25T07:15:00 set Licht1 on
Die Ausführung kann an Bedingungen geknüpft sein, wie z.b. bestimmte Wochentage oder nur am Wochenende:
define morgens_Licht_Wochenende at *07:15:00 {if (!($we)) {fhem("set Licht1 on")} }
Theoretisch kann auf die selbe Art kann auch auf ein Ausführungsdatum geprüft werden.
define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) {fhem("set Licht1 on")} }
In diesem Fall wird täglich um 7:15 Uhr geprüft, ob der 25. Januar 2011 ist und falls ja, wird die Aktion ausgeführt.
Da dieser Fall nur einmal zutrifft, ist es sinnvoll, die Aktion nach Auslösung zu löschen, damit nicht nach dem 25. Januar 2011 weiter täglich geprüft wird, ob das Datum nochmal auftritt:
define Licht_25_Januar_an at *07:15:00 {if($year==2011 && $month==1 && $mday==25) \
{fhem ("set Licht1 on; delete Licht_25_Januar_an"} }
Grundsätzlich erfordert die Lösung, täglich bei Erreichen der gewünschten Uhrzeit zu prüfen ob der richtige Tag erreicht wurde, mehr Code und ist auch Perfomanceseitig ungünstiger. Das dies als Lösung des Problems gelegentlich empfohlen wird, basiert auf der verbreiteten, aber falschen Annahme, dass als Zeitpunkt kein bestimmtes Datum definiert werden könne.
Siehe auch