Liebe Forumsgemeinde,
ich habe seit einigen Tagen immer wieder die entsprechende Doku zu Rules und die Beiträge hier im Forum gelesen, bin aber noch nicht so richtig weiter gekommen. Daher frage ich jetzt im Forum:
Wert einer Variablen zuweisen
Ich möchte Rules auf einem Plug realisieren. Ich habe Beispiele dafür gefunden, wie ich beim Eintreffen einer Bedingung eine Variable füllen kann. Aber wie funktioniert das, wenn die Variable nichts mit der Bedingung zu tun hat?
Beispiel: Merk dir, (nach einer EInschaltverzögerung) welche Leistung beim Einschalten des Plugs verbraucht wird, in var1. ##Achtung: Rule1 ist fehlerhaft!
Rule1 ON power1#state=1 Do Backlog Delay 40; var1 energy#power; Rule2 1 ENDON
Backlog Rule1 1; Rule1 5
--> Ich habe das Setzen der Variable nicht herausgefunden, gibt es eine Lösung?
Wert einer Variablen vergleichen - Projekt: Leistungsabschaltung
Ich möchte eine Abschaltung realisieren, wenn die verbrauchte Leistung eine Zeitlang nicht mehr fällt. Dies ist beim Laden von Akkus sehr praktisch. Leider habe ich Probleme mit dem Vergleich von Variablen. Hier im Forum gibt es schon ZIG Beiträge, die sich um das Thema drehen. Nur wird immer bei einer bestimmten Leistung abgeschaltet, ohne Variablen zu bemühen. Ich habe jedoch unterschiedliche Ladegeräte im Einsatz und weiß die Leistung vorher nicht. Daher muss ich die verbrauchte Leistung tracken. ##Achtung: Rule2 ist fehlerhaft!
Rule1 ON power1#state=1 Do Backlog Delay 40; var1 1; Rule2 1 ENDON
Rule2 ON energy#power DO var2 %value% ENDON ON %var2% < %var1% DO Rule3 1 ENDON ON %var2% > %var1% + 2 DO Backlog Rule3 0; var1 %var2% ENDON
Rule3 ON energy#power < %var1% Do Backlog Ruletimer1 10; var1 %var2% ENDON ON Rules#timer=1 DO Backlog Power 0; Rule2 0; Rule3 0 ENDON
Backlog Rule1 1; Rule1 5; Rule2 5; Rule3 5
--> In Rule2 zündet die Bedingung "ON %var2% < %var1% DO" nicht
Meldung:
15:04:37 RSL: stat/tasmota_32D998/RESULT = {"POWER":"ON"}
15:04:37 RSL: stat/tasmota_32D998/POWER = ON
15:04:37 RUL: POWER1#STATE=1 performs "Backlog Delay 40; var1 1; Rule2 1"
15:04:37 RSL: stat/tasmota_32D998/RESULT = {"Delay":40}
15:04:41 RSL: stat/tasmota_32D998/RESULT = {"Var1":"1"}
15:04:41 RSL: stat/tasmota_32D998/RESULT = {"Rule2":"ON","Once":"ON","StopOnError":"OFF","Length":134,"Free":377,"Rules":"ON energy#power DO var2 %value% ENDON ON %var2% < %var1% DO Rule3 1 ENDON ON %var2% > %var1% + 2 DO Backlog Rule3 0; var1 %var2% ENDON"}
15:04:41 RUL: ENERGY#POWER performs "var2 0"
15:04:41 RSL: stat/tasmota_32D998/RESULT = {"Var2":"0"}
Vielen Dank schon mal für Eure Hilfe! Wall.e