NEWS
Datenpunkte filtern (rolling average)
-
Hallo,
ich möchte Geräte in Abhängigkeit meines PV Überschusses steuern. Der Wert vom Smartmeter ist etwas nervös, da Batteriespeicher und Wechselrichter nur träge reagieren. Es entstehen dabei Spitzen von maximal 60s Dauer, die ich gerne filtern möchte.
Wie könnte ich das am einfachsten realisieren (Blockly, JS)? Ich bin dazu leider nicht in der Lage. -
@passuff sagte in Datenpunkte filtern (rolling average):
Ich bin dazu leider nicht in der Lage.
doch! das schaffst du!
Werte von hinten in eine Liste schreiben und Mittelwert der Liste in einrn DP den du für weitere Aktionen nutzst.
Wenn Länge von Liste > x Elemente lösche erstes Element
Ausschnit aus einem alten Blockly mit dieser Berechnung
für die markierte Zeile gibt es auch direkt einen Mittelwert-Block -
Das, was @homoran geschrieben hat, wäre eine der Möglichkeiten.
Wenn man das Problem erstmal von außen betrachtet gäbe es auch den PID-Regler-Adapter, den man ggfs. dafür verwenden könnte. Vielleicht wäre das aber auch "mit Kanonen auf Spatzen schießen"....Messgröße wäre der PV-Überschuss, Stellgröße der Sollwert der Last, die man durch Ein/Ausschalten von Geräten erreichen muss.
Zusammenpuzzeln, wie man die Last genau erreicht kann man dann in einem Blockly, das getriggert durch Änderung der Stellgröße abläuft...
-
@martinp
Wow, ein PID Adapter. Das hilft mir in jedem Fall für andere Anwendungen (zB Regelung der Pool Chemie auf PH und Chlor).
Aber du hast mich daran erinnert mal in den Adaptern zu stöbern.. und siehe da: Es gibt einen Smoothed adapter der genau das macht was ich suche.@Homoran
Danke Dir, aber ich tue mich damit schwer. -
@passuff sagte in Datenpunkte filtern (rolling average):
ich tue mich damit schwer.
aber "es lernt!"
-
@passuff sagte: ich möchte Geräte in Abhängigkeit meines PV Überschusses steuern.
Geräte mit unterschiedlicher oder gleicher Leistungsaufnahme zu- und abschalten? Oder die Leistung kontinuierlich steuern?
Im ersten Fall sollte man ohnehin Verzögerungen im Minutenbereich vorsehen, damit nicht auf jede kleine Wolke / Wolkenlücke reagiert wird. -
@paul53
Ja, das wird die nächste Aufgabe. Kann man den "debounce" mit einem timeout lösen?EDIT: https://forum.iobroker.net/post/905036
So hattest du es bereits einmal vorgeschlagen. Ich denke das passt gut zu meiner Anwendung. -
@passuff sagte: So hattest du es bereits einmal vorgeschlagen.
Das ist eine reine Entprellung, die nichts mit Berücksichtigung von Wolken zu tun hat.
Seit Javascript-Version 7.0.5 erfolgt im Timeout-Block das setzen auf null automatisch. -
@paul53
Danke für die Info. Wie würdest du es dann machen? -
@passuff sagte: Wie würdest du es dann machen?
Wie viele Geräte mit welcher Leistungsaufnahme sollen abhängig vom Überschuss geschaltet werden?
Beispiel mit 7 Stufen -
@paul53
Aktuell nur eine Wärmepumpe mit 600 Watt. -
@passuff sagte: nur eine Wärmepumpe mit 600 Watt.
Beispiel mit Bezug positiv und Einspeisung negativ (Shelly):
Gerade für den Kompressor einer Wärmepumpe benötigt man ausreichend große Schaltabstände.
-
@paul53 ich denke da bin ich nah dran:
"Actual Power" ist die Leistung der Wallbox. Da diese eine eigene Überschussrechnung macht, addiere ich die Leistung auf die Leistung am Smartmeter "Power", damit die Wärmepumpe Vorrang vor der Wallbox hat.
-
@passuff sagte: da bin ich nah dran:
Unterschied: Bei deiner Lösung mit Timeout wird verzögert geschaltet, wenn der Grenzwert einmal über- bzw. unterschritten wurde. Bei meiner Version wird nur geschaltet, wenn der Grenzwert während der gesamten Verzögerungszeit über- bzw. unterschritten blieb. Dafür sorgen die "stop timeout".
@passuff sagte in Datenpunkte filtern (rolling average):
Da diese eine eigene Überschussrechnung macht
Die müsste man kennen, um deine Lösung zu verifizieren.
-
@paul53
Da war ich zu vorschnell. Sorry. Hast natürlich recht. -
@passuff sagte: damit die Wärmepumpe Vorrang vor der Wallbox hat.
Wenn die WP beim Einschalten Vorrang vor der WB haben soll: Wie kann dann die Leistungsaufnahme der WB als Einschaltkriterium dienen? Als Ausschaltkriterium durchaus, da die Leistungsaufnahme der WB stark sinkt, wenn die Autobatterie voll geladen ist.
Ich würde es so versuchen:"Switch" = Wärmepumpe.
"Laden ein" = Freigabe Wallbox -
@paul53 sagte in Datenpunkte filtern (rolling average):
Wenn die WP beim Einschalten Vorrang vor der WB haben soll: Wie kann dann die Leistungsaufnahme der WB als Einschaltkriterium dienen?
Einspeisung + Leistung wallbox > Einschaltschwelle
-
@passuff sagte: Einspeisung + Leistung wallbox > Einschaltschwelle
Genau das verstehe ich nicht, wenn die WP Vorrang haben soll: Dann ist beim Einschalten der WP die Leistungsaufnahme der WB 0 oder sehr klein.
-
@paul53 sagte in Datenpunkte filtern (rolling average):
Dann ist beim Einschalten der WP die Leistungsaufnahme der WB 0 oder sehr klein.
Diesen Satz verstehe ich nicht.
-
@passuff
Vorrang der WP verstehe ich so, dass erst die WP eingeschaltet wird und wenn dann noch genügend Überschuss vorhanden ist, auch die WB freigegeben wird.