Ich möchte gerne eine Funktion aus dem Wiki (Eco Modus) realisieren.
Der Code für die Absenkung sieht momentan so aus
define act_on_HZ.Absenkung_An notify HZ.Absenkung:on {\
my $t = ReadingsVal("WZ.Thermostat_Climate", "desired-temp", "")-2;;\
fhem("set WZ.Thermostat_Climate desired-temp ".$t);;\
fhem("set HCAutomatik off");;\
}
Das ganze funktioniert eigentlich ohne Probleme aber die 2 Grad Absenkung werden 2 mal ausgelöst.
Also desired-temp steht auf 22°C und ich aktiviere den ECO Modus. Dann wird richtig desired-temp auf 20°C gesetzt und aber gleich hinterher 18°C.
So das der Regler dann bei 18°C steht und nicht bei 20°C wie gewünscht.
Habe ich da einen Fehler in meine Code oder muß ich an einer Stelle wie eine Art Verzögerung einbauen.
Momentan weiß ich nicht woher das doppelte abziehen kommt.
schau dir den eventmonitor an und prüfe warum die events doppelt kommen, die dein notify auslösen. man kann auch event-on-change einschalten, dann werden events nur bei änderung generiert. oder du setzt die temperatur nur ein grad runter und erhälst dann in summe 2 grad. ;)
Danke, manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Hatte natürlich auf eine andere Stelle verwiesen an der ich schon eine Absenkung drin hatte.
Deswegen auch die doppelte Absenkung.