Moin,
ich teste gerade ein DOIF für meine Zirkulationspumpe.
Dabei wurde um Punkt 12:00 Uhr ein Befehl (cmd_5) ausgeführt den ich nicht nachvollziehen kann. Vielleicht habe ich aber nur Tomaten auf den Augen. Wär nett wenn da mal jemand einen Blick draufwerfen könnte.
Aktuelle DOIF-Version ist installiert
Hier die DEF:
([05:45-06:30|12]and (!$we) and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([08:00-19:00|3457] and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([12:00-19:00|12] and [Abwesend:state] eq "off" and !($we) and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([22:00-23:00|78] and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSE
(set ZirkulationsPumpe off)
Hier das Reading:
cmd_event
timer_5
2015-03-08 12:00:00
cmd_nr
5
2015-03-08 12:00:00
state
cmd_5
2015-03-08 12:00:00
timer_1_c1
09.03.2015 05:45:00|12
2015-03-08 10:42:01
timer_2_c1
09.03.2015 06:30:00|12
2015-03-08 10:42:01
timer_3_c2
09.03.2015 08:00:00|3457
2015-03-08 10:44:00
timer_4_c2
08.03.2015 19:00:00|3457
2015-03-08 10:42:01
timer_5_c3
09.03.2015 12:00:00|12
2015-03-08 12:00:00
timer_6_c3
08.03.2015 19:00:00|12
2015-03-08 10:42:01
timer_7_c4
08.03.2015 22:00:00|78
2015-03-08 10:42:01
timer_8_c4
08.03.2015 23:00:00|78
2015-03-08 10:42:01
Und nun noch das LIST:
Internals: CFGFN DEF ([05:45-06:30|12] and (!$we) and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([08:00-19:00|3457] and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([12:00-19:00|12] and [Abwesend:state] eq "off" and !($we) and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSEIF ([22:00-23:00|78] and [Abwesend:state] eq "off" and [ZirkuMaster:state] eq "on") (set ZirkulationsPumpe on) DOELSE (set ZirkulationsPumpe off) NAME Do_Zirku NR 348 NTFY_ORDER 50-Do_Zirku STATE cmd_5 TYPE DOIF Readings: 2015-03-08 12:00:00 cmd_event timer_5 2015-03-08 12:00:00 cmd_nr 5 2015-03-08 12:00:00 state cmd_5 2015-03-08 10:42:01 timer_1_c1 09.03.2015 05:45:00|12 2015-03-08 10:42:01 timer_2_c1 09.03.2015 06:30:00|12 2015-03-08 10:44:00 timer_3_c2 09.03.2015 08:00:00|3457 2015-03-08 10:42:01 timer_4_c2 08.03.2015 19:00:00|3457 2015-03-08 12:00:00 timer_5_c3 09.03.2015 12:00:00|12 2015-03-08 10:42:01 timer_6_c3 08.03.2015 19:00:00|12 2015-03-08 10:42:01 timer_7_c4 08.03.2015 22:00:00|78 2015-03-08 10:42:01 timer_8_c4 08.03.2015 23:00:00|78 Condition: 0 DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"12")and (!$we)and ReadingValDoIf('Abwesend','state','') eq "off"and ReadingValDoIf('ZirkuMaster','state','') eq "on" 1 DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"3457")and ReadingValDoIf('Abwesend','state','') eq "off"and ReadingValDoIf('ZirkuMaster','state','') eq "on" 2 DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"12")and ReadingValDoIf('Abwesend','state','') eq "off"and !($we)and ReadingValDoIf('ZirkuMaster','state','') eq "on" 3 DOIF_time($hash->{realtime}{6},$hash->{realtime}{7},$wday,$hms,"78")and ReadingValDoIf('Abwesend','state','') eq "off"and ReadingValDoIf('ZirkuMaster','state','') eq "on" Days: 0 12 1 12 2 3457 3 3457 4 12 5 12 6 78 7 78 Devices: 0 Abwesend ZirkuMaster 1 Abwesend ZirkuMaster 2 Abwesend ZirkuMaster 3 Abwesend ZirkuMaster all Abwesend ZirkuMaster Do: 0 set ZirkulationsPumpe on 1 set ZirkulationsPumpe on 2 set ZirkulationsPumpe on 3 set ZirkulationsPumpe on 4 set ZirkulationsPumpe off Helper: last_timer 8 sleeptimer -1 Internals: Readings: 0 Abwesend:state ZirkuMaster:state 1 Abwesend:state ZirkuMaster:state 2 Abwesend:state ZirkuMaster:state 3 Abwesend:state ZirkuMaster:state all Abwesend:state ZirkuMaster:state Realtime: 0 05:45:00 1 06:30:00 2 08:00:00 3 19:00:00 4 12:00:00 5 19:00:00 6 22:00:00 7 23:00:00 State: Time: 0 05:45:00 1 06:30:00 2 08:00:00 3 19:00:00 4 12:00:00 5 19:00:00 6 22:00:00 7 23:00:00 Timecond: 0 0 1 0 2 1 3 1 4 2 5 2 6 3 7 3 Timer: 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 Timerfunc: Timers: 0 0 1 1 2 3 2 4 5 3 6 7 Attributes:
room Heizung
Bei der Wochentagsteuerung stimmt einiges nicht, siehe Commandref:
Zitat
Wochentagsteuerung: [<time>|012345678] oder [<begin>-<end>|012345678] (0-6 entspricht Sonntag bis Samstag) sowie 7 für $we und 8 für !$we
hier:
[05:45-06:30|12]and (!$we)
und
[12:00-19:00|12] and [Abwesend:state] eq "off" and !($we)
und
[22:00-23:00|78]
78 = $we + !$we = immer!
Gruss
flurin
Nee,
sollte schon so passen, da in einem DOELSEIF kein 7 mit !($WE) kombiniert wird, will ja gezielt Mo+Di abfragen, die Werktage sind.
Zitat von: Bartimaus am 08 März 2015, 18:24:28
Nee,
sollte schon so passen, da in einem DOELSEIF kein 7 mit !($WE) kombiniert wird, will ja gezielt Mo+Di abfragen, die Werktage sind.
Fangen wir mal hinten an:
[22:00-23:00|78]
7 = $we = Sa und So
8 = !$we = Mo,Di,Mi,Do,Fr
d.h. die Bedingung wird an 7 Tage der Woche erfüllt.
Soll sie auch, könnte man in dem Fall 78 weglassen
Zitat von: Bartimaus am 08 März 2015, 21:36:57
könnte man in dem Fall 78 weglassen
Ok, das meinte ich auch. In Zusammenhang mit den anderen DOELSEIF nehme ich an, dass du "attr global holiday2we" definiert hast.
Edit: Vor allem nach Fehlermeldungen hilft es oft ein shutdown restart.
Ansonsten ist dies ein Fall für Damian.
Gruss
flurin
Da die Bedingung um 12:00 Uhr nicht wahr ist, wird DOELSE ausgeführt. Hat mir Damian geflüstert...
Muss jetzt das DOIF umbauen, habe den Zeitraum 0800-1900 in einer DOELSEIF gepackt mit OR-Bedingungen und entsprechenden Klammern. Bin gespannt.