Aussenbeleuchtung mit DOIF arbeitet nicht nach meinen Vorstellungen...?

Begonnen von Morgennebel, 12 April 2016, 13:02:07

Vorheriges Thema - Nächstes Thema

Morgennebel

Guten Tag,


es ist wahrscheinlich ein Anwenderfehler, aber ich "sehe" ihn nicht:


define DI_TimerPresenceAussenlichtOnOff DOIF ( [05:30-08:30|8] and [MyTwilight:twilight_weather] < 40)
     (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd1
DOELSEIF ( [06:30-09:00|7] and [MyTwilight:twilight_weather] < 40)
      (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd2
DOELSEIF  ( [15:00-22:15] and [MyTwilight:twilight_weather] < 40)
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd3
DOELSEIF ( [15:00-01:00] and [PresTVWintergarten:state] eq "present" and [MyTwilight:twilight_weather] < 40 )
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd4
DOELSE
   (set D_TimerAussenlicht off, set Aussenlicht off) ## Cmd5


Soll also morgens um 5:30 oder um 6:30 (WE und Ferien) das Licht bis zum Erreichen des Helligkeitswertes 40 von Twilight aktivieren. Ebenso abends (Dämmerung bis 22:15 oder 01:00 wenn der Fernseher noch läuft).

Hier noch ein list auf das DOIF:


Internals:
   CFGFN      ./FHEM/fhem-timers.cfg
   DEF        ( [05:30-08:30|8] and [MyTwilight:twilight_weather] < 40)
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd1
DOELSEIF
( [06:30-09:00|7] and [MyTwilight:twilight_weather] < 40)
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd2
DOELSEIF
( [15:00-22:15] and [MyTwilight:twilight_weather] < 40)
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd3
DOELSEIF
( [15:00-01:00] and [PresTVWintergarten:state] eq "present" and [MyTwilight:twilight_weather] < 40 )
   (set D_TimerAussenlicht on, set Aussenlicht on)  ## Cmd4
DOELSE
   (set D_TimerAussenlicht off, set Aussenlicht off) ## Cmd5
   NAME       DI_TimerPresenceAussenlichtOnOff
   NR         769
   NTFY_ORDER 50-DI_TimerPresenceAussenlichtOnOff
   STATE      cmd_5
   TYPE       DOIF
   Readings:
     2016-04-12 12:51:51   Device          MyTwilight
     2016-04-12 12:51:51   cmd_event       MyTwilight
     2016-04-12 12:51:51   cmd_nr          5
     2016-04-12 12:51:51   e_MyTwilight_twilight_weather 100
     2016-04-12 12:51:41   e_PresTVWintergarten_state absent
     2016-04-12 12:51:51   state           cmd_5
     2016-04-12 08:30:00   timer_1_c1      13.04.2016 05:30:00|8
     2016-04-12 08:30:00   timer_2_c1      13.04.2016 08:30:00|8
     2016-04-12 09:00:00   timer_3_c2      13.04.2016 06:30:00|7
     2016-04-12 09:00:00   timer_4_c2      13.04.2016 09:00:00|7
     2016-04-11 22:15:00   timer_5_c3      12.04.2016 15:00:00
     2016-04-11 22:15:00   timer_6_c3      12.04.2016 22:15:00
     2016-04-12 01:00:00   timer_7_c4      12.04.2016 15:00:00
     2016-04-12 01:00:00   timer_8_c4      13.04.2016 01:00:00
   Condition:
     0           DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and ReadingValDoIf($hash,'MyTwilight','twilight_weather','','',AttrVal($hash->{NAME},'notexist',undef)) < 40
     1           DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"7") and ReadingValDoIf($hash,'MyTwilight','twilight_weather','','',AttrVal($hash->{NAME},'notexist',undef)) < 40
     2           DOIF_time($hash,$hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"") and ReadingValDoIf($hash,'MyTwilight','twilight_weather','','',AttrVal($hash->{NAME},'notexist',undef)) < 40
     3           DOIF_time($hash,$hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"") and ReadingValDoIf($hash,'PresTVWintergarten','state','','',AttrVal($hash->{NAME},'notexist',undef)) eq "present" and ReadingValDoIf($hash,'MyTwilight','twilight_weather','','',AttrVal($hash->{NAME},'notexist',undef)) < 40
   Days:
     0          8
     1          8
     2          7
     3          7
   Devices:
     0           MyTwilight
     1           MyTwilight
     2           MyTwilight
     3           PresTVWintergarten MyTwilight
     all         MyTwilight PresTVWintergarten
   Do:
     0:
       0          set D_TimerAussenlicht on, set Aussenlicht on
     1:
       0          set D_TimerAussenlicht on, set Aussenlicht on
     2:
       0          set D_TimerAussenlicht on, set Aussenlicht on
     3:
       0          set D_TimerAussenlicht on, set Aussenlicht on
     4:
       0          set D_TimerAussenlicht off, set Aussenlicht off
   Helper:
     event      azimuth: 168.8,elevation: 45.35,twilight: 100,twilight_weather: 100,compasspoint: south-southeast
     globalinit 1
     last_timer 8
     sleeptimer -1
     timerdev   MyTwilight
     timerevent azimuth: 168.8,elevation: 45.35,twilight: 100,twilight_weather: 100,compasspoint: south-southeast
     triggerDev MyTwilight
     timerevents:
       azimuth: 168.8
       elevation: 45.35
       twilight: 100
       twilight_weather: 100
       compasspoint: south-southeast
     triggerEvents:
       azimuth: 168.8
       elevation: 45.35
       twilight: 100
       twilight_weather: 100
       compasspoint: south-southeast
   Internals:
   Interval:
     0          -1
     1          0
     2          -1
     3          2
     4          -1
     5          4
     6          -1
     7          6
   Itimer:
   Localtime:
     0          1460518200
     1          1460529000
     2          1460521800
     3          1460530800
     4          1460466000
     5          1460492100
     6          1460466000
     7          1460502000
   Readings:
     0           MyTwilight:twilight_weather
     1           MyTwilight:twilight_weather
     2           MyTwilight:twilight_weather
     3           PresTVWintergarten:state MyTwilight:twilight_weather
     all         MyTwilight:twilight_weather PresTVWintergarten:state
   Realtime:
     0          05:30:00
     1          08:30:00
     2          06:30:00
     3          09:00:00
     4          15:00:00
     5          22:15:00
     6          15:00:00
     7          01:00:00
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Time:
     0          05:30:00
     1          08:30:00
     2          06:30:00
     3          09:00:00
     4          15:00:00
     5          22:15:00
     6          15:00:00
     7          01:00:00
   Timecond:
     0          0
     1          0
     2          1
     3          1
     4          2
     5          2
     6          3
     7          3
   Timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   Timers:
     0           0  1
     1           2  3
     2           4  5
     3           6  7
   Trigger:
   Triggertime:
     1460466000:
       localtime  1460466000
       Hash:
     1460492100:
       localtime  1460492100
       Hash:
     1460502000:
       localtime  1460502000
       Hash:
     1460518200:
       localtime  1460518200
       Hash:
     1460521800:
       localtime  1460521800
       Hash:
     1460529000:
       localtime  1460529000
       Hash:
     1460530800:
       localtime  1460530800
       Hash:
Attributes:
   do         always
   room       Aussen


Morgens geht das Licht jedoch AN und nach 5 Sekunden wieder aus. Danach wieder An und Aus, und An und Aus - eine richtig langsame Schunkel-Disko.

D_TimerAussenlicht ist ein Dummy, der die Bewegungsmelder deaktiviert. Aussenlicht eine structure aus mehreren Lichtern.

Hier ein Auszug aus dem Logfile aus der structure Aussenlicht


2016-04-12_05:30:00 Aussen.AtelierWandlicht set_on
2016-04-12_05:30:01 Aussen.AtelierWandlicht deviceMsg: on (to vccu)
2016-04-12_05:30:01 Aussen.AtelierWandlicht level: 100
2016-04-12_05:30:01 Aussen.AtelierWandlicht pct: 100
2016-04-12_05:30:01 Aussen.AtelierWandlicht on
2016-04-12_05:30:01 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:30:08 Aussen.AtelierWandlicht set_off
2016-04-12_05:30:08 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:30:08 Aussen.AtelierWandlicht level: 0
2016-04-12_05:30:08 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:30:08 Aussen.AtelierWandlicht off
2016-04-12_05:30:08 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:30:45 Aussen.AtelierWandlicht set_off
2016-04-12_05:30:45 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:30:45 Aussen.AtelierWandlicht level: 0
2016-04-12_05:30:45 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:30:45 Aussen.AtelierWandlicht off
2016-04-12_05:30:45 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:31:21 Aussen.AtelierWandlicht set_off
2016-04-12_05:31:21 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:31:21 Aussen.AtelierWandlicht level: 0
2016-04-12_05:31:21 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:31:21 Aussen.AtelierWandlicht off
2016-04-12_05:31:21 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:31:29 Aussen.AtelierWandlicht set_on
2016-04-12_05:31:30 Aussen.AtelierWandlicht deviceMsg: on (to vccu)
2016-04-12_05:31:30 Aussen.AtelierWandlicht level: 100
2016-04-12_05:31:30 Aussen.AtelierWandlicht pct: 100
2016-04-12_05:31:30 Aussen.AtelierWandlicht on
2016-04-12_05:31:30 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:31:59 Aussen.AtelierWandlicht set_off
2016-04-12_05:31:59 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:31:59 Aussen.AtelierWandlicht level: 0
2016-04-12_05:31:59 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:31:59 Aussen.AtelierWandlicht off
2016-04-12_05:31:59 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:32:35 Aussen.AtelierWandlicht set_off
2016-04-12_05:32:35 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:32:35 Aussen.AtelierWandlicht level: 0
2016-04-12_05:32:35 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:32:35 Aussen.AtelierWandlicht off
2016-04-12_05:32:35 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:33:11 Aussen.AtelierWandlicht set_off
2016-04-12_05:33:12 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:33:12 Aussen.AtelierWandlicht level: 0
2016-04-12_05:33:12 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:33:12 Aussen.AtelierWandlicht off
2016-04-12_05:33:12 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:33:48 Aussen.AtelierWandlicht set_off
2016-04-12_05:33:48 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:33:48 Aussen.AtelierWandlicht level: 0
2016-04-12_05:33:48 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:33:48 Aussen.AtelierWandlicht off
2016-04-12_05:33:48 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:34:24 Aussen.AtelierWandlicht set_off
2016-04-12_05:34:24 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:34:24 Aussen.AtelierWandlicht level: 0
2016-04-12_05:34:24 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:34:24 Aussen.AtelierWandlicht off
2016-04-12_05:34:24 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:35:01 Aussen.AtelierWandlicht set_off
2016-04-12_05:35:01 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:35:01 Aussen.AtelierWandlicht level: 0
2016-04-12_05:35:01 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:35:01 Aussen.AtelierWandlicht off
2016-04-12_05:35:01 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:35:38 Aussen.AtelierWandlicht set_off
2016-04-12_05:35:38 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:35:38 Aussen.AtelierWandlicht level: 0
2016-04-12_05:35:38 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:35:38 Aussen.AtelierWandlicht off
2016-04-12_05:35:38 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:36:14 Aussen.AtelierWandlicht set_off
2016-04-12_05:36:14 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:36:14 Aussen.AtelierWandlicht level: 0
2016-04-12_05:36:14 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:36:14 Aussen.AtelierWandlicht off
2016-04-12_05:36:14 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:36:30 Aussen.AtelierWandlicht set_on
2016-04-12_05:36:30 Aussen.AtelierWandlicht deviceMsg: on (to vccu)
2016-04-12_05:36:30 Aussen.AtelierWandlicht level: 100
2016-04-12_05:36:30 Aussen.AtelierWandlicht pct: 100
2016-04-12_05:36:30 Aussen.AtelierWandlicht on
2016-04-12_05:36:30 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:36:51 Aussen.AtelierWandlicht set_off
2016-04-12_05:36:51 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:36:51 Aussen.AtelierWandlicht level: 0
2016-04-12_05:36:51 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:36:51 Aussen.AtelierWandlicht off
2016-04-12_05:36:51 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:37:27 Aussen.AtelierWandlicht set_off
2016-04-12_05:37:27 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:37:27 Aussen.AtelierWandlicht level: 0
2016-04-12_05:37:27 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:37:27 Aussen.AtelierWandlicht off
2016-04-12_05:37:27 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:38:05 Aussen.AtelierWandlicht set_off
2016-04-12_05:38:05 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:38:05 Aussen.AtelierWandlicht level: 0
2016-04-12_05:38:05 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:38:05 Aussen.AtelierWandlicht off
2016-04-12_05:38:05 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:38:41 Aussen.AtelierWandlicht set_off
2016-04-12_05:38:41 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:38:41 Aussen.AtelierWandlicht level: 0
2016-04-12_05:38:41 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:38:41 Aussen.AtelierWandlicht off
2016-04-12_05:38:41 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:39:17 Aussen.AtelierWandlicht set_off
2016-04-12_05:39:18 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:39:18 Aussen.AtelierWandlicht level: 0
2016-04-12_05:39:18 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:39:18 Aussen.AtelierWandlicht off
2016-04-12_05:39:18 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:39:54 Aussen.AtelierWandlicht set_off
2016-04-12_05:39:54 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:39:54 Aussen.AtelierWandlicht level: 0
2016-04-12_05:39:54 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:39:54 Aussen.AtelierWandlicht off
2016-04-12_05:39:54 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:40:30 Aussen.AtelierWandlicht set_off
2016-04-12_05:40:30 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:40:30 Aussen.AtelierWandlicht level: 0
2016-04-12_05:40:30 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:40:30 Aussen.AtelierWandlicht off
2016-04-12_05:40:30 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:41:07 Aussen.AtelierWandlicht set_off
2016-04-12_05:41:07 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:41:07 Aussen.AtelierWandlicht level: 0
2016-04-12_05:41:07 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:41:07 Aussen.AtelierWandlicht off
2016-04-12_05:41:07 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:41:30 Aussen.AtelierWandlicht set_on
2016-04-12_05:41:30 Aussen.AtelierWandlicht deviceMsg: on (to vccu)
2016-04-12_05:41:30 Aussen.AtelierWandlicht level: 100
2016-04-12_05:41:30 Aussen.AtelierWandlicht pct: 100
2016-04-12_05:41:30 Aussen.AtelierWandlicht on
2016-04-12_05:41:30 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:41:43 Aussen.AtelierWandlicht set_off
2016-04-12_05:41:44 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:41:44 Aussen.AtelierWandlicht level: 0
2016-04-12_05:41:44 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:41:44 Aussen.AtelierWandlicht off
2016-04-12_05:41:44 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:42:19 Aussen.AtelierWandlicht set_off
2016-04-12_05:42:20 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:42:20 Aussen.AtelierWandlicht level: 0
2016-04-12_05:42:20 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:42:20 Aussen.AtelierWandlicht off
2016-04-12_05:42:20 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:42:57 Aussen.AtelierWandlicht set_off
2016-04-12_05:42:57 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:42:57 Aussen.AtelierWandlicht level: 0
2016-04-12_05:42:57 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:42:57 Aussen.AtelierWandlicht off
2016-04-12_05:42:57 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:43:33 Aussen.AtelierWandlicht set_off
2016-04-12_05:43:33 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:43:33 Aussen.AtelierWandlicht level: 0
2016-04-12_05:43:33 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:43:33 Aussen.AtelierWandlicht off
2016-04-12_05:43:33 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:44:10 Aussen.AtelierWandlicht set_off
2016-04-12_05:44:11 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:44:11 Aussen.AtelierWandlicht level: 0
2016-04-12_05:44:11 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:44:11 Aussen.AtelierWandlicht off
2016-04-12_05:44:11 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:44:46 Aussen.AtelierWandlicht set_off
2016-04-12_05:44:47 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:44:47 Aussen.AtelierWandlicht level: 0
2016-04-12_05:44:47 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:44:47 Aussen.AtelierWandlicht off
2016-04-12_05:44:47 Aussen.AtelierWandlicht timedOn: off
2016-04-12_05:45:22 Aussen.AtelierWandlicht set_off
2016-04-12_05:45:23 Aussen.AtelierWandlicht deviceMsg: off (to vccu)
2016-04-12_05:45:23 Aussen.AtelierWandlicht level: 0
2016-04-12_05:45:23 Aussen.AtelierWandlicht pct: 0
2016-04-12_05:45:23 Aussen.AtelierWandlicht off


Ratschlag und "RTFM" werden dankend entgegengenommen...

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Ellert

In diesem Zweig
ZitatDOELSEIF ( [15:00-01:00] and [PresTVWintergarten:state] eq "present" and [MyTwilight:twilight_weather] < 40 )
wird [PresTVWintergarten:state] regelmäßig aktualisiert und jedesmal wenn  [PresTVWintergarten:state] eq "present" unwahr ist, wird der DOELSE-Zweig geschaltet.

Lösungsvorschlag 1: Setze das Attribut auf event-on-change-reading für PresTVWintergarten auf presence und frage im DOIF [PresTVWintergarten:presence] ab.

Lösungsvorschlag 2: Ersetze DOELSE durch DOELSEIF mit einer passenden Ausschaltbedingung.


Morgennebel

Vielen Dank,


geändert und ich werde beobachten, was heute abend und morgen früh passiert.

Danke, -MN
Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA