Modus schaltet nicht richtig

Begonnen von en-trust, 21 März 2018, 20:26:17

Vorheriges Thema - Nächstes Thema

en-trust

Ich habe mehrere Modi die in Abhängigkeit vom residents schalten.
Mein Handy ist present, war vielleicht kurz absent. Darauf hin mus dann der MOdi auf Away geganbgen sein. Handy ist aber nun wieder present, der Modi bleibt aber away.

Hier die Definition des Modus.


([residents] eq "home") (set Modus_FHZ Auto)
DOELSEIF ([residents] eq "absent") (set Modus_FHZ Away)
DOELSEIF ([residents] eq "gone") (set Modus_FHZ Holiday)
DOELSE (set Modus_FHZ AUS)


Oder fehlt hier vielleicht das Attribute do always?

Hier das List.

Internals:
   CFGFN      ./FHEM/fhem_activeactors.cfg
   DEF        ([residents] eq "home") (set Modus_FHZ Auto)
DOELSEIF ([residents] eq "absent") (set Modus_FHZ Away)
DOELSEIF ([residents] eq "gone") (set Modus_FHZ Holiday)
DOELSE (set Modus_FHZ AUS)
   NAME       Modus_FHZ.Anwesenheit
   NR         269
   NTFY_ORDER 50-Modus_FHZ.Anwesenheit
   STATE      cmd_2
   TYPE       DOIF
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1521659254.57558
           VALUE      2
       cmd_event:
         logdb:
           TIME       1521659254.57558
           VALUE      residents
       cmd_nr:
         logdb:
           TIME       1521659254.57558
           VALUE      2
       state:
         logdb:
           TIME       1521659254.57558
           VALUE      cmd_2
       wait_timer:
         logdb:
           TIME       1521659407.41057
           VALUE      21.03.2018 20:25:07 cmd_1 residents
   READINGS:
     2018-03-21 20:23:08   Device          residents
     2018-03-21 20:07:34   cmd             2
     2018-03-21 20:07:34   cmd_event       residents
     2018-03-21 20:07:34   cmd_nr          2
     2018-03-21 20:23:08   e_residents_STATE home
     2018-03-13 13:29:20   mode            enabled
     2018-03-21 20:07:34   state           cmd_2
     2018-03-21 20:10:07   wait_timer      21.03.2018 20:25:07 cmd_1 residents
   Regex:
   condition:
     0          InternalDoIf($hash,'residents','STATE') eq "home"
     1          InternalDoIf($hash,'residents','STATE') eq "absent"
     2          InternalDoIf($hash,'residents','STATE') eq "gone"
   devices:
     0           residents
     1           residents
     2           residents
     all         residents
   do:
     0:
       0          set Modus_FHZ Auto
     1:
       0          set Modus_FHZ Away
     2:
       0          set Modus_FHZ Holiday
     3:
       0          set Modus_FHZ AUS
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      durTimerPresence_cr: 13,durTimerPresence: 00:13:01
     globalinit 1
     last_timer 0
     sleepdevice residents
     sleepsubtimer 0
     sleeptimer 0
     timerdev   residents
     timerevent durTimerPresence_cr: 13,durTimerPresence: 00:13:01
     triggerDev residents
     timerevents:
       durTimerPresence_cr: 13
       durTimerPresence: 00:13:01
     timereventsState:
       durTimerPresence_cr: 13
       durTimerPresence: 00:13:01
     triggerEvents:
       durTimerPresence_cr: 13
       durTimerPresence: 00:13:01
     triggerEventsState:
       durTimerPresence_cr: 13
       durTimerPresence: 00:13:01
   internals:
     0           residents:STATE
     1           residents:STATE
     2           residents:STATE
     all         residents:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   group      Anwesenheit
   room       Automation
   wait       900:180

amenomade

Du hast aber ein Wait Timer 900 für "present". Was ist jetzt der Status? Hat sich geändert?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

en-trust

900 sind 15 Min. Hat sich aber nichts am Status geändert.

amenomade

Was ich meine: Modus_FHZ geht erst auf "Auto" 900s nachdem [resident] wieder auf home springt.

In deinem List vom DOIF sieht man, dass er den timer um 20:10:07 auf 20:25:07 setzt, aber, dass resident wieder um 20:23 getriggert hat.

Schau mal die Log von resident, was er in dieser Periode gemacht hat.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

en-trust

#4
Ich teste es nochmal wegen der Zeit und meld mich diesbezüglich noch.

Allerdings habe ich noch eine ander Baustelle. Ich steuere ebenfalls über einen Modus das Licht.

([Modus_Licht] eq "Auto" and [Tageslicht] eq "dunkel") (set WZ.Fensterleuchte_CUL.dummy on)
DOELSEIF ([Modus_Licht] eq "Auto" and ([22:00|So Mo Di Mi Do] or [23:30|Fr Sa])) (set WZ.Fensterleuchte_CUL.dummy off)
DOELSE (set WZ.Fensterleuchte_CUL.dummy off)


Gesetzt wird der Modus_Licht...

([residents] eq "home") (set Modus_Licht Auto)
DOELSE (set Modus_Licht AUS)


List...

Internals:
   CFGFN      ./FHEM/fhem_multimedia.cfg
   DEF        ([residents] eq "home") (set Modus_Licht Auto)
DOELSE (set Modus_Licht AUS)
   NAME       Modus_Licht.Anwesenheit
   NR         790
   NTFY_ORDER 50-Modus_Licht.Anwesenheit
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1521830400.61081
           VALUE      1
       cmd_event:
         logdb:
           TIME       1521830400.61081
           VALUE      residents
       cmd_nr:
         logdb:
           TIME       1521830400.61081
           VALUE      1
       mode:
         logdb:
           TIME       1521138449.05274
           VALUE      enabled
       state:
         logdb:
           TIME       1521830400.61081
           VALUE      cmd_1
       wait_timer:
         logdb:
           TIME       1521830401.72785
           VALUE      23.03.2018 19:55:01 cmd_1 residents
   READINGS:
     2018-03-23 19:50:05   Device          residents
     2018-03-23 19:40:00   cmd             1
     2018-03-23 19:40:00   cmd_event       residents
     2018-03-23 19:40:00   cmd_nr          1
     2018-03-23 19:50:05   e_residents_STATE home
     2018-03-15 19:27:28   mode            enabled
     2018-03-23 19:40:00   state           cmd_1
     2018-03-23 19:40:01   wait_timer      23.03.2018 19:55:01 cmd_1 residents
   Regex:
   condition:
     0          InternalDoIf($hash,'residents','STATE') eq "home"
   devices:
     0           residents
     all         residents
   do:
     0:
       0          set Modus_Licht Auto
     1:
       0          set Modus_Licht AUS
   helper:
     DOIF_Readings_events
     DOIF_eventas
     event      durTimerPresence_cr: 70,durTimerPresence: 01:10:14
     globalinit 1
     last_timer 0
     sleepdevice residents
     sleepsubtimer 0
     sleeptimer 0
     timerdev   residents
     timerevent durTimerPresence_cr: 70,durTimerPresence: 01:10:14
     triggerDev residents
     timerevents:
       durTimerPresence_cr: 70
       durTimerPresence: 01:10:14
     timereventsState:
       durTimerPresence_cr: 70
       durTimerPresence: 01:10:14
     triggerEvents:
       durTimerPresence_cr: 70
       durTimerPresence: 01:10:14
     triggerEventsState:
       durTimerPresence_cr: 70
       durTimerPresence: 01:10:14
   internals:
     0           residents:STATE
     all         residents:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   group      Anwesenheit
   room       Automation
   wait       900:180


Schalte ich den Modus manuell ab, schaltet dieser kurze Zeit später wieder auf Auto. Am do always liegt es nicht.