Hallo,
ich habe ein ziemlich großes DOIF gebaut. Davon daher nur ein kleiner Ausschnitt mit der ersten Bedingung:
Internals:
DEF ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
[Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
({Beschattung("Ost")})
DOELSEIF ...
NAME GEN_Beschattung
NR 541
NTFY_ORDER 50-GEN_Beschattung
STATE cmd_1
TYPE DOIF
CHANGETIME:
Helper:
Dblog:
Cmd_event:
Eventlog:
TIME 1434640363.92222
VALUE GEN_Aussensensor
Cmd_nr:
Eventlog:
TIME 1434640363.92222
VALUE 1
State:
Eventlog:
TIME 1434640363.92222
VALUE cmd_1
Readings:
2015-06-18 17:12:43 cmd_event GEN_Aussensensor
2015-06-18 17:12:43 cmd_nr 1
2015-06-18 17:45:59 e_GEN_Aussensensor_luminosity 7207
2015-06-18 17:45:59 e_GEN_Aussensensor_temperature 26.1
2015-06-18 17:42:40 e_Wetter_condition überwiegend wolkig
2015-06-18 17:42:40 e_Wetter_fc1_condition teilweise wolkig
2015-06-18 17:42:40 e_Wetter_fc1_high_c 20
2015-06-18 17:12:43 state cmd_1
2015-06-18 17:12:49 timer_10_c5 19.06.2015 12:31:00
2015-06-18 17:12:49 timer_11_c5 19.06.2015 15:59:00
2015-06-18 17:12:49 timer_12_c6 19.06.2015 16:00:00
2015-06-18 17:12:49 timer_13_c6 18.06.2015 17:59:00
2015-06-18 17:12:49 timer_14_c7 19.06.2015 16:00:00
2015-06-18 17:12:49 timer_15_c7 18.06.2015 17:59:00
2015-06-18 17:12:49 timer_16_c8 18.06.2015 18:00:00
2015-06-18 17:12:49 timer_17_c9 18.06.2015 18:01:00
2015-06-18 17:12:49 timer_18_c9 18.06.2015 19:00:00
2015-06-18 17:12:49 timer_19_c10 18.06.2015 18:01:00
2015-06-18 17:12:49 timer_1_c1 19.06.2015 06:30:00|8
2015-06-18 17:12:49 timer_20_c10 18.06.2015 19:59:00
2015-06-18 17:12:49 timer_21_c11 18.06.2015 20:00:00
2015-06-18 17:12:49 timer_22_c12 18.06.2015 22:00:00
2015-06-18 17:12:49 timer_2_c1 19.06.2015 10:29:00|8
2015-06-18 17:12:49 timer_3_c1 19.06.2015 07:34:59
2015-06-18 17:12:49 timer_4_c1 19.06.2015 10:29:00
2015-06-18 17:12:49 timer_5_c2 19.06.2015 10:30:00
2015-06-18 17:12:49 timer_6_c2 19.06.2015 12:29:00
2015-06-18 17:12:49 timer_7_c3 19.06.2015 12:30:00
2015-06-18 17:12:49 timer_8_c4 19.06.2015 12:31:00
2015-06-18 17:12:49 timer_9_c4 19.06.2015 15:59:00
Condition:
0 ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
Days:
0 8
1 8
Devices:
0 Wetter GEN_Aussensensor
1 Wetter GEN_Aussensensor
3 GEN_Aussensensor Wetter
4 GEN_Aussensensor
5 GEN_Aussensensor Wetter
6 GEN_Aussensensor
8 GEN_Aussensensor Wetter
9 GEN_Aussensensor
all Wetter GEN_Aussensensor
Do:
0 {Beschattung("Ost")}
...
Helper:
last_timer 22
sleeptimer -1
Internals:
Itimer:
Readings:
0 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
Realtime:
0 06:30:00
1 10:29:00
2 07:34:59
3 10:29:00
State:
Time:
0 {sunrise(0,"06:30","08:30")}
1 10:29:00
2 {sunrise(0,"07:35","10:00")}
3 10:29:00
Timecond:
0 0
1 0
2 0
3 0
4 1
Timer:
0 0
1 0
2 0
3 0
Timerfunc:
Timers:
0 0 1 2 3
1 4 5
2 6
3 7 8
Trigger:
Attributes:
disable 0
group Timer
room System
Nach einem Update habe ich um 17.13 Uhr einen shutdown restart gemacht. Komischerweise hat dieses DOIF dann mit cmd_1 reagiert, ausgelöst durch den GEN_Aussensensor. Eigentlich hätte aber cmd_1 nicht ausgelöst werden dürfen, da neben dem triggernden Aussensensor gleichwertig eine Zeitabfrage daneben steht, die eigentlich nicht erfüllt sein sollte.
Wo ist der (mein) (Denk-) Fehler?
Kannst du den Fehler auch mit einem "shutdown restart" (ohne Update) reproduzieren?
Ja. Konnte ich.
Zitat von: Ralli am 18 Juni 2015, 21:46:04
Ja. Konnte ich.
Das macht das Debugging einfacher. Ich würde das DOIF schrittweise vereinfachen.
Evtl. ist es so schon fehlerfrei:
([06:30-10:29] and [Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
({Beschattung("Ost")})
Dann kann man wieder das DOIF schrittweise ausbauen.
Zitat von: Ralli am 18 Juni 2015, 17:54:47
Hallo,
ich habe ein ziemlich großes DOIF gebaut. Davon daher nur ein kleiner Ausschnitt mit der ersten Bedingung:
Internals:
DEF ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
[Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
({Beschattung("Ost")})
DOELSEIF ...
NAME GEN_Beschattung
NR 541
NTFY_ORDER 50-GEN_Beschattung
STATE cmd_1
TYPE DOIF
CHANGETIME:
Helper:
Dblog:
Cmd_event:
Eventlog:
TIME 1434640363.92222
VALUE GEN_Aussensensor
Cmd_nr:
Eventlog:
TIME 1434640363.92222
VALUE 1
State:
Eventlog:
TIME 1434640363.92222
VALUE cmd_1
Readings:
2015-06-18 17:12:43 cmd_event GEN_Aussensensor
2015-06-18 17:12:43 cmd_nr 1
2015-06-18 17:45:59 e_GEN_Aussensensor_luminosity 7207
2015-06-18 17:45:59 e_GEN_Aussensensor_temperature 26.1
2015-06-18 17:42:40 e_Wetter_condition überwiegend wolkig
2015-06-18 17:42:40 e_Wetter_fc1_condition teilweise wolkig
2015-06-18 17:42:40 e_Wetter_fc1_high_c 20
2015-06-18 17:12:43 state cmd_1
2015-06-18 17:12:49 timer_10_c5 19.06.2015 12:31:00
2015-06-18 17:12:49 timer_11_c5 19.06.2015 15:59:00
2015-06-18 17:12:49 timer_12_c6 19.06.2015 16:00:00
2015-06-18 17:12:49 timer_13_c6 18.06.2015 17:59:00
2015-06-18 17:12:49 timer_14_c7 19.06.2015 16:00:00
2015-06-18 17:12:49 timer_15_c7 18.06.2015 17:59:00
2015-06-18 17:12:49 timer_16_c8 18.06.2015 18:00:00
2015-06-18 17:12:49 timer_17_c9 18.06.2015 18:01:00
2015-06-18 17:12:49 timer_18_c9 18.06.2015 19:00:00
2015-06-18 17:12:49 timer_19_c10 18.06.2015 18:01:00
2015-06-18 17:12:49 timer_1_c1 19.06.2015 06:30:00|8
2015-06-18 17:12:49 timer_20_c10 18.06.2015 19:59:00
2015-06-18 17:12:49 timer_21_c11 18.06.2015 20:00:00
2015-06-18 17:12:49 timer_22_c12 18.06.2015 22:00:00
2015-06-18 17:12:49 timer_2_c1 19.06.2015 10:29:00|8
2015-06-18 17:12:49 timer_3_c1 19.06.2015 07:34:59
2015-06-18 17:12:49 timer_4_c1 19.06.2015 10:29:00
2015-06-18 17:12:49 timer_5_c2 19.06.2015 10:30:00
2015-06-18 17:12:49 timer_6_c2 19.06.2015 12:29:00
2015-06-18 17:12:49 timer_7_c3 19.06.2015 12:30:00
2015-06-18 17:12:49 timer_8_c4 19.06.2015 12:31:00
2015-06-18 17:12:49 timer_9_c4 19.06.2015 15:59:00
Condition:
0 ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
Days:
0 8
1 8
Devices:
0 Wetter GEN_Aussensensor
1 Wetter GEN_Aussensensor
3 GEN_Aussensensor Wetter
4 GEN_Aussensensor
5 GEN_Aussensensor Wetter
6 GEN_Aussensensor
8 GEN_Aussensensor Wetter
9 GEN_Aussensensor
all Wetter GEN_Aussensensor
Do:
0 {Beschattung("Ost")}
...
Helper:
last_timer 22
sleeptimer -1
Internals:
Itimer:
Readings:
0 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
Realtime:
0 06:30:00
1 10:29:00
2 07:34:59
3 10:29:00
State:
Time:
0 {sunrise(0,"06:30","08:30")}
1 10:29:00
2 {sunrise(0,"07:35","10:00")}
3 10:29:00
Timecond:
0 0
1 0
2 0
3 0
4 1
Timer:
0 0
1 0
2 0
3 0
Timerfunc:
Timers:
0 0 1 2 3
1 4 5
2 6
3 7 8
Trigger:
Attributes:
disable 0
group Timer
room System
Nach einem Update habe ich um 17.13 Uhr einen shutdown restart gemacht. Komischerweise hat dieses DOIF dann mit cmd_1 reagiert, ausgelöst durch den GEN_Aussensensor. Eigentlich hätte aber cmd_1 nicht ausgelöst werden dürfen, da neben dem triggernden Aussensensor gleichwertig eine Zeitabfrage daneben steht, die eigentlich nicht erfüllt sein sollte.
Wo ist der (mein) (Denk-) Fehler?
GEN_Aussensensor hat offenbar zugeschlagen (17:12:43), bevor das System die Initialisierung abgeschlossen hat. Das kann man daran erkennen, weil die Timer erst paar Sekunden später gesetzt wurden (17:12:49). So etwas haben wir schon mal gehabt (ich glaube in Verbindung mit einem Proxy). Meiner Meinung dürfte es keine Events geben, wenn das System noch nicht komplett hochgefahren ist, aber das ist nicht meine Baustelle. Der Patch von flurin würde dagegen helfen, siehe http://forum.fhem.de/index.php/topic,36311.0.html. Den baue ich im nächsten Update ein.
Gruß
Damian
Dankeschön! ;)
Hallo Damian,
mit Deiner letzten Test-Version hier aus dem Forum ist das Problem immer noch aufgetreten.
Zitat von: Ralli am 25 Juni 2015, 16:42:59
Hallo Damian,
mit Deiner letzten Test-Version hier aus dem Forum ist das Problem immer noch aufgetreten.
Das dürfte eigentlich nicht passieren. Dann brauche ich noch mal ein list von diesem Vorfall.
Gruß
Damian
Internals:
DEF ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
[Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
({Beschattung("Ost")})
DOELSEIF ...
...
DOELSEIF
([22:00])
()
NAME GEN_Beschattung
NR 541
NTFY_ORDER 50-GEN_Beschattung
STATE cmd_1
TYPE DOIF
CHANGETIME:
Helper:
Dblog:
Cmd_event:
Eventlog:
TIME 1435243113.79093
VALUE GEN_Aussensensor
Cmd_nr:
Eventlog:
TIME 1435243113.79093
VALUE 1
State:
Eventlog:
TIME 1435243113.79093
VALUE cmd_1
Readings:
2015-06-25 16:38:33 cmd_event GEN_Aussensensor
2015-06-25 16:38:33 cmd_nr 1
2015-06-25 16:44:35 e_GEN_Aussensensor_luminosity 5076
2015-06-25 16:44:35 e_GEN_Aussensensor_temperature 27.2
2015-06-25 16:34:16 e_Wetter_condition überwiegend wolkig
2015-06-25 16:34:16 e_Wetter_fc1_condition teilweise wolkig
2015-06-25 16:34:16 e_Wetter_fc1_high_c 23
2015-06-25 16:38:33 state cmd_1
2015-06-25 16:38:39 timer_10_c5 26.06.2015 12:31:00
2015-06-25 16:38:39 timer_11_c5 26.06.2015 15:59:00
2015-06-25 16:38:39 timer_12_c6 26.06.2015 16:00:00
2015-06-25 16:38:39 timer_13_c6 25.06.2015 17:59:00
2015-06-25 16:38:39 timer_14_c7 26.06.2015 16:00:00
2015-06-25 16:38:39 timer_15_c7 25.06.2015 17:59:00
2015-06-25 16:38:39 timer_16_c8 25.06.2015 18:00:00
2015-06-25 16:38:39 timer_17_c9 25.06.2015 18:01:00
2015-06-25 16:38:39 timer_18_c9 25.06.2015 19:00:00
2015-06-25 16:38:39 timer_19_c10 25.06.2015 18:01:00
2015-06-25 16:38:39 timer_1_c1 26.06.2015 06:30:00|8
2015-06-25 16:38:39 timer_20_c10 25.06.2015 19:59:00
2015-06-25 16:38:39 timer_21_c11 25.06.2015 20:00:00
2015-06-25 16:38:39 timer_22_c12 25.06.2015 22:00:00
2015-06-25 16:38:39 timer_2_c1 26.06.2015 10:29:00|8
2015-06-25 16:38:39 timer_3_c1 26.06.2015 07:34:59
2015-06-25 16:38:39 timer_4_c1 26.06.2015 10:29:00
2015-06-25 16:38:39 timer_5_c2 26.06.2015 10:30:00
2015-06-25 16:38:39 timer_6_c2 26.06.2015 12:29:00
2015-06-25 16:38:39 timer_7_c3 26.06.2015 12:30:00
2015-06-25 16:38:39 timer_8_c4 26.06.2015 12:31:00
2015-06-25 16:38:39 timer_9_c4 26.06.2015 15:59:00
Condition:
0 ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
Days:
0 8
1 8
Devices:
0 Wetter GEN_Aussensensor
1 Wetter GEN_Aussensensor
3 GEN_Aussensensor Wetter
4 GEN_Aussensensor
5 GEN_Aussensensor Wetter
6 GEN_Aussensensor
8 GEN_Aussensensor Wetter
9 GEN_Aussensensor
all Wetter GEN_Aussensensor
Do:
0 {Beschattung("Ost")}
1 {Beschattung("SuedOst")}
10 {if (($month > 4) and ($month < 10)) {GenRolloSet("on")}}
11
2 {GenRolloSet("on","Ost")}
3 {Beschattung("Sued")}
4 {GenRolloSet("on")}
5 {Beschattung("SuedWest")}
6 {GenRolloSet("on")}
7 {GenRolloSet("on","Sued")}
8 {Beschattung("Erker")}
9 {GenRolloSet("on")}
Helper:
last_timer 22
sleeptimer -1
Internals:
Itimer:
Readings:
0 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
1 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
3 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
4 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
5 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
6 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
8 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
9 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
all Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
Realtime:
0 06:30:00
1 10:29:00
10 15:59:00
11 16:00:00
12 17:59:00
13 16:00:00
14 17:59:00
15 18:00:00
16 18:01:00
17 19:00:00
18 18:01:00
19 19:59:00
2 07:34:59
20 20:00:00
21 22:00:00
3 10:29:00
4 10:30:00
5 12:29:00
6 12:30:00
7 12:31:00
8 15:59:00
9 12:31:00
State:
Time:
0 {sunrise(0,"06:30","08:30")}
1 10:29:00
10 15:59:00
11 16:00:00
12 17:59:00
13 16:00:00
14 17:59:00
15 18:00:00
16 18:01:00
17 {sunset(0,"18:02","19:00")}
18 18:01:00
19 {sunset(0,"18:02","19:59")}
2 {sunrise(0,"07:35","10:00")}
20 {sunset(0,"","20:00")}
21 22:00:00
3 10:29:00
4 10:30:00
5 12:29:00
6 12:30:00
7 12:31:00
8 15:59:00
9 12:31:00
Timecond:
0 0
1 0
10 4
11 5
12 5
13 6
14 6
15 7
16 8
17 8
18 9
19 9
2 0
20 10
21 11
3 0
4 1
5 1
6 2
7 3
8 3
9 4
Timer:
0 0
1 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
2 0
20 0
21 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
Timerfunc:
Timers:
0 0 1 2 3
1 4 5
10 20
11 21
2 6
3 7 8
4 9 10
5 11 12
6 13 14
7 15
8 16 17
9 18 19
Trigger:
Attributes:
disable 0
group Timer
room System
Edit: Mit der "alten" Version aus dem SVN und dem Patch von flurin klappt es.
Zitat von: Ralli am 25 Juni 2015, 16:48:12
Internals:
DEF ((([{sunrise(0,"06:30","08:30")}-10:29|8] and ![?Feiertag]) or [{sunrise(0,"07:35","10:00")}-10:29]) and
[Wetter:fc1_condition] =~ /sonnig|heiter|teilweise wolkig/ and
([Wetter:fc1_high_c] > 22 or ([GEN_Aussensensor:temperature] > 18 and [GEN_Aussensensor:luminosity] > 2500)))
({Beschattung("Ost")})
DOELSEIF ...
...
DOELSEIF
([22:00])
()
NAME GEN_Beschattung
NR 541
NTFY_ORDER 50-GEN_Beschattung
STATE cmd_1
TYPE DOIF
CHANGETIME:
Helper:
Dblog:
Cmd_event:
Eventlog:
TIME 1435243113.79093
VALUE GEN_Aussensensor
Cmd_nr:
Eventlog:
TIME 1435243113.79093
VALUE 1
State:
Eventlog:
TIME 1435243113.79093
VALUE cmd_1
Readings:
2015-06-25 16:38:33 cmd_event GEN_Aussensensor
2015-06-25 16:38:33 cmd_nr 1
2015-06-25 16:44:35 e_GEN_Aussensensor_luminosity 5076
2015-06-25 16:44:35 e_GEN_Aussensensor_temperature 27.2
2015-06-25 16:34:16 e_Wetter_condition überwiegend wolkig
2015-06-25 16:34:16 e_Wetter_fc1_condition teilweise wolkig
2015-06-25 16:34:16 e_Wetter_fc1_high_c 23
2015-06-25 16:38:33 state cmd_1
2015-06-25 16:38:39 timer_10_c5 26.06.2015 12:31:00
2015-06-25 16:38:39 timer_11_c5 26.06.2015 15:59:00
2015-06-25 16:38:39 timer_12_c6 26.06.2015 16:00:00
2015-06-25 16:38:39 timer_13_c6 25.06.2015 17:59:00
2015-06-25 16:38:39 timer_14_c7 26.06.2015 16:00:00
2015-06-25 16:38:39 timer_15_c7 25.06.2015 17:59:00
2015-06-25 16:38:39 timer_16_c8 25.06.2015 18:00:00
2015-06-25 16:38:39 timer_17_c9 25.06.2015 18:01:00
2015-06-25 16:38:39 timer_18_c9 25.06.2015 19:00:00
2015-06-25 16:38:39 timer_19_c10 25.06.2015 18:01:00
2015-06-25 16:38:39 timer_1_c1 26.06.2015 06:30:00|8
2015-06-25 16:38:39 timer_20_c10 25.06.2015 19:59:00
2015-06-25 16:38:39 timer_21_c11 25.06.2015 20:00:00
2015-06-25 16:38:39 timer_22_c12 25.06.2015 22:00:00
2015-06-25 16:38:39 timer_2_c1 26.06.2015 10:29:00|8
2015-06-25 16:38:39 timer_3_c1 26.06.2015 07:34:59
2015-06-25 16:38:39 timer_4_c1 26.06.2015 10:29:00
2015-06-25 16:38:39 timer_5_c2 26.06.2015 10:30:00
2015-06-25 16:38:39 timer_6_c2 26.06.2015 12:29:00
2015-06-25 16:38:39 timer_7_c3 26.06.2015 12:30:00
2015-06-25 16:38:39 timer_8_c4 26.06.2015 12:31:00
2015-06-25 16:38:39 timer_9_c4 26.06.2015 15:59:00
Condition:
0 ((DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"8") and !InternalDoIf('Feiertag','STATE','')) or DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"")) and ReadingValDoIf('Wetter','fc1_condition','') =~ /sonnig|heiter|teilweise wolkig/ and (ReadingValDoIf('Wetter','fc1_high_c','') > 22 or (ReadingValDoIf('GEN_Aussensensor','temperature','') > 18 and ReadingValDoIf('GEN_Aussensensor','luminosity','') > 2500))
...
Days:
0 8
1 8
Devices:
0 Wetter GEN_Aussensensor
1 Wetter GEN_Aussensensor
3 GEN_Aussensensor Wetter
4 GEN_Aussensensor
5 GEN_Aussensensor Wetter
6 GEN_Aussensensor
8 GEN_Aussensensor Wetter
9 GEN_Aussensensor
all Wetter GEN_Aussensensor
Do:
0 {Beschattung("Ost")}
1 {Beschattung("SuedOst")}
10 {if (($month > 4) and ($month < 10)) {GenRolloSet("on")}}
11
2 {GenRolloSet("on","Ost")}
3 {Beschattung("Sued")}
4 {GenRolloSet("on")}
5 {Beschattung("SuedWest")}
6 {GenRolloSet("on")}
7 {GenRolloSet("on","Sued")}
8 {Beschattung("Erker")}
9 {GenRolloSet("on")}
Helper:
last_timer 22
sleeptimer -1
Internals:
Itimer:
Readings:
0 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
1 Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
3 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
4 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
5 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
6 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
8 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
9 GEN_Aussensensor:temperature GEN_Aussensensor:luminosity
all Wetter:fc1_condition Wetter:fc1_high_c GEN_Aussensensor:temperature GEN_Aussensensor:luminosity Wetter:condition
Realtime:
0 06:30:00
1 10:29:00
10 15:59:00
11 16:00:00
12 17:59:00
13 16:00:00
14 17:59:00
15 18:00:00
16 18:01:00
17 19:00:00
18 18:01:00
19 19:59:00
2 07:34:59
20 20:00:00
21 22:00:00
3 10:29:00
4 10:30:00
5 12:29:00
6 12:30:00
7 12:31:00
8 15:59:00
9 12:31:00
State:
Time:
0 {sunrise(0,"06:30","08:30")}
1 10:29:00
10 15:59:00
11 16:00:00
12 17:59:00
13 16:00:00
14 17:59:00
15 18:00:00
16 18:01:00
17 {sunset(0,"18:02","19:00")}
18 18:01:00
19 {sunset(0,"18:02","19:59")}
2 {sunrise(0,"07:35","10:00")}
20 {sunset(0,"","20:00")}
21 22:00:00
3 10:29:00
4 10:30:00
5 12:29:00
6 12:30:00
7 12:31:00
8 15:59:00
9 12:31:00
Timecond:
0 0
1 0
10 4
11 5
12 5
13 6
14 6
15 7
16 8
17 8
18 9
19 9
2 0
20 10
21 11
3 0
4 1
5 1
6 2
7 3
8 3
9 4
Timer:
0 0
1 0
10 0
11 0
12 0
13 0
14 0
15 0
16 0
17 0
18 0
19 0
2 0
20 0
21 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
Timerfunc:
Timers:
0 0 1 2 3
1 4 5
10 20
11 21
2 6
3 7 8
4 9 10
5 11 12
6 13 14
7 15
8 16 17
9 18 19
Trigger:
Attributes:
disable 0
group Timer
room System
Edit: Mit der "alten" Version aus dem SVN und dem Patch von flurin klappt es.
Ich kann es mir nicht erklären, weil keine Auswertung stattfinden sollte, wenn das System nicht komplett hochgefahren ist.
Du bist sicher, dass die neue Version aktiv war?
Mit "Version DOIF" sollte keine Version angezeigt werden: # $Id: 98_DOIF.pm $
Gruß
Damian
Ja, absolut sicher. Version zeigte exakt keine Version :).
Habe ein shutdown gemacht, die alte 98_DOIF.pm weggeschoben, neue 98_DOIF.pm rein kopiert, Rechte gesetzt, fhem neu gestartet.
Zitat von: Ralli am 25 Juni 2015, 17:12:16
Ja, absolut sicher. Version zeigte exakt keine Version :).
Habe ein shutdown gemacht, die alte 98_DOIF.pm weggeschoben, neue 98_DOIF.pm rein kopiert, Rechte gesetzt, fhem neu gestartet.
Das würde bedeuten, dass die Variable $init_done (System hochgefahren) wahr ist und der Trigger von GEN_Aussensensor vor dem der Trigger global:INIALIZED kommt.
Schon sehr merkwürdig.
Muss ich mir mal anschauen, habe aber jetzt keine Zeit dazu.
Gruß
Damian
Problem hier behoben: http://forum.fhem.de/index.php/topic,39070.0.html
Gruß
Damian