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.
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.
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 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?
der Thread ist zwar schon etwas älter, aber ich frag trotzdem hier mal nach Rat
Ich bin jetzt schon seit einiger Zeit dabei, mich im Rahmen meiner Bachelorarbeit mit OpenEMS zu beschäftigen. Ich möchte gerne in einer Simulation folgende drei Ziele erreichen:
Hochlastzeitfenster
Eigenverbrauchsoptimierung
dyn. Stromtarif und entsprechend ein Nachladen des ESS zu Zeiten mit günstigem Strompreis
Die ersten beiden Punkte funktionieren bereits, beim 3. hakt es noch.
Ich würde gerne das Predictor.PersistenceModel durch den Simulator.Predictor ersetzen und dort über ein Simulator DataSource: CSV Direct Werte für den Channel _sum/ConsumptionActivePower vorgeben.
Und wenn ja: Wie verwende ich den Simulator DataSource: CSV Direct richtig? Ich habe die verschiedensten Eingaben unter Source* (A CSV-Input containing an optional title line and a series of values.) ausprobiert und der Zähler mit dem ich das getestet habe, zeigt immer UNDEFINED an.
Ich wäre wirklich sehr dankbar, wenn mir jemand weiter helfen könnte!
mittlerweile ich habe das ganze so zum laufen bekommen, wie ich es mir gewünscht habe.
Falls sich bei jemand anderem ähnliche Fragen auftun sollten:
ich habe mittels Simulator.Predictor die Channel _sum/ConsumptionActivePower und _sum/UnmanagedConsumptionActivePower vorgegeben
in Simulator Datasource: CSV Direct habe ich dann 288 Werte eingefügt (24h * 12 Werte/h also im 5 min Abstand)
Das einfügen des Inhalts einer CSV Datei hat dabei bei mir nur über die Apache Felix Web Console und nicht über das UI geklappt. Habe mich dann einfach an dem Format der Predefined .csv-Dateien orientiert