Sigma-Delta Output ist ne wunderschöne Funtion um zB. Fussbodenheizungen mittels PWM (Pulsweitenmodulation) quasi-analog zu regeln. Dies funktioniert bei mir seit einigen Jahren mittels eines kleinen ESP8266 einwandfrei.
Nun wollte ich manuell den output modifizieren mit der action Funktion des Homeassistant: output.set_level bzw. der Lambda-Funktion: id(xxx).set_level(0.5);
Auch das funktioniert einandfrei, solange der Level fix ist - so wie im o.g. Beispiel bei 0.5 Sobald aber eine id(xx).state Variable verwendet wird, streikt das System. Es compiliert , aber läuft nicht.
Das allerseltsamste ist, dass die set_level Funktion beim “slow_pwm” output das tut was es soll. Ich kann hier die Sollwerte über den HA verändern über die id(xx).state variable so wie ich will…
Möglicherweise gibt es ein RAM/Heap/Stack Problem. Der ESP8266 ist da ja sehr begrenzt.
Hast du schon mal versucht erst den Wert einer Variablen zuzuweisen und dann in die Funktion einzusetzen?
Hallo, ich verwende hier keinen 8266 mehr sondern einen esp32 wroom dh sollte genug RAM haben.
Aber die Idee mit der internen Variable ist gut.
Das probiere ich mal aus…