Hallo,
ich habe das folgende DOIF definiert:
Internals:
DEF ([06:45-{sunrise_abs("REAL")}] and [dmArbeitstag] eq "1" and {sunrise_abs("REAL")} gt "06:45:00") ((set eg.fl.Eingang.Licht,eg.fl.Licht on))
DOELSE
((set eg.fl.Eingang.Licht,eg.fl.Licht off))
NAME di.Flurbeleuchtung
NR 139
NTFY_ORDER 50-di.Flurbeleuchtung
STATE cmd_1
TYPE DOIF
Readings:
2016-03-14 04:00:00 Device dmArbeitstag
2016-03-14 06:45:00 cmd_event timer_1
2016-03-14 06:45:00 cmd_nr 1
2016-03-14 04:00:00 e_dmArbeitstag_STATE 1
2016-03-14 06:45:00 state cmd_1
2016-03-14 06:41:02 timer_1_c1 14.03.2016 06:45:00
2016-03-14 06:41:02 timer_2_c1 15.03.2016 06:38:42
Condition:
0 DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf($hash,'dmArbeitstag','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "1" and {sunrise_abs("REAL")} gt "06:45:00"
Days:
Devices:
0 dmArbeitstag
all dmArbeitstag
Do:
0:
0 (set eg.fl.Eingang.Licht,eg.fl.Licht on)
1:
0 (set eg.fl.Eingang.Licht,eg.fl.Licht off)
Helper:
event timer_1
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
Internals:
0 dmArbeitstag:STATE
all dmArbeitstag:STATE
Interval:
0 -1
1 0
Itimer:
Localtime:
0 1457934300
1 1458020322
Readings:
Realtime:
0 06:45:00
1 06:38:42
Regexp:
0:
All:
State:
Time:
0 06:45:00
1 {sunrise_abs("REAL")}
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timers:
0 0 1
Trigger:
Triggertime:
1458020322:
localtime 1458020322
Hash:
Attributes:
Gewollt war, dass im Zeitraum 6:45h bis Sonnenaufgang an Werktagen das Licht eingeschaltet, und in der restlichen Zeit wieder ausgeschaltet wird. Sofern der Sonnenaufgang vor 06:45h liegt, soll keine Schaltaktion erfolgen. Im Dummy "dmArbeitstag" wird dabei jeweils um 4:00 Uhr gespeichert, ob ein Werktag vorliegt (oder eben nicht; abhängig von Urlaub, Feiertagen etc.).
Heute wurde nun durch das Umschalten des Dummy von 0 auf 1 (weil Werktag) um 4:00 Uhr das Licht eingeschaltet. Grundsätzlich logisch, wenn ich nicht zusätzlich als Bedingung die Abfrage eingebaut hätte, dass eine Schaltaktion nur dann ausgelöst werden soll, wenn der Sonnenaufgang nach 06:45h liegt. Wo ist mein Denkfehler?
Viele Grüße
Michael
Hallo,
hat hier niemand eine Idee? ::)
So, wie es bisher nachvollziehen konnte, scheint der Vergleich {sunrise_abs("REAL")} gt "06:45:00" nicht im DOIF zu funktionieren. Gibt es eine Alternative?
Viele Grüße
Michael
in der cmdref (deutsche) zu doif wird gezeigt wie man {sunrise_rel} in doif nutz, somit würde ich davon ausgehen das auch sunrise_abs geht
Zitat von: m8ichael am 08 April 2016, 19:57:10
Hallo,
hat hier niemand eine Idee? ::)
So, wie es bisher nachvollziehen konnte, scheint der Vergleich {sunrise_abs("REAL")} gt "06:45:00" nicht im DOIF zu funktionieren. Gibt es eine Alternative?
Viele Grüße
Michael
Probier eine andere Schreibweise sunrise_abs("REAL") gt "06:45:00"