FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fredi69 am 01 Juni 2017, 17:23:57

Titel: Rollo mit DOIF
Beitrag von: Fredi69 am 01 Juni 2017, 17:23:57
Hallo, ich habe seit einem halben Jahr auf DOIF bei den Rolladenaktoren umgestellt.
Mit folgender Definition lief alles wie gewollt:
defmod Rollo_Wohnzimmer_DI DOIF ([[Rollo_runter]-[Rollo_hoch]]\
and [RolloAutomatikDY:state] eq "Ein"\
and [Weihnachtsbeleuchtung] ne "on")\
(set EG.Wz.Ra.RolladenErker down)\
(set EG.Wz.Ra.RolladenStrasse down)\
DOELSE\
(set EG.Wz.Ra.RolladenErker up)\
(set EG.Wz.Ra.RolladenStrasse up)
attr Rollo_Wohnzimmer_DI do always
attr Rollo_Wohnzimmer_DI room Steuerung
attr Rollo_Wohnzimmer_DI verbose 5


Jetzt wollte ich auf Grund der warmen Jahreszeit noch die Aussentemperatur abfragen mit einem zusätzlichen DOELSEIF
defmod Rollo_Wohnzimmer_DI DOIF ([[Rollo_runter]-[Rollo_hoch]]\
and [RolloAutomatikDY:state] eq "Ein"\
and [Weihnachtsbeleuchtung] ne "on")\
(set EG.Wz.Ra.RolladenErker down)\
(set EG.Wz.Ra.RolladenStrasse down)\
DOELSEIF ([[Rollo_hoch]]\
and [?WetterProplanta:fc0_tempMax:d] > [[MaxTempRollo]])\
(set EG.Wz.Ra.RolladenErker 20)\
(set EG.Wz.Ra.RolladenStrasse 20)\
DOELSE\
(set EG.Wz.Ra.RolladenErker up)\
(set EG.Wz.Ra.RolladenStrasse up)
attr Rollo_Wohnzimmer_DI do always
attr Rollo_Wohnzimmer_DI room Steuerung
attr Rollo_Wohnzimmer_DI verbose 5


Jetzt werden aber um 00:00:25 die Rolläden komplett hochgefahren set EG.Wz.Ra.RolladenErker up dann morgens um Rollo_hoch runter auf 20 obwohl die Temperatur unter dem Wert von MaxTempRollo liegt, das verstehe ich nicht.
Kann mich da jemand unterstützen?

Hier noch ein List:
Internals:
   DEF        ([[Rollo_runter]-[Rollo_hoch]]
and [RolloAutomatikDY:state] eq "Ein"
and [Weihnachtsbeleuchtung] ne "on")
(set EG.Wz.Ra.RolladenErker down)
(set EG.Wz.Ra.RolladenStrasse down)
DOELSEIF ([[Rollo_hoch]]
and [?WetterProplanta:fc0_tempMax:d] > [[MaxTempRollo]])
(set EG.Wz.Ra.RolladenErker 20)
(set EG.Wz.Ra.RolladenStrasse 20)
DOELSE
(set EG.Wz.Ra.RolladenErker up)
(set EG.Wz.Ra.RolladenStrasse up)
   NAME       Rollo_Wohnzimmer_DI
   NR         285
   NTFY_ORDER 50-Rollo_Wohnzimmer_DI
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2017-06-01 06:33:20   cmd             2.2
     2017-06-01 06:33:20   cmd_event       timer_3
     2017-06-01 06:33:20   cmd_nr          2
     2017-06-01 06:33:20   cmd_seqnr       2
     2017-06-01 06:33:20   state           cmd_2
     2017-06-01 06:33:20   timer_01_c01    01.06.2017 22:30:18
     2017-06-01 06:33:20   timer_02_c01    02.06.2017 06:33:20
     2017-06-01 06:33:20   timer_03_c02    02.06.2017 06:33:20
     2017-06-01 00:00:25   timer_04_c02    02.06.2017 00:00:25
   Condition:
     0          DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'RolloAutomatikDY','state') eq "Ein" and InternalDoIf($hash,'Weihnachtsbeleuchtung','STATE') ne "on"
     1          DOIF_time_once($hash,2,$wday) and ReadingValDoIf($hash,'WetterProplanta','fc0_tempMax','','d') > DOIF_time_once($hash,3,$wday)
   Days:
   Devices:
     0           RolloAutomatikDY Weihnachtsbeleuchtung
     all         RolloAutomatikDY Weihnachtsbeleuchtung
   Do:
     0:
       0          set EG.Wz.Ra.RolladenErker down
       1          set EG.Wz.Ra.RolladenStrasse down
     1:
       0          set EG.Wz.Ra.RolladenErker 20
       1          set EG.Wz.Ra.RolladenStrasse 20
     2:
       0          set EG.Wz.Ra.RolladenErker up
       1          set EG.Wz.Ra.RolladenStrasse up
   Helper:
     event      timer_3
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev
     timerevent timer_3
     timereventsState
     triggerDev
     timerevents:
       timer_3
     triggerEvents:
       timer_3
   Internals:
     0           Weihnachtsbeleuchtung:STATE
     all         Weihnachtsbeleuchtung:STATE
   Interval:
     0          -1
     1          0
   Itimer:
     all         Rollo_runter Rollo_hoch MaxTempRollo
   Localtime:
     0          1496349018
     1          1496378000
     2          1496378000
     3          1496354425
   Readings:
     0           RolloAutomatikDY:state
     all         RolloAutomatikDY:state
   Realtime:
     0          22:30:18
     1          06:33:20
     2          06:33:20
     3          00:00:25
   Regexp:
     All:
   State:
     State:
   Time:
     0          [Rollo_runter]
     1          [Rollo_hoch]
     2          [Rollo_hoch]
     3          [MaxTempRollo]
   Timecond:
     0          0
     1          0
     2          1
     3          1
   Timer:
     0          0
     1          0
     2          0
     3          0
   Timers:
     0           0  1
     1           2  3
   Triggertime:
     1496349018:
       localtime  1496349018
       Hash:
     1496354425:
       localtime  1496354425
       Hash:
     1496378000:
       localtime  1496378000
       Hash:
Attributes:
   do         always
   room       Steuerung
   verbose    5
Titel: Antw:Rollo mit DOIF
Beitrag von: Ellert am 01 Juni 2017, 20:35:50
Was möchtest Du mit den doppelten eckigen Klammern um die Vergleichstemperatur bewirken?
Titel: Rollo mit DOIF
Beitrag von: Fredi69 am 01 Juni 2017, 21:44:10
Dachte, das sollte so sein, kann ich entfernen. Macht aber sicher auch keinen Unterschied.
Titel: Rollo mit DOIF
Beitrag von: Fredi69 am 01 Juni 2017, 21:53:10
Ohh, sorry ein Timer ist dadurch verschwunden. Das verstehe ich nicht.
Titel: Antw:Rollo mit DOIF
Beitrag von: Ellert am 01 Juni 2017, 22:53:33
Zitat von: Fredi69 am 01 Juni 2017, 21:53:10
Ohh, sorry ein Timer ist dadurch verschwunden. Das verstehe ich nicht.
Ein Blick in die Hilfe könnte verstehen helfen  ;) https://fhem.de/commandref_DE.html#DOIF_Indirekten_Zeitangaben