Hallo,
seit heute Morgen funktioniert mein DOIF für die Rollladensteuerung nicht mehr.
Es ist als hätte ich das Attribut "do always" gesetzt, das habe ich aber nicht:
Internals:
DEF ([06:00-10:00] and [Multisensor_MS:brightness] > 200 and ([Bewohner:state] eq "absent" or [Bewohner:state] eq "gone")) (set tracker 1) ({fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLS at +00:04:00 set Rollladen_Schlafzimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")})
DOELSEIF
([Datum:state] eq [Handywecker_Philipp:Datum] and [[Handywecker_Philipp:Uhrzeit]-10:00] and [Multisensor_MS:brightness] > 200 and [rr_Philipp:state] ne "asleep" and [Gast:state] eq "none") (set tracker 2) ({ fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")})
DOELSEIF
([Datum:state] eq [Handywecker_Philipp:Datum] and [[Handywecker_Philipp:Uhrzeit]-10:00] and [Multisensor_MS:brightness] > 200 and [rr_Philipp:state] ne "asleep" and [Gast:state] ne "none") (set tracker 3) ({fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")})
DOELSEIF
([06:00-10:00] and [Multisensor_MS:brightness] > 200 and [rr_Philipp:state] ne "asleep" and [Gast:state] eq "none") (set tracker 4) ({ fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")})
DOELSEIF
([06:00-10:00] and [Multisensor_MS:brightness] > 200 and [rr_Philipp:state] ne "asleep" and [Gast:state] ne "none") (set tracker 5) ({fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")})
DOELSEIF
([16:00-23:00] and [Multisensor_MS:brightness] < 10 and ($month <= 4 || $month >= 9 or ([Bewohner:state] ne "home" and [Bewohner:state] ne "gotosleep"))) (set tracker 6) ({ fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite down;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite down;; define RLE at +00:00:30 set Rollladen_Esszimmer down;;define RLWF at +00:02:00 set Rollladen_Wohnzimmer_Fenster down; define RLWT at +00:03:00 set Rollladen_Wohnzimmer_Tuer down;; define RLS at +00:01:30 set Rollladen_Schlafzimmer down;; define RLK at +00:02:50 set Rollladen_Kinderzimmer down ") })
DOELSEIF
([16:00-23:00] and [Multisensor_MS:brightness] < 10) (set tracker 7) ({ fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite down;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite down;; define RLE at +00:00:30 set Rollladen_Esszimmer down;; define RLS at +00:01:30 set Rollladen_Schlafzimmer down;; define RLK at +00:02:50 set Rollladen_Kinderzimmer down ") })
NAME Rollladensteuerung
NR 188
NTFY_ORDER 50-Rollladensteuerung
STATE initialized
TYPE DOIF
Readings:
2017-06-08 11:47:53 Device rr_Philipp
2017-06-08 11:38:33 cmd 0
2017-06-08 11:45:32 e_Multisensor_MS_brightness 999
2017-06-08 11:47:53 e_rr_Philipp_state absent
2017-06-08 11:38:33 state initialized
2017-06-08 11:38:33 timer_01_c01 09.06.2017 06:00:00
2017-06-08 11:38:33 timer_02_c01 09.06.2017 10:00:00
2017-06-08 11:38:33 timer_03_c02 09.06.2017 05:40:00
2017-06-08 11:38:33 timer_04_c02 09.06.2017 10:00:00
2017-06-08 11:38:33 timer_05_c03 09.06.2017 05:40:00
2017-06-08 11:38:33 timer_06_c03 09.06.2017 10:00:00
2017-06-08 11:38:33 timer_07_c04 09.06.2017 06:00:00
2017-06-08 11:38:33 timer_08_c04 09.06.2017 10:00:00
2017-06-08 11:38:33 timer_09_c05 09.06.2017 06:00:00
2017-06-08 11:38:33 timer_10_c05 09.06.2017 10:00:00
2017-06-08 11:38:33 timer_11_c06 08.06.2017 16:00:00
2017-06-08 11:38:33 timer_12_c06 08.06.2017 23:00:00
2017-06-08 11:38:33 timer_13_c07 08.06.2017 16:00:00
2017-06-08 11:38:33 timer_14_c07 08.06.2017 23:00:00
Condition:
0 DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') > 200 and (ReadingValDoIf($hash,'Bewohner','state') eq "absent" or ReadingValDoIf($hash,'Bewohner','state') eq "gone")
1 ReadingValDoIf($hash,'Datum','state') eq ReadingValDoIf($hash,'Handywecker_Philipp','Datum') and DOIF_time($hash,2,3,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') > 200 and ReadingValDoIf($hash,'rr_Philipp','state') ne "asleep" and ReadingValDoIf($hash,'Gast','state') eq "none"
2 ReadingValDoIf($hash,'Datum','state') eq ReadingValDoIf($hash,'Handywecker_Philipp','Datum') and DOIF_time($hash,4,5,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') > 200 and ReadingValDoIf($hash,'rr_Philipp','state') ne "asleep" and ReadingValDoIf($hash,'Gast','state') ne "none"
3 DOIF_time($hash,6,7,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') > 200 and ReadingValDoIf($hash,'rr_Philipp','state') ne "asleep" and ReadingValDoIf($hash,'Gast','state') eq "none"
4 DOIF_time($hash,8,9,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') > 200 and ReadingValDoIf($hash,'rr_Philipp','state') ne "asleep" and ReadingValDoIf($hash,'Gast','state') ne "none"
5 DOIF_time($hash,10,11,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') < 10 and ($month <= 4 || $month >= 9 or (ReadingValDoIf($hash,'Bewohner','state') ne "home" and ReadingValDoIf($hash,'Bewohner','state') ne "gotosleep"))
6 DOIF_time($hash,12,13,$wday,$hms) and ReadingValDoIf($hash,'Multisensor_MS','brightness') < 10
Days:
Devices:
0 Multisensor_MS Bewohner
1 Datum Handywecker_Philipp Multisensor_MS rr_Philipp Gast
2 Datum Handywecker_Philipp Multisensor_MS rr_Philipp Gast
3 Multisensor_MS rr_Philipp Gast
4 Multisensor_MS rr_Philipp Gast
5 Multisensor_MS Bewohner
6 Multisensor_MS
all Multisensor_MS Bewohner Datum Handywecker_Philipp rr_Philipp Gast
Do:
0:
0 set tracker 1
1 {fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLS at +00:04:00 set Rollladen_Schlafzimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")}
1:
0 set tracker 2
1 { fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")}
2:
0 set tracker 3
1 {fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")}
3:
0 set tracker 4
1 { fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLWF at +00:00:59 set Rollladen_Wohnzimmer_Fenster up;;define RLWT at +00:01:10 set Rollladen_Wohnzimmer_Tuer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")}
4:
0 set tracker 5
1 {fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite up;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite up;;define RLE at +00:00:40 set Rollladen_Esszimmer up;;define RLK at +00:02:00 set Rollladen_Kinderzimmer up ")}
5:
0 set tracker 6
1 { fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite down;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite down;; define RLE at +00:00:30 set Rollladen_Esszimmer down;;define RLWF at +00:02:00 set Rollladen_Wohnzimmer_Fenster down; define RLWT at +00:03:00 set Rollladen_Wohnzimmer_Tuer down;; define RLS at +00:01:30 set Rollladen_Schlafzimmer down;; define RLK at +00:02:50 set Rollladen_Kinderzimmer down ") }
6:
0 set tracker 7
1 { fhem(" define RLK1 at +00:00:01 set Rollladen_Kueche_Ostseite down;;define RLK2 at +00:00:20 set Rollladen_Kueche_Suedseite down;; define RLE at +00:00:30 set Rollladen_Esszimmer down;; define RLS at +00:01:30 set Rollladen_Schlafzimmer down;; define RLK at +00:02:50 set Rollladen_Kinderzimmer down ") }
7:
Helper:
event durTimerAbsence_cr: 263,durTimerAbsence: 04:23:19
globalinit 1
last_timer 14
sleeptimer -1
triggerDev rr_Philipp
triggerEvents:
durTimerAbsence_cr: 263
durTimerAbsence: 04:23:19
triggerEventsState:
durTimerAbsence_cr: 263
durTimerAbsence: 04:23:19
Internals:
Interval:
0 -1
1 0
10 -1
11 10
12 -1
13 12
2 -1
3 2
4 -1
5 4
6 -1
7 6
8 -1
9 8
Itimer:
all Handywecker_Philipp
Localtime:
0 1496980800
1 1496995200
10 1496930400
11 1496955600
12 1496930400
13 1496955600
2 1496979600
3 1496995200
4 1496979600
5 1496995200
6 1496980800
7 1496995200
8 1496980800
9 1496995200
Readings:
0 Multisensor_MS:brightness Bewohner:state
1 Datum:state Handywecker_Philipp:Datum Multisensor_MS:brightness rr_Philipp:state Gast:state
2 Datum:state Handywecker_Philipp:Datum Multisensor_MS:brightness rr_Philipp:state Gast:state
3 Multisensor_MS:brightness rr_Philipp:state Gast:state
4 Multisensor_MS:brightness rr_Philipp:state Gast:state
5 Multisensor_MS:brightness Bewohner:state
6 Multisensor_MS:brightness
all Multisensor_MS:brightness Bewohner:state Datum:state Handywecker_Philipp:Datum rr_Philipp:state Gast:state
Realtime:
0 06:00:00
1 10:00:00
10 16:00:00
11 23:00:00
12 16:00:00
13 23:00:00
2 05:40:00
3 10:00:00
4 05:40:00
5 10:00:00
6 06:00:00
7 10:00:00
8 06:00:00
9 10:00:00
Regexp:
0:
1:
2:
3:
4:
5:
6:
All:
State:
Time:
0 06:00:00
1 10:00:00
10 16:00:00
11 23:00:00
12 16:00:00
13 23:00:00
2 [Handywecker_Philipp:Uhrzeit]
3 10:00:00
4 [Handywecker_Philipp:Uhrzeit]
5 10:00:00
6 06:00:00
7 10:00:00
8 06:00:00
9 10:00:00
Timecond:
0 0
1 0
10 5
11 5
12 6
13 6
2 1
3 1
4 2
5 2
6 3
7 3
8 4
9 4
Timer:
0 0
1 0
10 0
11 0
12 0
13 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
Timers:
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9
5 10 11
6 12 13
Trigger:
Triggertime:
1496930400:
localtime 1496930400
Hash:
1496955600:
localtime 1496955600
Hash:
1496979600:
localtime 1496979600
Hash:
1496980800:
localtime 1496980800
Hash:
1496995200:
localtime 1496995200
Hash:
Attributes:
group Rollläden
room Automatisierungen
set tracker 1-7 habe ich nur zum testen eingefügt.
hat jemand eine Idee warum jede halbe Minute tracker 1 und dann tracker 4 ist.
eigentlich sollte ein Befehl nur einmal ausgeführt werden.
Habe ich was übersehen?
vermutlich treffen beide Bedingungen zu - mit jedem neuen trigger (alle 30 Sekunden update von brightness?) wird die zutreffende Bedingung, die gerade nicht aktiv ist getriggert...
Hmm, ich dachte der prüft der Reihe nach durch und bricht ab, wenn etwas zutrifft.
In dem Fall sind beide wahr. ich werfe mal eins raus und schaue was passiert.
Danke.
Danke KernSani. Läuft jetzt wunderbar, DOIF wieder ein Stück mehr verstanden...
Um die wiederholte Ausführung zu unterbinden fragt DOIF bei jeder If-Schleife ab ob diese beim letzten Durchlauf ausgeführt wurde.
Wenn zwei wahr sind, wechseln diese sich ab.
Zur Problemlösung habe ich ein Reading eingesetzt welches zusätzlich abgefragt wird und nur geändert wird wenn die Rollläden ihre Position wirklich ändern sollen.
Generell ist es empfehlenswert, die DOIF/ELSE Zweige eindeutig zu definieren, sonst kann es immer passieren, dass irgendwas komisch schaltet...
Setzt du bitte noch [Gelöst] vor das Subject des ersten Posts?