DOIF Zeitvorgabe durch dummy und keine Wiederholung

Begonnen von GunterB, 06 Juni 2024, 13:01:19

Vorheriges Thema - Nächstes Thema

GunterB

Warum wird folgendes DOIF trotz fehlendem Attribut "do always" am nächsten Tag wieder ausgeführt, und wie kann dies verhindert werden?

defmod DOIF_test_zeit DOIF ([[DUMM_test_zeit]]) {}
defmod DUMM_test_zeit dummy
setstate DUMM_test_zeit 12:58

Damian

Zitat von: GunterB am 06 Juni 2024, 13:01:19Warum wird folgendes DOIF trotz fehlendem Attribut "do always" am nächsten Tag wieder ausgeführt, und wie kann dies verhindert werden?

defmod DOIF_test_zeit DOIF ([[DUMM_test_zeit]]) {}
defmod DUMM_test_zeit dummy
setstate DUMM_test_zeit 12:58

Kann ich bei mir nicht bestätigen. Am nächsten Tag wird im DOIF-Device zwar die Zeit aktualisiert, aber wenn der Zustand auf cmd_1 steht, wird die Ausführung nicht noch mal vorgenommen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

Haben Einzeiler nicht das virtuelle do always?!

GunterB

D.h. der gesetzte timer_01_c01 würde bei cmd_1 nicht zu einer Ausführung führen?

defmod DOIF_test_zeit DOIF ([[DUMM_test_zeit]]) {\
fhem("");;\
}
attr DOIF_test_zeit DbLogExclude .*

setstate DOIF_test_zeit cmd_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd 1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_event timer_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_nr 1
setstate DOIF_test_zeit 2024-06-06 14:29:04 mode enabled
setstate DOIF_test_zeit 2024-06-06 14:30:00 state cmd_1
setstate DOIF_test_zeit 2024-06-06 14:33:00 timer_01_c01 07.06.2024 14:33:00

GunterB

DOIF_RL3... hat "do always" DOIF_RL9... nicht.
Bei mir sieht das so aus:



defmod DOIF_RL3_DOWN DOIF ([[RL3_DOWN_time]]) {
perlcode...
}
attr DOIF_RL3_DOWN DbLogExclude .*
attr DOIF_RL3_DOWN do always

setstate DOIF_RL3_DOWN cmd_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd 1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd_event timer_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd_nr 1
setstate DOIF_RL3_DOWN 2024-05-14 18:13:36 mode enabled
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 state cmd_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 timer_01_c01 06.06.2024 21:41:04


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

setstate RL3_DOWN_time 21:41:04
setstate RL3_DOWN_time 2024-06-05 18:00:04 state 21:41:04


defmod DOIF_RL9_DOWN DOIF ([[RL9_DOWN_time]]) {
perlcode...
}
attr DOIF_RL9_DOWN DbLogExclude .*

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-06-05 17:59:00 timer_01_c01 06.06.2024 17:59:00

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

setstate RL3_DOWN_time 21:41:04
setstate RL3_DOWN_time 2024-06-05 18:00:04 state 21:41:04

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

setstate RL9_DOWN_time 17:59
setstate RL9_DOWN_time 2024-06-03 18:00:04 state 17:59


Damian

Zitat von: GunterB am 06 Juni 2024, 14:50:23DOIF_RL3... hat "do always" DOIF_RL9... nicht.
Bei mir sieht das so aus:



defmod DOIF_RL3_DOWN DOIF ([[RL3_DOWN_time]]) {
perlcode...
}
attr DOIF_RL3_DOWN DbLogExclude .*
attr DOIF_RL3_DOWN do always

setstate DOIF_RL3_DOWN cmd_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd 1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd_event timer_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 cmd_nr 1
setstate DOIF_RL3_DOWN 2024-05-14 18:13:36 mode enabled
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 state cmd_1
setstate DOIF_RL3_DOWN 2024-06-05 21:41:05 timer_01_c01 06.06.2024 21:41:04


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

setstate RL3_DOWN_time 21:41:04
setstate RL3_DOWN_time 2024-06-05 18:00:04 state 21:41:04


defmod DOIF_RL9_DOWN DOIF ([[RL9_DOWN_time]]) {
perlcode...
}
attr DOIF_RL9_DOWN DbLogExclude .*

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-06-05 17:59:00 timer_01_c01 06.06.2024 17:59:00

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

setstate RL3_DOWN_time 21:41:04
setstate RL3_DOWN_time 2024-06-05 18:00:04 state 21:41:04

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

setstate RL9_DOWN_time 17:59
setstate RL9_DOWN_time 2024-06-03 18:00:04 state 17:59

Zitat von: GunterB am 06 Juni 2024, 14:45:15D.h. der gesetzte timer_01_c01 würde bei cmd_1 nicht zu einer Ausführung führen?

defmod DOIF_test_zeit DOIF ([[DUMM_test_zeit]]) {\
fhem("");;\
}
attr DOIF_test_zeit DbLogExclude .*

setstate DOIF_test_zeit cmd_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd 1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_event timer_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_nr 1
setstate DOIF_test_zeit 2024-06-06 14:29:04 mode enabled
setstate DOIF_test_zeit 2024-06-06 14:30:00 state cmd_1
setstate DOIF_test_zeit 2024-06-06 14:33:00 timer_01_c01 07.06.2024 14:33:00
Zitat von: GunterB am 06 Juni 2024, 14:45:15D.h. der gesetzte timer_01_c01 würde bei cmd_1 nicht zu einer Ausführung führen?

defmod DOIF_test_zeit DOIF ([[DUMM_test_zeit]]) {\
fhem("");;\
}
attr DOIF_test_zeit DbLogExclude .*

setstate DOIF_test_zeit cmd_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd 1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_event timer_1
setstate DOIF_test_zeit 2024-06-06 14:30:00 cmd_nr 1
setstate DOIF_test_zeit 2024-06-06 14:29:04 mode enabled
setstate DOIF_test_zeit 2024-06-06 14:30:00 state cmd_1
setstate DOIF_test_zeit 2024-06-06 14:33:00 timer_01_c01 07.06.2024 14:33:00

ja, um 14:33 wurde der Timer erhöht aber nicht cmd neu gesetzt, damit gibt es keine erneute Ausführung
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF