Hallo zusammen,
ich habe ein Problem mit meinen Regeln,...
ich möchte zwei verschiedene Temperaturen überwachen, und habe dazu das "Einfaches Thermostat" Beispiel verwendet.
Jede Rule für sich funktioniert einwandfrei, aber sobald beide aktiv sind, funktioniert mal die eine und mal die andere.
Code
Rule1
ON system#boot DO RuleTimer1 70 ENDON
ON Rules#Timer=1 DO Backlog var1 0; RuleTimer1 70; Power1 0 ENDON
ON DS18B20-1#temperature DO Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=%value% ENDON
ON event#ctrl_ready>%mem1% DO var1 0 ENDON
ON event#ctrl_ready=%mem1% DO var1 1 ENDON
ON event#temp_demand>%mem2% DO Power1 0 ENDON
ON event#temp_demand<%mem3% DO Power1 %var1% ENDON
Rule2
ON system#boot DO RuleTimer2 90 ENDON
ON Rules#Timer=2 DO Backlog var2 0; RuleTimer2 90; Power2 0 ENDON
ON DS18B20-2#temperature DO Backlog RuleTimer2 90; event ctrl_ready2=1; event temp_demand2=%value% ENDON
ON event#ctrl_ready2>%mem6% DO var2 0 ENDON
ON event#ctrl_ready2=%mem6% DO var2 1 ENDON
ON event#temp_demand2>%mem4% DO Power2 0 ENDON
ON event#temp_demand2<%mem5% DO Power2 %var2% ENDON
Alles anzeigen
Und hier das LOG:
man sieht deutlich, nach deaktivieren von rule1 springt rule2 sofort aktiv und funktioniert. (wobei Teile der Events ja die ganze Zeit getriggert werden)
Code
15:04:31 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:04:31 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:04:31 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=13.5"
15:04:31 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 71; event ctrl_ready2=1; event temp_demand2=13.6"
15:04:31 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:04:31 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:04:31 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:04:31 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:06:37 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:06:37 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:06:37 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:06:37 RUL: EVENT#TEMP_DEMAND<%MEM3% performs "Power1 0"
15:06:37 RSL: stat/sonoff_zld44/RESULT = {"POWER1":"off"}
15:06:37 RSL: stat/sonoff_zld44/POWER1 = off
15:06:37 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=13.8"
15:06:37 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 71; event ctrl_ready2=1; event temp_demand2=13.9"
15:06:38 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:06:38 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:06:38 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=13.8"
15:06:38 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 71; event ctrl_ready2=1; event temp_demand2=13.9"
15:06:38 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:06:38 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:06:38 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:06:38 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:06:39 RUL: EVENT#TEMP_DEMAND<%MEM3% performs "Power1 0"
15:06:39 RSL: stat/sonoff_zld44/RESULT = {"POWER1":"off"}
15:06:39 RSL: stat/sonoff_zld44/POWER1 = off
15:06:39 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=13.8"
15:06:39 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 71; event ctrl_ready2=1; event temp_demand2=13.9"
15:06:39 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:08:37 RSL: stat/sonoff_zld44/RESULT = {"Rule2":"off","Once":"off","StopOnError":"off","Length":408,"Free":103,"Rules":"ON system#boot DO RuleTimer2 90 ENDON ON Rules#Timer=2 DO Backlog var2 0; RuleTimer2 90; Power2 0 ENDON ON DS18B20-2#temperature DO Backlog RuleTimer2 90; event ctrl_rea2=1; event temp_demand2=%value% ENDON ON event#ctrl_rea2>%mem6% DO var2 0 ENDON ON event#ctrl_rea2=%mem6% DO var2 1 ENDON ON event#temp_demand2>%mem4% DO Power2 0 ENDON ON event#temp_demand2<%mem5% DO Power2 %var2% ENDON"}
15:08:37 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":60,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:08:37 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":59,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:08:37 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=14.1"
15:08:37 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:08:37 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:08:37 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:08:38 RUL: EVENT#TEMP_DEMAND<%MEM3% performs "Power1 0"
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"POWER1":"off"}
15:08:38 RSL: stat/sonoff_zld44/POWER1 = off
15:08:38 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=14.1"
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":59,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:08:38 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:08:38 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=14.1"
15:08:38 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:08:38 RUL: EVENT#TEMP_DEMAND<%MEM3% performs "Power1 0"
15:08:39 RSL: stat/sonoff_zld44/RESULT = {"POWER1":"off"}
15:08:39 RSL: stat/sonoff_zld44/POWER1 = off
15:08:39 RSL: stat/sonoff_zld44/RESULT = {"T1":69,"T2":58,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:09:12 CMD: rule2 1
15:09:12 RSL: stat/sonoff_zld44/RESULT = {"Rule2":"on","Once":"off","StopOnError":"off","Length":408,"Free":103,"Rules":"ON system#boot DO RuleTimer2 90 ENDON ON Rules#Timer=2 DO Backlog var2 0; RuleTimer2 90; Power2 0 ENDON ON DS18B20-2#temperature DO Backlog RuleTimer2 90; event ctrl_rea2=1; event temp_demand2=%value% ENDON ON event#ctrl_rea2>%mem6% DO var2 0 ENDON ON event#ctrl_rea2=%mem6% DO var2 1 ENDON ON event#temp_demand2>%mem4% DO Power2 0 ENDON ON event#temp_demand2<%mem5% DO Power2 %var2% ENDON"}
15:09:12 RSL: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:09:12 RUL: EVENT#CTRL_READY>%MEM1% performs "var1 0"
15:09:12 RSL: stat/sonoff_zld44/RESULT = {"Var1":"0"}
15:09:12 RUL: DS18B20-1#TEMPERATURE performs "Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=14.1"
15:09:12 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 90; event ctrl_rea2=1; event temp_demand2=14.3"
15:09:12 RSL: stat/sonoff_zld44/RESULT = {"T1":70,"T2":24,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
1
15:12:28 CMD: rule1 0
15:12:28 MQT: stat/sonoff_zld44/RESULT = {"Rule1":"off","Once":"off","StopOnError":"off","Length":407,"Free":104,"Rules":"ON system#boot DO RuleTimer1 70 ENDON ON Rules#Timer=1 DO Backlog var1 0; RuleTimer1 70; Power1 0 ENDON ON DS18B20-1#temperature DO Backlog RuleTimer1 70; event ctrl_ready=1; event temp_demand=%value% ENDON ON event#ctrl_ready>%mem1% DO var1 0 ENDON ON event#ctrl_ready=%mem1% DO var1 1 ENDON ON event#temp_demand>%mem2% DO Power1 0 ENDON ON event#temp_demand<%mem3% DO Power1 %var1% ENDON"}
15:12:28 MQT: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:12:28 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 90; event ctrl_ready2=1; event temp_demand2=14.8"
15:12:28 MQT: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:12:28 MQT: stat/sonoff_zld44/RESULT = {"T1":70,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:12:36 RUL: EVENT#CTRL_READY2=%MEM6% performs "var2 1"
15:12:36 MQT: stat/sonoff_zld44/RESULT = {"Var2":"1"}
15:12:37 MQT: stat/sonoff_zld44/RESULT = {"T1":68,"T2":90,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:12:37 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 90; event ctrl_ready2=1; event temp_demand2=14.8"
15:12:37 MQT: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:12:37 RUL: EVENT#CTRL_READY2=%MEM6% performs "var2 1"
15:12:38 RUL: EVENT#CTRL_READY2=%MEM6% performs "var2 1"
15:12:38 MQT: stat/sonoff_zld44/RESULT = {"Var2":"1"}
15:12:38 MQT: stat/sonoff_zld44/RESULT = {"T1":66,"T2":90,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
15:12:39 RUL: DS18B20-2#TEMPERATURE performs "Backlog RuleTimer2 90; event ctrl_ready2=1; event temp_demand2=14.8"
15:12:39 MQT: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:12:39 RUL: EVENT#CTRL_READY2=%MEM6% performs "var2 1"
15:12:39 MQT: stat/sonoff_zld44/RESULT = {"Var2":"1"}
15:12:39 MQT: stat/sonoff_zld44/RESULT = {"Event":"Done"}
15:12:39 RUL: EVENT#TEMP_DEMAND2<%MEM5% performs "Power2 1"
15:12:39 MQT: stat/sonoff_zld44/RESULT = {"POWER2":"on"}
15:12:39 MQT: stat/sonoff_zld44/POWER2 = on
Alles anzeigen
Also ab hier komme ich nicht weiter.
Vielleicht hat ja jemand eine Idee, gerne auch alternative Wege.
Ich werde jetzt mal versuchen eine IF aktivierte Firmware zu kompilieren.
Grüße
Dennis