FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: GunterB am 04 August 2024, 22:23:52

Titel: DOIF, warum wird cmd_1 nicht ausgeführt?
Beitrag von: GunterB am 04 August 2024, 22:23:52
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
Titel: Aw: DOIF, warum wird cmd_1 nicht ausgeführt?
Beitrag von: Per am 05 August 2024, 06:45:04
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
Titel: Aw: DOIF, warum wird cmd_1 nicht ausgeführt?
Beitrag von: GunterB am 06 August 2024, 21:39:29
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.

Titel: Aw: DOIF, warum wird cmd_1 nicht ausgeführt?
Beitrag von: Per am 06 August 2024, 23:38:04
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.