DOIF wird zur falschen Zeit ausgeführt

Begonnen von Icinger, 02 Mai 2016, 06:46:02

Vorheriges Thema - Nächstes Thema

Icinger

Guten Morgen,

keine Ahnung, warum, aber seit dem Update vor ca. einer Woche wird mein Kaffeemaschinen-DOIF immer um Mitternacht ausgeführt, obwohl um diese Zeit eigentlich kein Trigger laufen dürfte.
Ich komm einfach nicht drauf, vielleicht weiss ja Damian oder jemand anders eine Lösung:

Hier mal die def:
([[di_Kaffeemaschine_neu:Einschaltzeit]-16:30] and [rr_Stefan:state] eq "home" and !defined($defs{'KM_On'}))
    (set KU_Wippschalter_Kaffee_Sw02_Kaffee on)
DOELSEIF ([01:00])
    (IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd())
({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")})
ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}),
IF ([Stefan_Handy:nextAlarmDay] eq "off")
    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}))
DOELSE (set KU_Wippschalter_Kaffee_Sw02_Kaffee off)


Sollte, je nach eingestelltem Wecker meines Handys um eben diese Uhrzeit bzw. wenn kein Wecker eingestellt, dann um 06:30 ausgeführt werden.
Wird aber, wie gesagt, immer um 00:00 ausgeführt, egal ob Wecker gestellt oder nicht.

Hier nochmal ein List:
     vor 6 Stunden   cmd_nr          3
     vor einer Minute   e_rr_Stefan_state gone
     vor 6 Stunden   state           cmd_3
     vor 6 Stunden   timer_1_c1      02.05.2016 06:30:00
     vor 14 Stunden   timer_2_c1      02.05.2016 16:30:00
     vor 6 Stunden   timer_3_c2      03.05.2016 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf($hash,'rr_Stefan','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "home" and !defined($defs{'KM_On'})
     1          DOIF_time_once($hash,$hash->{timer}{2},$wday,"")
   Days:
   Devices:
     0           KU_Wippschalter_Kaffee_Sw02_Kaffee on)
DOELSEIF ([01:00])
    (IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd())
({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")})
ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}),
IF ([Stefan_Handy:nextAlarmDay] eq "off")
    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}))
DOELSE (set KU_Wippschalter_Kaffee_Sw02_Kaffee off)
   NAME       di_Kaffeemaschine_neu
   NR         408
   NTFY_ORDER 50-di_Kaffeemaschine_neu
   STATE      cmd_3
   TYPE       DOIF
   Readings:
     2016-05-02 06:40:30   Device          rr_Stefan
     2016-05-02 01:00:00   Einschaltzeit   06:30:00
     2016-05-02 01:00:23   cmd_event       rr_Stefan
     2016-05-02 01:00:23   cmd_nr          3
     2016-05-02 06:40:30   e_rr_Stefan_state gone
     2016-05-02 01:00:23   state           cmd_3
     2016-05-02 01:00:23   timer_1_c1      02.05.2016 06:30:00
     2016-05-01 16:30:00   timer_2_c1      02.05.2016 16:30:00
     2016-05-02 01:00:00   timer_3_c2      03.05.2016 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf($hash,'rr_Stefan','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "home" and !defined($defs{'KM_On'})
     1          DOIF_time_once($hash,$hash->{timer}{2},$wday,"")
   Days:
   Devices:
     0           rr_Stefan
     all         rr_Stefan
   Do:
     0:
       0          set KU_Wippschalter_Kaffee_Sw02_Kaffee on
     1:
       0          IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd()) ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")}) ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}), IF ([Stefan_Handy:nextAlarmDay] eq "off")    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"})
     2:
       0          set KU_Wippschalter_Kaffee_Sw02_Kaffee off
   Helper:
     event      durTimerAbsence_cr: 4146,durTimerAbsence: 69:05:39
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   rr_Stefan
     timerevent durTimerAbsence_cr: 4146,durTimerAbsence: 69:05:39
     triggerDev rr_Stefan
     timerevents:
       durTimerAbsence_cr: 4146
       durTimerAbsence: 69:05:39
     triggerEvents:
       durTimerAbsence_cr: 4146
       durTimerAbsence: 69:05:39
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
     all         di_Kaffeemaschine_neu
   Localtime:
     0          1462163400
     1          1462199400
     2          1462230000
   Readings:
     0           rr_Stefan:state
     all         rr_Stefan:state
   Realtime:
     0          06:30:00
     1          16:30:00
     2          01:00:00
   Regexp:
     0:
     1:
     All:
   State:
   Time:
     0          [di_Kaffeemaschine_neu:Einschaltzeit]
     1          16:30:00
     2          01:00:00
   Timecond:
     0          0
     1          0
     2          1
   Timer:
     0          0
     1          0
     2          0
   Timers:
     0           0  1
     1           2
   Trigger:
   Triggertime:
     1462199400:
       localtime  1462199400
       Hash:
     1462230000:
       localtime  1462230000
       Hash:
Attributes:
   DbLogExclude .*
   notexist   "06:30:00"


Hab schon die komplette Commandref durchgesehen, ob sich was geändert hat. Hab aber nix dazu gefunden leider.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Damian

Zitat von: Icinger am 02 Mai 2016, 06:46:02
Guten Morgen,

keine Ahnung, warum, aber seit dem Update vor ca. einer Woche wird mein Kaffeemaschinen-DOIF immer um Mitternacht ausgeführt, obwohl um diese Zeit eigentlich kein Trigger laufen dürfte.
Ich komm einfach nicht drauf, vielleicht weiss ja Damian oder jemand anders eine Lösung:

Hier mal die def:
([[di_Kaffeemaschine_neu:Einschaltzeit]-16:30] and [rr_Stefan:state] eq "home" and !defined($defs{'KM_On'}))
    (set KU_Wippschalter_Kaffee_Sw02_Kaffee on)
DOELSEIF ([01:00])
    (IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd())
({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")})
ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}),
IF ([Stefan_Handy:nextAlarmDay] eq "off")
    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}))
DOELSE (set KU_Wippschalter_Kaffee_Sw02_Kaffee off)


Sollte, je nach eingestelltem Wecker meines Handys um eben diese Uhrzeit bzw. wenn kein Wecker eingestellt, dann um 06:30 ausgeführt werden.
Wird aber, wie gesagt, immer um 00:00 ausgeführt, egal ob Wecker gestellt oder nicht.

Hier nochmal ein List:
     vor 6 Stunden   cmd_nr          3
     vor einer Minute   e_rr_Stefan_state gone
     vor 6 Stunden   state           cmd_3
     vor 6 Stunden   timer_1_c1      02.05.2016 06:30:00
     vor 14 Stunden   timer_2_c1      02.05.2016 16:30:00
     vor 6 Stunden   timer_3_c2      03.05.2016 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf($hash,'rr_Stefan','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "home" and !defined($defs{'KM_On'})
     1          DOIF_time_once($hash,$hash->{timer}{2},$wday,"")
   Days:
   Devices:
     0           KU_Wippschalter_Kaffee_Sw02_Kaffee on)
DOELSEIF ([01:00])
    (IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd())
({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")})
ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}),
IF ([Stefan_Handy:nextAlarmDay] eq "off")
    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}))
DOELSE (set KU_Wippschalter_Kaffee_Sw02_Kaffee off)
   NAME       di_Kaffeemaschine_neu
   NR         408
   NTFY_ORDER 50-di_Kaffeemaschine_neu
   STATE      cmd_3
   TYPE       DOIF
   Readings:
     2016-05-02 06:40:30   Device          rr_Stefan
     2016-05-02 01:00:00   Einschaltzeit   06:30:00
     2016-05-02 01:00:23   cmd_event       rr_Stefan
     2016-05-02 01:00:23   cmd_nr          3
     2016-05-02 06:40:30   e_rr_Stefan_state gone
     2016-05-02 01:00:23   state           cmd_3
     2016-05-02 01:00:23   timer_1_c1      02.05.2016 06:30:00
     2016-05-01 16:30:00   timer_2_c1      02.05.2016 16:30:00
     2016-05-02 01:00:00   timer_3_c2      03.05.2016 01:00:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and ReadingValDoIf($hash,'rr_Stefan','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "home" and !defined($defs{'KM_On'})
     1          DOIF_time_once($hash,$hash->{timer}{2},$wday,"")
   Days:
   Devices:
     0           rr_Stefan
     all         rr_Stefan
   Do:
     0:
       0          set KU_Wippschalter_Kaffee_Sw02_Kaffee on
     1:
       0          IF  ([Stefan_Handy:nextAlarmDay] eq AMADwd()) ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTime","06:30")."00","00:15:00")}) ELSE ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}), IF ([Stefan_Handy:nextAlarmDay] eq "off")    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"})
     2:
       0          set KU_Wippschalter_Kaffee_Sw02_Kaffee off
   Helper:
     event      durTimerAbsence_cr: 4146,durTimerAbsence: 69:05:39
     globalinit 1
     last_timer 3
     sleeptimer -1
     timerdev   rr_Stefan
     timerevent durTimerAbsence_cr: 4146,durTimerAbsence: 69:05:39
     triggerDev rr_Stefan
     timerevents:
       durTimerAbsence_cr: 4146
       durTimerAbsence: 69:05:39
     triggerEvents:
       durTimerAbsence_cr: 4146
       durTimerAbsence: 69:05:39
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
     all         di_Kaffeemaschine_neu
   Localtime:
     0          1462163400
     1          1462199400
     2          1462230000
   Readings:
     0           rr_Stefan:state
     all         rr_Stefan:state
   Realtime:
     0          06:30:00
     1          16:30:00
     2          01:00:00
   Regexp:
     0:
     1:
     All:
   State:
   Time:
     0          [di_Kaffeemaschine_neu:Einschaltzeit]
     1          16:30:00
     2          01:00:00
   Timecond:
     0          0
     1          0
     2          1
   Timer:
     0          0
     1          0
     2          0
   Timers:
     0           0  1
     1           2
   Trigger:
   Triggertime:
     1462199400:
       localtime  1462199400
       Hash:
     1462230000:
       localtime  1462230000
       Hash:
Attributes:
   DbLogExclude .*
   notexist   "06:30:00"


Hab schon die komplette Commandref durchgesehen, ob sich was geändert hat. Hab aber nix dazu gefunden leider.

lg, Stefan

An der Zeitsteuerung hat sich seit dem letzten Update nichts geändert. Leider kann man am list nicht mehr sehen, wer um 00:00 der Auslöser war. Vielleicht schaffst du ein list kurz nach Mitternacht zu machen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Icinger

Lässt sich sicher automatisieren für kommende nacht :)
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho