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
Was möchtest Du mit den doppelten eckigen Klammern um die Vergleichstemperatur bewirken?
Dachte, das sollte so sein, kann ich entfernen. Macht aber sicher auch keinen Unterschied.
Ohh, sorry ein Timer ist dadurch verschwunden. Das verstehe ich nicht.
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