TimeOfUseTariff Controller mit manuell gespeicherten historischen Daten

Liebe OpenEMS Community,

gibt es eine Möglichkeit, den TimeOfUseTariff Controller mit manuell eingespeicherten historischen Daten zu verwenden? Sodass man die Daten beliebig austauschen kann, um zu sehen, welche Prediction der Predictor und welchen Fahrplan der Controller vorgeben würden?

Ich habe folgendes mal probiert:

Ich habe ein OpenEMS Edge mit Anbindung zu einer InfluxDB. Im Edge habe ich Simulator Komponenten für ESS, PV-Inverter und Gridmeter angelegt. Weiters habe ich einen TimeOfUseTariff, einen Predictor PersistenceModel und den EssTimeOfUseTariff Controller erstellt. Jetzt habe ich probiert, die InfluxDB mit Werten für “_sum/ConsumptionActivePower” und “_sum/ProductionActivePower” für die letzten 2 vergangenen Tage zu befüllen, da ich im Predictor auch nur diese 2 Channels angegeben habe.
Bin auch schon draufgekommen, dass die Prediction Werte für Consumption und Production auf die maximal vorgekommene Consumption und Production limitiert werden, d.h. ich muss davor im Edge mal etwas simulieren, damit die Max Werte nicht 0 sind. Und die ESS muss ich auch mal chargen/dischargen, damit die max Werte für charge/discharge auch nicht 0 sind.
Allerdings scheint das nicht so ganz zu funktionieren. Im UI Widget des Controllers ist keine Vorhersage zu sehen. Aber beim Debuggen sehe ich, dass der Predictor Werte liefert.

Danke schonmal im Voraus für jegliche Hilfe.
LG

Hallo @danielt und willkommen in der OpenEMS Community!

um schnell verschiedene Szenarien durchrechnen zu lassen, eignet sich das separate Programm “RunOptimizerFromLogApp”, siehe → openems/io.openems.edge.energy/test/io/openems/edge/energy/optimizer/RunOptimizerFromLogApp.java at develop · OpenEMS/openems · GitHub

Das was du dir vorstellst, geht sehr gut mit einem “SimulatedPredictor”. Ich habe so einen bei mir lokal schon umgesetzt - ich denke der kommt in den nächsten Backport, spätestens zu 2024.10.0. Falls du ihn dringender haben möchtest, könnte ggf. einen separaten Pull-Request dafür veröffentlichen.

Gruß,
Stefan

Hallo Stefan,

danke für die Antwort. Die RunOptimizerFromLogApp sieht schon mal sehr interessant aus. Verstehe ich das richtig, dass das Programm aus dem bereitgestellten Log die Prediction Werte und weitere Parameter wie Tariff und ESS Capacity nimmt und daraus einen Fahrplan berechnet? D.h. man könnte mit den Prediction Werten variieren und so sehen, welche Fahrpläne berechnet werden?

Ja ich glaube, einen SimulatedPredictor könnte ich gebrauchen. Ich komme ggf. darauf zurück.

Danke und Grüße,
Daniel

danke für die Antwort. Die RunOptimizerFromLogApp sieht schon mal sehr interessant aus. Verstehe ich das richtig, dass das Programm aus dem bereitgestellten Log die Prediction Werte und weitere Parameter wie Tariff und ESS Capacity nimmt und daraus einen Fahrplan berechnet? D.h. man könnte mit den Prediction Werten variieren und so sehen, welche Fahrpläne berechnet werden?

Genau so ist es. :+1:

Die Komponente Simulator.Predictor ist jetzt im develop-Branch → openems/io.openems.edge.simulator/src/io/openems/edge/simulator/predictor/SimulatorPredictorImpl.java at develop · OpenEMS/openems · GitHub

1 Like