FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Morgennebel am 17 April 2016, 19:20:33

Titel: DOIF mit sunrise/sunset schaltet falsch...
Beitrag von: Morgennebel am 17 April 2016, 19:20:33
Guten Abend,


wegen meiner Probleme mit Twilight bin ich auf die "normalen" sunrise/sunset-Funktionen umgestiegen. Leider schaltet jetzt das DOIF recht falsch.

Hier ist list:


Internals:
   CFGFN      ./FHEM/fhem-timers.cfg
   DEF        ([05:30-{sunrise("REAL",0,"05:30","09:00")}|8] or
[06:30-{sunrise("REAL",0,"06:30","09:30")}|7] or
[{sunset("REAL",0,"15:00","21:30")}-22:15] or
([{sunset("REAL",0,"15:00","21:30")}-01:30] and [PresTVWintergarten:presence] eq "present"))
    (set D_TimerAussenlicht on, set Aussenlicht on)   ## Cmd1
DOELSE
    (set D_TimerAussenlicht off, set Aussenlicht off) ## Cmd2
   NAME       DI_TimerPresenceAussenlichtOnOff
   NR         769
   NTFY_ORDER 50-DI_TimerPresenceAussenlichtOnOff
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2016-04-17 18:46:42   Device          PresTVWintergarten
     2016-04-17 18:45:59   cmd_event       PresTVWintergarten
     2016-04-17 18:45:59   cmd_nr          1
     2016-04-17 18:46:42   e_PresTVWintergarten_presence absent
     2016-04-17 18:45:59   state           cmd_1
     2016-04-17 18:33:49   timer_1_c1      18.04.2016 05:30:00|8
     2016-04-17 18:33:49   timer_2_c1      18.04.2016 06:19:35|8
     2016-04-17 18:33:49   timer_3_c1      18.04.2016 06:30:00|7
     2016-04-17 18:33:49   timer_4_c1      18.04.2016 06:30:00|7
     2016-04-17 18:33:49   timer_5_c1      17.04.2016 20:25:44
     2016-04-17 18:33:49   timer_6_c1      17.04.2016 22:15:00
     2016-04-17 18:33:49   timer_7_c1      17.04.2016 20:25:44
     2016-04-17 18:33:49   timer_8_c1      18.04.2016 01:30:00
   Condition:
     0          DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") or DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"7") or DOIF_time($hash,$hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"") or (DOIF_time($hash,$hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"") and ReadingValDoIf($hash,'PresTVWintergarten','presence','','',AttrVal($hash->{NAME},'notexist',undef)) eq "present")
   Days:
     0          8
     1          8
     2          7
     3          7
   Devices:
     0           PresTVWintergarten
     all         PresTVWintergarten
   Do:
     0:
       0          set D_TimerAussenlicht on, set Aussenlicht on
     1:
       0          set D_TimerAussenlicht off, set Aussenlicht off
   Helper:
     event      presence: absent
     globalinit 1
     last_timer 8
     sleeptimer -1
     timerdev   PresTVWintergarten
     timerevent presence: absent
     triggerDev PresTVWintergarten
     timerevents:
       presence: absent
     triggerEvents:
       presence: absent
   Internals:
   Interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   Itimer:
   Localtime:
     0          1460950200
     1          1460953175
     2          1460953800
     3          1460953800
     4          1460917544
     5          1460924100
     6          1460917544
     7          1460935800
   Readings:
     0           PresTVWintergarten:presence
     all         PresTVWintergarten:presence
   Realtime:
     0          05:30:00
     1          06:19:35
     2          06:30:00
     3          06:30:00
     4          20:25:44
     5          22:15:00
     6          20:25:44
     7          01:30:00
   Regexp:
     0:
     All:
   State:
   Time:
     0          05:30:00
     1          {sunrise("REAL",0,"05:30","09:00")}
     2          06:30:00
     3          {sunrise("REAL",0,"06:30","09:30")}
     4          {sunset("REAL",0,"15:00","21:30")}
     5          22:15:00
     6          {sunset("REAL",0,"15:00","21:30")}
     7          01:30:00
   Timecond:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   Timers:
     0           0  1  2  3  4  5  6  7
   Trigger:
   Triggertime:
     1460917544:
       localtime  1460917544
       Hash:
     1460924100:
       localtime  1460924100
       Hash:
     1460935800:
       localtime  1460935800
       Hash:
     1460950200:
       localtime  1460950200
       Hash:
     1460953175:
       localtime  1460953175
       Hash:
     1460953800:
       localtime  1460953800
       Hash:
Attributes:
   room       Aussen


Und das Logfile zeigt:


2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff initialized
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_1_c1: 18.04.2016 05:30:00|8
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_2_c1: 18.04.2016 06:19:35|8
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_3_c1: 18.04.2016 06:30:00|7
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_4_c1: 18.04.2016 06:30:00|7
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_5_c1: 17.04.2016 20:25:44
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_6_c1: 17.04.2016 22:15:00
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_7_c1: 17.04.2016 20:25:44
2016-04-17_18:33:49 DI_TimerPresenceAussenlichtOnOff timer_8_c1: 18.04.2016 01:30:00
2016-04-17_18:45:59 DI_TimerPresenceAussenlichtOnOff cmd_nr: 1
2016-04-17_18:45:59 DI_TimerPresenceAussenlichtOnOff cmd_event: PresTVWintergarten
2016-04-17_18:45:59 DI_TimerPresenceAussenlichtOnOff cmd_1


Das um 18:45:59 das Kommando 1 aktiviert wurde, weil die PRESENCE-Meldung PresTVWintergarten ausgelöst wurde.

([{sunset("REAL",0,"15:00","21:30")}-01:30] and [PresTVWintergarten:presence] eq "present"))

Jedoch ist sunset("REAL",0,"15:00", "21:30") am heutigen Tag 20:25:00 Uhr, d.h. die eingrenzende Zeitangabe in der DOIF-Bedingung wird zu [20:25-01:30] and ....

Warum schaltet aber DOIF um 18:45?

Danke, -MN (sehr verwirrt)
Titel: Antw:DOIF mit sunrise/sunset schaltet falsch...
Beitrag von: Damian am 17 April 2016, 20:46:11
Das Problem ist offenbar die Angabe:

[06:30-{sunrise("REAL",0,"06:30","09:30")}|7]

sie ist bei dir z. Zt.  [06:30-06:30]. Dieser Ausdruck ist fälschlicherweise immer wahr.

Bis zum nächsten Update kannst du

[06:30-{sunrise("REAL",0,"06:31","09:30")}|7]

definieren.


Gruß

Damian

Titel: Antw:DOIF mit sunrise/sunset schaltet falsch...
Beitrag von: Morgennebel am 17 April 2016, 21:54:15
Dankeschön,

Ciao, -MN