Simulationen mit dem ctrlEssTimeOfUseTariff

Bei mir läuft OpenEMS Edge als Systemd-Service. So lese ich die Logs dann via journalctl aus - z. B. journalctl -lu openems --since="20 minutes ago" | grep OPTIMIZER

Der Log sieht dann etwas so aus:

fems0 java[20605]: OPTIMIZER Params [numberOfPeriods=50, time=2024-01-31T11:30+01:00[Europe/Warsaw], essTotalEnergy=22000, essMinSocEnergy=1100, essMaxSocEnergy=19800, essInitialEnergy=1100, essMaxEnergyPerPeriod=2500, maxBuyFromGrid=5750, states=[BALANCING, DELAY_DISCHARGE, CHARGE], maxPrice=273.5]
fems0 java[20605]: OPTIMIZER Time  Production Consumption EssInitial EssMaxCharge EssMaxDischarge State           EssChargeDischarge  Grid Price  Cost
fems0 java[20605]: OPTIMIZER 11:30        316         665       1100        -2500               0 BALANCING                        0   349 260.60 0.0909
fems0 java[20605]: OPTIMIZER 12:00        502         878       1100        -2500               0 BALANCING                        0   376 258.00 0.0970
fems0 java[20605]: OPTIMIZER 12:15        571         790       1100        -2500               0 BALANCING                        0   219 258.00 0.0565
fems0 java[20605]: OPTIMIZER 12:30        661         541       1100        -2500               0 BALANCING                     -120     0 258.00 0.0000
fems0 java[20605]: OPTIMIZER 12:45        774         252       1220        -2500             120 BALANCING                     -522     0 258.00 0.0000
fems0 java[20605]: OPTIMIZER 13:00        815        1142       1742        -2500             642 DELAY_DISCHARGE                  0   327 249.40 0.0816

Aus der Params-Zeile ergeben sich die Eingangsvariablen ESS_CAPACITY, ESS_MIN_SOC, ESS_MAX_POWER, etc. → openems/io.openems.edge.controller.ess.timeofusetariff/test/io/openems/edge/controller/ess/timeofusetariff/optimizer/RunOptimizerFromLogApp.java at develop · OpenEMS/openems · GitHub

Der untere Teil kann dann in die LOG-Variable kopiert werden → openems/io.openems.edge.controller.ess.timeofusetariff/test/io/openems/edge/controller/ess/timeofusetariff/optimizer/RunOptimizerFromLogApp.java at develop · OpenEMS/openems · GitHub

So kann man die Simulation lokal in Eclipse testen und z. B. Breakpoints setzen.

Bei der “Speicher Beladung” und “Speicher Entladung” gibt es zwar kWh Werte, aber keinen Viertelstundenwert in kW. Hast Du vielleicht eine Idee dazu warum das so ist?

Das weiß ich auf Anhieb auch nicht. Scheint vielleicht ein Problem mit der RRD4j zu sein - hängt evtl. damit zusammen: Timedata Error (aggregated0 and influx0) - #9 by Sn0w3y. Ein Breakpoint hier könnte bei der Analyse helfen: openems/io.openems.common/src/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesExportXlsxResponse.java at develop · OpenEMS/openems · GitHub

Gruß,
Stefan

1 Like