Ich habe eine dummy-Variable mit datetimepicker, welche das Datum/Uhrzeit für eine Aktion festlegt.
Internals:
FUUID 5ffc8478-f33f-5615-4e4f-4844391aa05a0879
NAME Fhem_cntr_summer
NR 1864
STATE 2021-01-07T01:00:36
TYPE dummy
.attraggr:
.attrminint:
OLDREADINGS:
READINGS:
2021-01-27 23:31:57 state 2021-01-07T01:00:36
Attributes:
DbLogExclude .*
alias Zeitpunkt Fhem Steuerung für Sommer aktiv
comment Soll dem absoluten at dienen, um den Zeitpunkt (Format: YYYY-MM-DD_hh:mm:ss)
zum Aktivieren von Kontrollstrukturen, die nur im Sommer relevant sind, festzulegen
group Allgemein
icon time_calendar@lightgreen
room Einstellungen
setList state:datetime,inline:true,theme:default,format:Y-m-d\TH:i:s
webCmd state
Das Format des dummy gibt das Zeitformat für ein AT m. E. richtig aus (YYYY-MM-DDThh:mm:ss)
Ein def at_name at {Value("Fhem_cntr_summer")} {....}
wird mit der Meldung: "the function "Value("Fhem_cntr_summer")" must return a timespec and not 2021-01-07T01:00:36. "
abgelehnt. Was übersehe ich da?
Wenn das dummy im state zum Beispiel nur einen Zeitstempel (hh:mm:ss) enthält, funktioniert es.
Laut Ref. "<datespec> ist entweder ISO8601 (YYYY-MM-DDTHH:MM:SS) oder Anzahl der Sekunden seit 1970 oder {perlfunc()}. " sollte es funktionieren.
Ich möchte das AT aber einmal zu einem bestimmten, variable festlegbaren Datum/Uhrzeit ausführen.
VG
Alex
Unabhängig vom Problem, dass die Zeitangabe nicht akzeptiert wird, stellt sich mir gerade folgende Frage:
Dir ist schon klar, dass der absolute Ausführungszeitpunkt des at beim DEFINE berechnet wird? Selbst wenn Du die Zeitangabe im at über eine perl Funktion berechnest, wird sich der Ausführungszeitpunkt des at nicht automatisch verändern, wenn Du die Parameter der Funktion änderst.
Zitat von: betateilchen am 28 Januar 2021, 11:54:26
Unabhängig vom Problem, dass die Zeitangabe nicht akzeptiert wird,
define test_at at 2021-01-07T01:00:36 {}
Das ist echt ein lustiges Problem. Ich habe auf zwei FHEM Systemen getestet.
Auf einem System funktioniert das Anlegen offenbar (!) wie im Screenshot zu sehen.
Aber in Wirklichkeit ist das device nicht vorhanden. Es kann weder gelöscht werden noch kann man seine raw definition anschauen.
Auf dem zweiten System funktioniert das Anlegen gar nicht und im Log steht nur die Meldung
2021.01.28 12:01:40 3: test_at: HASH(0x555cdfd00f48)
Das sollte sich Rudi mal anschauen. Dazu müsstest Du aber den Thread in das richtige Unterforum verschieben.
Zitat von: betateilchen am 28 Januar 2021, 12:03:24
define test_at at 2021-01-07T01:00:36 {}
Das ist echt ein lustiges Problem. Ich habe auf zwei FHEM Systemen getestet.
Auf einem System funktioniert das Anlegen offenbar (!) wie im Screenshot zu sehen.
Aber in Wirklichkeit ist das device nicht vorhanden. Es kann weder gelöscht werden noch kann man seine raw definition anschauen.
Auf dem zweiten System funktioniert das Anlegen gar nicht und im Log steht nur die Meldung
2021.01.28 12:01:40 3: test_at: HASH(0x555cdfd00f48)
Das sollte sich Rudi mal anschauen. Dazu müsstest Du aber den Thread in das richtige Unterforum verschieben.
Weil der Zeitpunkt für die Ausführung des at in der Vergangenheit liegt wird es gar nicht wirklich erstellt bzw. gleich wieder gelöscht.
Gruß
Dan
Da hast Du natürlich völlig recht. Irgendwie war ich bei der Datumsangabe gedanklich die ganze Zeit beim 01.07. weil im device auch was von Sommer steht.
Zitat
Kontrollstrukturen, die nur im Sommer relevant sind,
Was für ein blöder Fehler von mir 8)
Sowas kommt davon, wenn man im Zug sitzt und nur ein Tablet zur Verfügung hat...
Okay das ist verständlich.
Aber : @ Betateilchen:
Zitat
Dir ist schon klar, dass der absolute Ausführungszeitpunkt des at beim DEFINE berechnet wird? Selbst wenn Du die Zeitangabe im at über eine perl Funktion berechnest, wird sich der Ausführungszeitpunkt des at nicht automatisch verändern, wenn Du die Parameter der Funktion änderst.
verstehe ich nicht so ganz:
Laut Referenz
Zitat
<datespec> ist entweder ISO8601 (YYYY-MM-DDTHH:MM:SS) oder Anzahl der Sekunden seit 1970 oder {perlfunc()}.
könnte ich doch den Ausführungszeitpunkt (der natürlich in der Zukunft liegen sollte) via perlfkt() bereitstellen, oder nicht?
Gruß
Alex
Zitat von: Homalix99 am 28 Januar 2021, 21:28:47
Laut Referenzkönnte ich doch den Ausführungszeitpunkt (der natürlich in der Zukunft liegen sollte) via perlfkt() bereitstellen, oder nicht?
Ja, aber die Funktion wird nur
einmalig beim define ausgeführt, der tatsächliche AusführungsZeitpunkt wird dabei berechnet und FHEM-intern abgespeichert. Danach spielt die Funktion keine Rolle mehr.
Okay, verstanden. Vielen Dank!
Gruß
Alex