DOIF, warum wird cmd_1 nicht ausgeführt?

Begonnen von GunterB, 04 August 2024, 22:23:52

Vorheriges Thema - Nächstes Thema

GunterB

Hallo zusammen,

ich habe einen dummy, dem ich je nach Bedarf, täglich eine Uhrzeit setze.
Je nach dem, ob der Rollladen generell runterfahren soll, oder eventuell garnicht.

Jetzt habe ich das Problem, dass ich eine Uhrzeit sezte, und der Perl-Code nicht ausgeführt wird.
timer_01_c01 wechselt aber bei erreichen der Uhrzeit, zum nächsten Tag.

Könnte mir das jemand erklären?


defmod DOIF_RL9_DOWN DOIF ([[RL9_DOWN_time]]) {<...div Perl Code...>}

setstate DOIF_RL9_DOWN cmd_1
setstate DOIF_RL9_DOWN 2024-06-05 17:59:00 cmd 1
setstate DOIF_RL9_DOWN 2024-06-05 17:59:00 cmd_event timer_1
setstate DOIF_RL9_DOWN 2024-06-05 17:59:00 cmd_nr 1
setstate DOIF_RL9_DOWN 2024-06-05 07:54:08 mode enabled
setstate DOIF_RL9_DOWN 2024-06-05 17:59:00 state cmd_1
setstate DOIF_RL9_DOWN 2024-08-04 22:11:00 timer_01_c01 05.08.2024 22:11:00

defmod RL9_DOWN_time dummy
attr RL9_DOWN_time DbLogExclude .*
attr RL9_DOWN_time room 11.1_Zeiten

setstate RL9_DOWN_time 22:11
setstate RL9_DOWN_time 2024-08-04 22:10:24 state 22:11

Per

Schau mal in den Event Monitor, was zu der Zeit passiert. Vllt läuft ja auch der Perl Code nicht durch.

Und setz probeweise mal attr do always

GunterB

Hallo,

Events gibt es keine vom Device. Der Timer wird aber um einen Tag weiter gestellt.
Der Perl Code läuft... daran liegts nicht, ich kann mit initialize (und der Zeit) oder cmd_1 auch den Code ausführen.

Das do always ändert aber die Sache.
Dann geht es.


Per

Irgendwie hatte ich in Erinnerung, dass "Einzeiler" automatisch intern do always gesetzt haben. Scheint nicht (mehr?) so zu sein.
Du kannst aber auch ganz in den Perl Mode wechseln, dann brauchst du do always auch nicht.