DOIF timer update aus FTUI funktioniert nicht

Begonnen von saise, 04 Februar 2019, 22:58:26

Vorheriges Thema - Nächstes Thema

saise

Guten Abend,

ich habe ein seltsames Verhalten mit DOIF im Zusammenhang mit FTUI beobachtet.

Die Definition meines DOIFs ist wie folgt:

define DOIF_NL_Gang DOIF (["$SELF:P_dauerbetrieb: on"] or [[$SELF:P_mybegin,"06:00"]])(set EG_Wohnzimmer_Lampe_Spots on) DOELSEIF (["$SELF:P_dauerbetrieb: off"] or [[$SELF:P_myend,"19:00"]])(set EG_Wohnzimmer_Lampe_Spots off)
attr DOIF_NL_Gang cmdState on|off
attr DOIF_NL_Gang readingList P_dauerbetrieb P_mybegin P_myend P_mybeginHour P_mybeginMinute P_myendMinute P_myendHour P_aktiv
attr DOIF_NL_Gang setList P_dauerbetrieb:on,off P_aktiv:on,off P_mybegin:time P_myend:time
attr DOIF_NL_Gang room Obergeschoss

define DOIF_NL_Gang_Set DOIF ([DOIF_NL_Gang:P_mybeginHour] or [DOIF_NL_Gang:P_mybeginMinute] or [DOIF_NL_Gang:P_myendHour] or [DOIF_NL_Gang:P_myendMinute])(setreading DOIF_NL_Gang P_mybegin {(sprintf("%02d",[DOIF_NL_Gang:P_mybeginHour]))}:{(sprintf("%02d",[DOIF_NL_Gang:P_mybeginMinute]))},setreading DOIF_NL_Gang P_myend {(sprintf("%02d",[DOIF_NL_Gang:P_myendHour]))}:{(sprintf("%02d",[DOIF_NL_Gang:P_myendMinute]))})
attr DOIF_NL_Gang_Set do always
attr DOIF_NL_Gang_Set room Obergeschoss


Problem:
- Versuche ich die Zeit P_myend aus dem ersten DOIF per FTUI (über das zweite DOIF) zu aktualisieren wird zwar das reading P_myend richtig gesetzt, jedoch werden die DOIF timer nicht aktualisiert, erst wenn ich ein "rereadcfg" über die commandline mache wird der Wert aus P_myend in die DOIF Timer übernommen.
- Wenn ich jedoch in der FHEM command-line zum Beispiel ein setreading DOIF_NL_Gang P_myend 23:00 ausführe, dann werden die DOIF-Timer aktualisiert und das DOIF schaltet zur richtigen Zeit.


Auszug aus dem Event-Log:

--- hier aktualisierung über das FTUI, spinner widget ----
2019-02-04 22:54:32 DOIF DOIF_NL_Gang_Set cmd_nr: 1
2019-02-04 22:54:32 DOIF DOIF_NL_Gang_Set cmd: 1
2019-02-04 22:54:32 DOIF DOIF_NL_Gang_Set cmd_event: DOIF_NL_Gang
2019-02-04 22:54:32 DOIF DOIF_NL_Gang_Set cmd_1
2019-02-04 22:54:32 DOIF DOIF_NL_Gang P_mybeginHour: 23
2019-02-04 22:54:32 DOIF DOIF_NL_Gang P_mybegin: 23:01
2019-02-04 22:54:32 DOIF DOIF_NL_Gang P_myend: 23:54

---- hier aktualisierung über die FHEM cmdline -----
2019-02-04 22:54:42 DOIF DOIF_NL_Gang P_myend: 23:00
2019-02-04 22:54:42 DOIF DOIF_NL_Gang timer_02_c02: 04.02.2019 23:00:00

Hat irgendjemand eine Idee wo das Problem sein könnte bzw. wo ich nachsehen kann um das Problem einzugrenzen?

Danke.
Grüße
Leo

Ellert

ZitatWenn ich jedoch in der FHEM command-line zum Beispiel ein setreading DOIF_NL_Gang P_myend 23:00 ausführe, dann werden die DOIF-Timer aktualisiert und das DOIF schaltet zur richtigen Zeit.
Interessanter wäre essetreading DOIF_NL_Gang P_mybegin {(sprintf("%02d",[DOIF_NL_Gang:P_mybeginHour]))}:{(sprintf("%02d",[DOIF_NL_Gang:P_mybeginMinute]))} in der Befehlszeile auszuführen, ggf. nach Umbau zu setreading ... {(<Berechnung von HH:MM>)} oder bei der Verwendung von ReadingsVal statt [Gerät:Reading] das ist näher an Deinem Code als setreading DOIF_NL_Gang P_myend 23:00