FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jw9 am 08 Mai 2022, 21:43:15

Titel: Kommando immer zur vollen Stunde ausführen?
Beitrag von: jw9 am 08 Mai 2022, 21:43:15
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?
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: kleineslichtHH am 08 Mai 2022, 21:51:21
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
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: jw9 am 09 Mai 2022, 01:26:13
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.
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: LuckyDay am 09 Mai 2022, 01:34:38
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?
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: jw9 am 09 Mai 2022, 02:19:30
Das ist doch eine relative Zeitangabe, oder nicht?

Meines Wissens dauert ein Fussballspiel immer noch 90 Minuten..
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: MadMax-FHEM am 09 Mai 2022, 07:22:48
90min sind aber halt in HH:MM (trotzdem) 1h und 30min... ;)

Gruß, Joachim
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: Damian am 09 Mai 2022, 08:28:31
Alternativ:

define di_foobar DOIF {[:00]; fhem("set foobar off")}
Titel: Antw:Kommando immer zur vollen Stunde ausführen?
Beitrag von: betateilchen am 09 Mai 2022, 14:33:10
Popcorn für alle!