Hallo,
irgendwie stehe ich auf dem Schlauch...
Im Wesentlichen möchte ich das Analog zu folgendem crontab-Eintrag:
12 * * * * foo bar baz
Mit anderen Worten: ammer wenn der Minutenzeiger auf die "12" springt, ein Kommando ausführen. In meinem jugendlichen Leichtsinn hatte ich angenommen, dass das mit AT möglich sein sollte... Aber irgendwie passen hier Erwartung und Realisierung nicht so ganz zusammen.
Die naheliegende Variante
define foobar at *12:00 { fhem("set foobar off") }}
funktioniert nicht, weil das offensichtlich als HH:MM interpretiert wird und nicht als MM:SS.
Wie definieren ich ein Kommando, das immer dann ausgeführt wird, wenn der Minutenzeiger auf eine bestimmte Ziffer springt?
vielleicht hilft dir das hier weiter:
ZitatAttribute
alignTime
Nur für relative Definitionen: Stellt den Zeitpunkt der Ausführung des Befehls so, dass er auch zur alignTime ausgeführt wird. Dieses Argument ist ein timespec. Siehe oben für die Definition
Beispiel:
# Stelle sicher das es gongt wenn eine neue Stunde beginnt.
define at2 at +*01:00 set Chime on-for-timer 1
attr at2 alignTime 00:00
Abgesehen davon dass ich nicht ganz verstehe warum man die Kohle erst auf das Dach schleppt um sie dann durch den Kamin in den Keller zu schaufeln, scheint mir das Problem doch anderweitig gelagert zu sein:
define Bewaesserung_Rasen_off at +*00:60 { fhem("set Bewaesserung_Rasen off") }
attr Bewaesserung_Rasen_off alignTime 00:53
ergibt:
2022.05.09 01:08:14 1: define Bewaesserung_Rasen_off at +*00:60 { fhem("set Bewaesserung_Rasen off") }}: Wrong timespec 00:60: either HH:MM:SS or {perlcode}
Laut Doku ist HH:MM ein gültiges Format.
define Bewaesserung_Rasen_off at +*00:60:00 { fhem("set Bewaesserung_Rasen off") }
attr Bewaesserung_Rasen_off alignTime 00:20
ergibt
2022.05.09 01:20:15 1: define Bewaesserung_Rasen_off at +*00:60:00 { fhem("set Bewaesserung_Rasen off") }: Wrong timespec 00:60:00: either HH:MM:SS or {perlcode}
Laut Doku wäre auch HH:MM:SS ein gültiges Format.
define Bewaesserung_Rasen_off at +*01:00 { fhem("set Bewaesserung_Rasen off") }
attr Bewaesserung_Rasen_off alignTime 00:12
und ne Stunde schreibt man so
define Bewaesserung_Rasen_off at +*01:00 set Bewaesserung_Rasen off
attr Bewaesserung_Rasen_off alignTime 00:12
wo kopierst du den Mist eigentlich her?
Das ist doch eine relative Zeitangabe, oder nicht?
Meines Wissens dauert ein Fussballspiel immer noch 90 Minuten..
90min sind aber halt in HH:MM (trotzdem) 1h und 30min... ;)
Gruß, Joachim
Alternativ:
define di_foobar DOIF {[:00]; fhem("set foobar off")}
Popcorn für alle!