Guten Morgen,
ich habe eine Frage dem DOIF, dass ich zur Steuerung von drei Rolladen verwende. Dabei handelt es sich um folgenden Devices:
- Wohnzimmer_Rolladen_Fenster
- Wohnzimmer_Rolladen_Tuer_links
- Wohnzimmer_Rolladen_Tuer_rechts
Die Definitionen der Devices finden sich Anhang.
Dabei sollen per DOIF das Fenster Rollo mittels "twilight" jeden Abend runter gefahren werden und jeden Morgen hochgefahren werden.
Die Türen-Rollos sollen dagegen nur automatisch runter fahren, wenn die Außentemperatur kleiner 10°C ist, aber in jedem Fall auch morgens wieder hochfahren.
Das Problem ist nun, dass es merkwürdigerweise nur bei dem Fenster-Rollo wundebar funktioniert.
Die Rolladen der Türen fahren hingegen am Morgen nicht hoch. Nur einmal konnte ich bisher beobachten, dass es funktioniert hat.Verstehe ich leider gar nicht, da ich ja bis auf die Temperaturgrenze die gleichen DOIF-Definitionen verwende.
Dazu habe ich die folgenden DOIFs angelegt:
Wohnzimmer_Rolladen_Fenster:
Internals:
DEF ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
(set Wohnzimmer_Rolladen_Fenster off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 99) (set Wohnzimmer_Rolladen_Fenster on)
NAME DOIF_Wohnzimmer_Rolladen_Fenster
NR 206
NTFY_ORDER 50-Rolladen_Wohnzimmer_Fenster
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-30 08:02:49 Device TH_Sensor_1
2017-07-30 06:00:00 cmd 1
2017-07-30 06:00:00 cmd_event timer_1
2017-07-30 06:00:00 cmd_nr 1
2017-07-30 08:02:49 e_TH_Sensor_1_temperature 22.1
2017-07-27 06:47:17 mode enable
2017-07-30 06:00:00 state cmd_1
2017-07-30 06:00:00 timer_01_c01 31.07.2017 06:00:00
2017-07-29 21:40:54 timer_02_c02 30.07.2017 21:40:54
condition:
0 DOIF_time_once($hash,0,$wday)
1 DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 99
days:
devices:
1 TH_Sensor_1
all TH_Sensor_1
do:
0:
0 set Wohnzimmer_Rolladen_Fenster off
1:
0 set Wohnzimmer_Rolladen_Fenster on
2:
helper:
event battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev TH_Sensor_1
timerevents:
timer_1
timereventsState:
battery: ok
humidity: 74
state: T: 21.7 H: 74
temperature: 21.7
statTemperatureDayMin: 21.5
statTemperatureDayAvg: 22.1
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 16.9
triggerEvents:
battery: ok
humidity: 73
T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
triggerEventsState:
battery: ok
humidity: 73
state: T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
internals:
interval:
itimer:
localtime:
0 1501473600
1 1501443654
readings:
1 TH_Sensor_1:temperature
all TH_Sensor_1:temperature
realtime:
0 06:00:00
1 21:40:54
regexp:
0:
1:
all:
state:
STATE:
time:
0 {twilight("Tageslicht","sr_indoor","6:00","9:00")}
1 {twilight("Tageslicht","ss_indoor","19:00","22:30")}
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
trigger:
triggertime:
1501443654:
localtime 1501443654
hash:
1501473600:
localtime 1501473600
hash:
Attributes:
group Rolladen
room TEST
Wohnzimmer_Rolladen_Tuer_links:
Internals:
DEF ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
(set Wohnzimmer_Rolladen_Tuer_links off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 10) (set Wohnzimmer_Rolladen_Tuer_links on)
NAME DOIF_Wohnzimmer_Rolladen_Tuer_links
NR 211
NTFY_ORDER 50-Rolladen_Wohnzimmer_Tuer_links
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-30 08:02:49 Device TH_Sensor_1
2017-07-27 06:46:20 cmd 1
2017-07-27 06:46:20 cmd_event set_cmd_1
2017-07-27 06:46:20 cmd_nr 1
2017-07-30 08:02:49 e_TH_Sensor_1_temperature 22.1
2017-07-27 06:46:57 mode enable
2017-07-27 06:46:20 state cmd_1
2017-07-30 06:00:00 timer_01_c01 31.07.2017 06:00:00
2017-07-29 21:40:54 timer_02_c02 30.07.2017 21:40:54
condition:
0 DOIF_time_once($hash,0,$wday)
1 DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 10
days:
devices:
1 TH_Sensor_1
all TH_Sensor_1
do:
0:
0 set Wohnzimmer_Rolladen_Tuer_links off
1:
0 set Wohnzimmer_Rolladen_Tuer_links on
2:
helper:
event battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev TH_Sensor_1
timerevents:
timer_1
timereventsState:
battery: ok
humidity: 74
state: T: 21.7 H: 74
temperature: 21.7
statTemperatureDayMin: 21.5
statTemperatureDayAvg: 22.1
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 16.9
triggerEvents:
battery: ok
humidity: 73
T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
triggerEventsState:
battery: ok
humidity: 73
state: T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
internals:
interval:
itimer:
localtime:
0 1501473600
1 1501443654
readings:
1 TH_Sensor_1:temperature
all TH_Sensor_1:temperature
realtime:
0 06:00:00
1 21:40:54
regexp:
0:
1:
all:
state:
STATE:
time:
0 {twilight("Tageslicht","sr_indoor","6:00","9:00")}
1 {twilight("Tageslicht","ss_indoor","19:00","22:30")}
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
trigger:
triggertime:
1501443654:
localtime 1501443654
hash:
1501473600:
localtime 1501473600
hash:
Attributes:
group Rolladen
room TEST
verbose 5
Wohnzimmer_Rolladen_Tuer_rechts
Internals:
DEF ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}])
(set Wohnzimmer_Rolladen_Tuer_rechts off)
DOELSEIF ([{twilight("Tageslicht","ss_indoor","19:00","22:30")}] and [TH_Sensor_1:temperature] < 10) (set Wohnzimmer_Rolladen_Tuer_rechts on)
NAME DOIF_Wohnzimmer_Rolladen_Tuer_rechts
NR 212
NTFY_ORDER 50-Rolladen_Wohnzimmer_Tuer_rechts
STATE cmd_1
TYPE DOIF
READINGS:
2017-07-30 08:02:49 Device TH_Sensor_1
2017-07-27 06:00:00 cmd 1
2017-07-27 06:00:00 cmd_event timer_1
2017-07-27 06:00:00 cmd_nr 1
2017-07-30 08:02:49 e_TH_Sensor_1_temperature 22.1
2017-07-27 06:00:00 state cmd_1
2017-07-30 06:00:00 timer_01_c01 31.07.2017 06:00:00
2017-07-29 21:40:54 timer_02_c02 30.07.2017 21:40:54
2017-07-29 06:39:43 wait_timer no timer
condition:
0 DOIF_time_once($hash,0,$wday)
1 DOIF_time_once($hash,1,$wday) and ReadingValDoIf($hash,'TH_Sensor_1','temperature') < 10
days:
devices:
1 TH_Sensor_1
all TH_Sensor_1
do:
0:
0 set Wohnzimmer_Rolladen_Tuer_rechts off
1:
0 set Wohnzimmer_Rolladen_Tuer_rechts on
2:
helper:
event battery: ok,humidity: 73,T: 22.1 H: 73,temperature: 22.1,statTemperatureDayMin: 21.4,statTemperatureDayAvg: 21.9,statTemperatureDayMax: 22.7,statTemperatureMonthMin: 7.8,statTemperatureMonthAvg: 19.6,statTemperatureMonthMax: 35.7,statTemperatureYearMin: -3.3,statTemperatureYearAvg: 15.0,statTemperatureYearMax: 37.0,dewpoint: 17.0
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev TH_Sensor_1
timerevents:
timer_1
timereventsState:
battery: ok
humidity: 74
state: T: 21.7 H: 74
temperature: 21.7
statTemperatureDayMin: 21.5
statTemperatureDayAvg: 22.1
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 16.9
triggerEvents:
battery: ok
humidity: 73
T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
triggerEventsState:
battery: ok
humidity: 73
state: T: 22.1 H: 73
temperature: 22.1
statTemperatureDayMin: 21.4
statTemperatureDayAvg: 21.9
statTemperatureDayMax: 22.7
statTemperatureMonthMin: 7.8
statTemperatureMonthAvg: 19.6
statTemperatureMonthMax: 35.7
statTemperatureYearMin: -3.3
statTemperatureYearAvg: 15.0
statTemperatureYearMax: 37.0
dewpoint: 17.0
internals:
interval:
itimer:
localtime:
0 1501473600
1 1501443654
readings:
1 TH_Sensor_1:temperature
all TH_Sensor_1:temperature
realtime:
0 06:00:00
1 21:40:54
regexp:
0:
1:
all:
state:
STATE:
time:
0 {twilight("Tageslicht","sr_indoor","6:00","9:00")}
1 {twilight("Tageslicht","ss_indoor","19:00","22:30")}
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
trigger:
triggertime:
1501443654:
localtime 1501443654
hash:
1501473600:
localtime 1501473600
hash:
Attributes:
group Rolladen
room TEST
verbose 5
wait 0:600
Ein angelegte Protokoll zeigt weist auch nur die Aktivität des Fensters aus:
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd_nr: 1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd: 1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fenster cmd_event: timer_1
2017-07-30_06:00:00 DOIF_Wohnzimmer_Rolladen_Fensterr cmd_1
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster deviceMsg: zu (to vccu)
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster level: 100
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster motor: up:zu
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster pct: 100
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster zu
2017-07-30_06:00:00 Wohnzimmer_Rolladen_Fenster timedOn: offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster deviceMsg: offen (to vccu)
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster level: 0
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster motor: stop:offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster pct: 0
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster offen
2017-07-30_06:00:26 Wohnzimmer_Rolladen_Fenster timedOn: offen
Wer hat den Überblick und kann mir helfen? Vielen Dank schon mal!
Gruß
Heiko
Hast du bei dem DOIF ein "do always" gesetzt?
Beim Wohnzimmer verknüpfst du mit einen and [TH_Sensor_1:temperature] < 99
und bei den beiden anderen mit and [TH_Sensor_1:temperature] < 10
.
Ich vermute mal, dass die erste Bedingungung immer zutrifft und die zweite eher mal nur im Winter?
Hi,
ich denke ([{twilight("Tageslicht","sr_indoor","6:00","9:00")}]) liefert Dir nur eine Zeit. Damit kommt das DOIF aus diesem Status nicht heraus wenn der DOELSEIF Zweig nicht durchlaufen wird.
Du musst do always setzen nehme ich an. -> https://fhem.de/commandref_DE.html#DOIF_Inhaltsuebersicht
Gruß Otto
Zitat von: Papaloewe am 30 Juli 2017, 10:35:49
Beim Wohnzimmer verknüpfst du mit einen and [TH_Sensor_1:temperature] < 99
und bei den beiden anderen mit and [TH_Sensor_1:temperature] < 10
.
Ich vermute mal, dass die erste Bedingungung immer zutrifft und die zweite eher mal nur im Winter?
Genau deshalb mache ich das so.
Danke für die Hinweise auf "do always". Ich werde dass Attribut setzen und den eventuellen Erfolg hier posten.
Dank und Gruß
Heiko
Zitat von: heiko.ne am 30 Juli 2017, 14:06:38
Genau deshalb mache ich das so.
Aber die Abfrage and [TH_Sensor_1:temperature] < 99 kannst Du auch weglassen. ;D
Hallo Heiko,
ich war da, wo du gerade bist, auch mal: 12 Rollos mit je 3 DOifs...nie wieder.
Spar dir den Ärger und nutze diese geniale Modul von Bernd:
https://forum.fhem.de/index.php/topic,73964.0.html
Das Ding läuft und der WAF ist unschlagbar.
VG
Christian
Also, ich kann bestätigen, dass das Attribut "do always" hier die Lösung war.
Ich sage Danke für den Hinweis darauf und schließe dieses Thema.
Gruß
Heiko
[gelöst] im Betreff ergänzt.
Zitat von: heiko.ne am 31 Juli 2017, 13:45:56
[gelöst] im Betreff ergänzt.
Du solltest das im ersten Beitrag machen, dann hat es auch Auswirkungen auf den Gesamt-Thread-Titel ;) .