Hallo zusammen,
ich weiß mir in diesem Fall nicht mehr zu helfen und hoffe auf einen Tipp:
Hier zunächst mein DOIF:
Internals:
CFGFN Config/01-Wohnzimmer.cfg
DEF ([?switch.di.02.EG.wz.RO.dum] eq "on" and
(([{sunrise_abs("HORIZON=-2",0,"06:30","08:00")}|12345] and
![?state.NRW.Ferien.dum] and [?hl.01.Feiertag:today] eq "none") or
([{sunrise_abs("HORIZON=-2",0,"07:30","08:30")}])))
(set EG.wz.RO.*:FILTER=STATE!=open auf)
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE
NAME di.02.EG.wz.RO
NR 859
NTFY_ORDER 50-di.02.EG.wz.RO
STATE on
TYPE DOIF
Readings:
2016-01-15 08:19:26 cmd_event timer_2
2016-01-15 08:19:26 cmd_nr 1
2016-01-15 08:19:26 state on
2016-01-15 08:00:00 timer_1_c1 16.01.2016 08:00:00|12345
2016-01-15 08:19:26 timer_2_c1 16.01.2016 08:18:37
Condition:
0 InternalDoIf('switch.di.02.EG.wz.RO.dum','STATE','') eq "on" and ((DOIF_time_once($hash,$hash->{timer}{0},$wday,"12345") and !InternalDoIf('state.NRW.Ferien.dum','STATE','') and ReadingValDoIf('hl.01.Feiertag','today','') eq "none") or (DOIF_time_once($hash,$hash->{timer}{1},$wday,"")))
1 InternalDoIf('switch.di.02.EG.wz.RO.dum','STATE','') eq "off"
Days:
0 12345
Devices:
1 switch.di.02.EG.wz.RO.dum
all switch.di.02.EG.wz.RO.dum
Do:
0:
0 set EG.wz.RO.*:FILTER=STATE!=open auf
1:
0
2:
0
Helper:
globalinit 1
last_timer 2
sleeptimer -1
Internals:
1 switch.di.02.EG.wz.RO.dum:STATE
all switch.di.02.EG.wz.RO.dum:STATE
Itimer:
Readings:
Realtime:
0 08:00:00
1 08:18:37
State:
Time:
0 {sunrise_abs("HORIZON=-2",0,"06:30","08:00")}
1 {sunrise_abs("HORIZON=-2",0,"07:30","08:30")}
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0 1
Attributes:
alias autom. Rolladen öffnen
cmdState on|off|on
devStateIcon .*on:general_an@lightgreen .*off:general_aus@red
do always
group Scripte
icon fts_shutter_up
room 01-Wohnzimmer
sortby 01
Laut DOIF sollen die Rolladen (links und rechts) wektags spätestens um 08:00 Uhr öffnen und an Ferientagen, am WE oder Feiertagen um 08:30 Uhr (bzw. früher, wenn sunrise triggert). Das funktioniert scheinbar auch! Allerdings kommt es von Zeit zu Zeit vor (komischerweise nur freitags, laut Log am 08.01. und am 15.01), dass der Rolladen wieder herunterfährt, nachdem er zuvor um 08:00 richtigerweise geöffnet wurde. Offenbar läuft hier etwas bei dem Trigger auf or
([{sunrise_abs("HORIZON=-2",0,"07:30","08:30")}])))
(set EG.wz.RO.*:FILTER=STATE!=open auf))
falsch. Es ist aufgrund der Uhrzeit eindeutig demTrigger auf "sunrise" zuzuordnen.
Es ist aber nirgends ein "shutdown/ab" - Kommando in Verbindung mit einem "sunrise" verarbeitet. Es gibt zwar ein shutdown-Kommando für die Rolladen, welches aber von einem anderen Device (Gartenbeleuchtungsautomatik) abhängt.
Shutdown-DOIF:
Internals:
CFGFN Config/01-Wohnzimmer.cfg
DEF ([?switch.di.02.EG.wz.RO.dum] eq "on" and [?help.01.EG.wz.RO.dum] eq "on" and [GA.ss.SA.Licht] eq "off")
(set help.01.EG.wz.RO.dum off, set EG.wz.RO.* closes)
DOELSEIF
([switch.di.02.EG.wz.RO.dum] eq "off")
DOELSE
NAME di.01.EG.wz.RO
NR 850
NTFY_ORDER 50-di.01.EG.wz.RO
STATE on
TYPE DOIF
Readings:
2016-01-14 22:00:00 Device GA.ss.SA.Licht
2016-01-14 22:02:01 cmd_event GA.ss.SA.Licht
2016-01-14 22:02:01 cmd_nr 1
2016-01-14 22:00:00 e_GA.ss.SA.Licht_STATE off
2015-12-23 09:58:23 e_switch.di.02.EG.wz.RO.dum_STATE on
2016-01-14 22:02:01 state on
2016-01-14 22:02:00 wait_timer no timer
Condition:
0 InternalDoIf('switch.di.02.EG.wz.RO.dum','STATE','') eq "on" and InternalDoIf('help.01.EG.wz.RO.dum','STATE','') eq "on" and InternalDoIf('GA.ss.SA.Licht','STATE','') eq "off"
1 InternalDoIf('switch.di.02.EG.wz.RO.dum','STATE','') eq "off"
Devices:
0 GA.ss.SA.Licht
1 switch.di.02.EG.wz.RO.dum
all GA.ss.SA.Licht switch.di.02.EG.wz.RO.dum
Do:
0:
0 set help.01.EG.wz.RO.dum off, set EG.wz.RO.* closes
1:
0
2:
0
Helper:
globalinit 1
last_timer 0
sleepdevice GA.ss.SA.Licht
sleepsubtimer -1
sleeptimer -1
Internals:
0 GA.ss.SA.Licht:STATE
1 switch.di.02.EG.wz.RO.dum:STATE
all GA.ss.SA.Licht:STATE switch.di.02.EG.wz.RO.dum:STATE
Itimer:
Readings:
State:
Trigger:
Attributes:
alias autom. Rolladen schließen
cmdState on|off|on
devStateIcon .*on:general_an@lightgreen .*off:general_aus@red
do resetwait
group Scripte
icon fts_shutter_down
room 01-Wohnzimmer
wait 120:0:0
Diese beiden Kommandos sind die Einzigen, die den Rolladen steuern!
Da beide Aktoren gleichermassen reagieren, halte ich auch einen Aktorfehler für ausgeschlossen.
Hat jemand eine Idee, wo ich suchen soll? Ich kann mir das nicht erklären. Den einzigen Zusammenhang, den ich erkenne, ist, dass dies offenbar nur freitags passiert!
Danke und Gruß,
Christian
Ist das Gartenlicht auch über sunrise gesteuert? Wenn ja, dann könnte wait 120 das verzögerte Runterfahren bewirken.
Hi,
im Prinzip ist Gartenlicht über sunrise getriggert (das ist das dummy device "help.Tageslicht.dum", welches in Abhängigkeit von sunrise auf "hel" bzw. "dunkel" gesetzt wird). Aber das Wait 120 wird gar nicht ausgeführt. Der Rolladen fährt quasi zeitgleich mit dem sunrise hoch. Das zeigen die Uhrzeiten im Log.
Ich habe absolut keinen Plan, was da los ist. Ich versuche gerade die Logs auszuwerten, aber ich kann mir keinen Reim darauf machen....das Komische ist, das das vor genau einer Woche also am 08.01. völlig identisch war!
Zeitgleich zum Sonnenaufgang fährt der Rolladen hoch. Kann es sein, dass irgendwo in fhem noch ein altes Device hängt, was in der Oberfläche nicht sichtbar ist und imn Hintergrund noch läuft? Wie kann man das finden?
Christian
Hallo,
nochmals ich!
Ich vermute es ist ein enocean Ansteuerproblem! Im fhem.log finde ich diese Einträge
(wobei 08:19:26, die sunrise-Zeit ist; der doppelte opens-Befehl ist gewollt und wird gesendet, wenn der Aktor beim ersten Senden nicht quittiert. Das deutet auf ein Empfangsproblem hin, sollte hier aber nicht das Thema sein, da auch der rechte Aktor, ohne Empfangsprobleme, ebenfalls den falschen Befehl versteht, das ist im Aktor.log auch zu sehen):
2016.01.15 08:00:00 3: EnOcean set EG.wz.RO.links opens
2016.01.15 08:00:00 3: EnOcean set EG.wz.RO.rechts opens
2016.01.15 08:01:40 3: EnOcean set EI.ss.SA.Licht off
2016.01.15 08:08:24 3: EnOcean set EI.ss.SA.Licht on
2016.01.15 08:08:24 3: EnOcean set EI.ss.SA.Licht on
2016.01.15 08:11:21 3: EnOcean set EI.ss.SA.Licht off
2016.01.15 08:15:00 3: EnOcean set KG.ss.SA.ZirkuPumpe off
2016.01.15 08:19:26 3: EnOcean set GA.ss.SA.Licht off
2016.01.15 08:19:26 3: EnOcean set EG.wz.RO.links opens
2016.01.15 08:19:26 3: EnOcean set EG.wz.RO.rechts opens
2016.01.15 08:19:27 3: EnOcean set EG.wz.RO.links opens
2016.01.15 08:19:28 3: EnOcean set EG.wz.RO.links opens
Im Aktor-Log sieht das so aus:
2016-01-15_08:00:00 EG.wz.RO.rechts shutterState: auf
2016-01-15_08:00:02 EG.wz.RO.rechts position: 49
2016-01-15_08:00:04 EG.wz.RO.rechts position: 39
2016-01-15_08:00:07 EG.wz.RO.rechts position: 29
2016-01-15_08:00:10 EG.wz.RO.rechts position: 19
2016-01-15_08:00:12 EG.wz.RO.rechts position: 9
2016-01-15_08:00:16 EG.wz.RO.rechts position: 0
2016-01-15_08:00:16 EG.wz.RO.rechts endPosition: open
2016-01-15_08:00:16 EG.wz.RO.rechts open
2016-01-15_08:00:16 EG.wz.RO.rechts shutterState: stopped
2016-01-15_08:19:26 EG.wz.RO.rechts endPosition: not_reached
2016-01-15_08:19:26 EG.wz.RO.rechts not_reached
2016-01-15_08:19:26 EG.wz.RO.rechts shutterState: ab
2016-01-15_08:19:29 EG.wz.RO.rechts position: 10
2016-01-15_08:19:31 EG.wz.RO.rechts position: 20
2016-01-15_08:19:34 EG.wz.RO.rechts position: 30
2016-01-15_08:19:36 EG.wz.RO.rechts position: 41
2016-01-15_08:19:36 EG.wz.RO.rechts shutterState: stopped
Keine Ahnung, ob meine Vermutung richtig ist, aber:
- im fhem.log steht, was gesendet wird
- in der Aktor.log steht, was der Aktor verstanden und quittiert hat
Wenn das so zutrifft, dann muss ich mal im enocean Forum weiter recherchieren!
Christian
2016-01-15_08:00:16 EG.wz.RO.rechts open, Aktor sagt Rolladen geöffnet
2016.01.15 08:19:26 3: EnOcean set GA.ss.SA.Licht off, Das Gartenlicht wird ausgeschaltet
Das DOIF "di.01.EG.wz.RO" wird getriggert durch "[GA.ss.SA.Licht] eq "off"" und schaltet mit "set EG.wz.RO.* closes" den Rolladen auf runterfahren.
016-01-15_08:19:26 EG.wz.RO.rechts shutterState: ab, Aktor sagt Ich fahre runter
Interpretiere ich das richtig?
Hallo Ellert,
Das habe ich zunächst auch vermutet, aber:
1. "?help.01.EG.wz.RO.dum" ist zu diesem Zeitpunkt definitiv "off" ( das Modul triggert nicht, die Zeiten und das Datum im Frontend des DOIFs stehen auf gestern 22:02Uhr)
2. DIe Zeitverzögerungen müsste greifen!
3. Warum passiert das nicht täglich?
Oder sehe ich das falsch?
Christian
Ja, da muss ich Dir zustimmen, aber beide Zeiten liegen bei 08:19:26 verdächtig zeitgleich . Es war ein erster Versuch zum Aufwärmen.
Es gab vom DOIF in letzter Zeit Updates, ist Dein DOIF auf dem aktuellen Stand?
ZitatKann es sein, dass irgendwo in fhem noch ein altes Device hängt, was in der Oberfläche nicht sichtbar ist und imn Hintergrund noch läuft? Wie kann man das finden?
Du kannst die fhem.cfg, die 99_My_Utils.pm oder wo auch immer Du noch Code eingebaut hast, nach EG.wz.RO oder anderen damit zusammenhängenden Begriffen durchsuchen und schauen, ob es irgendwo einen verdächtigen set-Befehl gibt.
Ist die codemirror-Erweiterung installiert? Dann kannst Du mit Strg-F im Editor suchen und es werden alle Fundstellen markiert, s. http://forum.fhem.de/index.php/topic,45373.msg371668.html#msg371668
Du könntest auch mit einem notify auf verdächtige Ereignisse lauschen
define lauschen notify .* {Log 1, "Name: $NAME, Ereignis: $EVENT"}
Mit einer entsprechenden Regexp und dem richtigen Zeitpunkt, wird das Logfile auch nicht zu gross.
Mehr fällt mir erstmal nicht ein.
Hallo,
Ich werde Deine Tipps mal umsetzen, und mich melden,
Parallel werde ich mal Klaus im enocean Forum bitten, mal einen Blick auf die Sache zu werfen!
Vielen Dank schon mal!,
Christiwn