Describe the bug
Beschreibung / Kontext
Bei der PV-Forecast-Skalierung wird aktuell offenbar nur der Wechselrichter-Tageswert dailyAC berücksichtigt. Das führt bei Anlagen mit Batterie zu einer Abweichung zwischen Forecast-Vergleich und tatsächlich erzeugter PV-Energie.
In meinem Setup unterscheide ich zwischen PV netto und PV brutto:
PV netto = dailyAC - BatteryDischarge
PV brutto = dailyAC - BatteryDischarge + BatteryChargePV
Dabei ist:
dailyAC = AC-Energie des Wechselrichters
BatteryDischarge = heute aus der Batterie entladene Energie
BatteryChargePV = heute aus PV in die Batterie geladene Energie
Problem
Wenn für die Forecast-Skalierung nur dailyAC verwendet wird, kann Batterieenergie die PV-Produktion verfälschen:
dailyAC = PV-Direktverbrauch + Einspeisung + Batterieentladung
Damit enthält dailyAC auch Energie, die aus der Batterie kommt. Diese Energie kann zeitlich von früherer PV-Erzeugung stammen und sollte nicht als aktuelle PV-Erzeugung in die Forecast-Skalierung eingehen.
Gleichzeitig fehlt bei reiner Betrachtung von dailyAC die PV-Energie, die direkt in die Batterie geladen wurde.
Erwartetes Verhalten
Für die Skalierung des PV-Forecasts sollte optional ein Brutto-PV-Wert verwendet werden können:
PV brutto = dailyAC - BatteryDischarge + BatteryChargePV
Damit würde die Forecast-Skalierung auf der tatsächlichen PV-Erzeugung basieren, nicht nur auf dem AC-Tageswert des Wechselrichters.
Beispiel
dailyAC = 20 kWh
BatteryDischarge = 4 kWh
BatteryChargePV = 3 kWh
PV netto = 20 - 4 = 16 kWh
PV brutto = 20 - 4 + 3 = 19 kWh
Wird nur dailyAC = 20 kWh für die Forecast-Skalierung verwendet, ist der Wert in diesem Beispiel höher als die tatsächliche PV-Erzeugung. Der korrektere Vergleichswert wäre PV brutto = 19 kWh.
Vorschlag
Es wäre hilfreich, wenn EVCC bei der Forecast-Skalierung optional zwischen folgenden Bezugswerten unterscheiden könnte:
AC-Ertrag / dailyAC
PV netto
PV brutto
Hinweis zu SolarEdge Batterie-Werten
Bei SolarEdge sind BatteryDischarge und BatteryChargePV nicht direkt als einfacher Standardwert verfügbar, sondern müssen aus mehreren Modbus-Registern rekonstruiert werden.
Verwendete SolarEdge Modbus Register
97719 Batt1_Export_Total = kumulierte Batterie-Entladung
97723 Batt1_Import_Total = kumulierte Batterie-Ladung
103243 StChDisChMode = Lade-/Entlade-Modus
40094 TotalEnergy = dailyAC / AC-Gesamtenergie Wechselrichter
Ermittlung der Batterie-Werte
Ich verwende die Delta-Werte der kumulativen Register:
BatteryDischarge = Delta aus 97719 (Batt1_Export_Total)
BatteryCharge = Delta aus 97723 (Batt1_Import_Total)
Da SolarEdge die Ladung nicht direkt in PV-Ladung und Netz-Ladung trennt, wird zusätzlich Register 103243 ausgewertet:
103243 = 3 → Netzladung
sonst → PV-Ladung
Daraus ergibt sich:
BatteryChargeGrid = Delta(97723), wenn 103243 = 3
BatteryChargePV = Delta(97723), wenn 103243 ≠ 3
BatteryDischarge = Delta(97719)
Schematisch
deltaCharge =
aktueller Wert Register 97723
- letzter Wert Register 97723
deltaDischarge =
aktueller Wert Register 97719
- letzter Wert Register 97719
wenn Register 103243 == 3:
BatteryChargeGrid += deltaCharge
sonst:
BatteryChargePV += deltaCharge
BatteryDischarge += deltaDischarge
Berechnung der PV-Erzeugung
PV brutto = dailyAC - BatteryDischarge + BatteryChargePV
PV netto = dailyAC - BatteryDischarge
mit:
dailyAC = Delta aus Register 40094 (TotalEnergy)
Wichtig
Bei SolarEdge ist die reale PV-Erzeugung damit kein einzelner Registerwert, sondern muss aus:
40094 Wechselrichterenergie
97719 Batterieentladung
97723 Batterieladung
103243 Betriebsmodus (3 nur möglich, wenn nur nachts aus dem Netz geladen wird, bei dynamischen Tarifen, ggf. andere Logik notwendig)
logisch zusammengesetzt werden.
Steps to reproduce
siehe log
Verwendet Accumulated Werte, nur für ac power 40094
war bei v0.303 auch so, aber jetzt ist die Diskrepanz enorm groß geworden
Configuration details
SolarEdge Hybrid Inverter +
Netzwerk TCP
Log details
[site ] DEBUG 2026/04/27 08:30:43 solar forecast: accumulated 0.005Wh from 2026-04-27 08:30:33 +0200 CEST to 2026-04-27 08:30:43 +0200 CEST
[site ] DEBUG 2026/04/27 08:30:43 solar forecast: produced 20.348
[site ] DEBUG 2026/04/27 08:30:43 solar forecast: accumulated 13.371kWh, produced 20.348kWh, scale 1.522
Hinweis: Ich habe gestern Forcast-Werte zurückgesetzt, deshalb ist mir das überhaupt erst so im Detail aufgefallen. Wäre es nicht sinnvoller eine stündliche Skalierung zu erzeugen, das würde Verschattung besser berücksichtigen?
What type of operating system or environment does evcc run on?
Linux
External automation
Nightly build
Version
v0.305.1
Describe the bug
Beschreibung / Kontext
Bei der PV-Forecast-Skalierung wird aktuell offenbar nur der Wechselrichter-Tageswert
dailyACberücksichtigt. Das führt bei Anlagen mit Batterie zu einer Abweichung zwischen Forecast-Vergleich und tatsächlich erzeugter PV-Energie.In meinem Setup unterscheide ich zwischen PV netto und PV brutto:
Dabei ist:
Problem
Wenn für die Forecast-Skalierung nur
dailyACverwendet wird, kann Batterieenergie die PV-Produktion verfälschen:Damit enthält
dailyACauch Energie, die aus der Batterie kommt. Diese Energie kann zeitlich von früherer PV-Erzeugung stammen und sollte nicht als aktuelle PV-Erzeugung in die Forecast-Skalierung eingehen.Gleichzeitig fehlt bei reiner Betrachtung von
dailyACdie PV-Energie, die direkt in die Batterie geladen wurde.Erwartetes Verhalten
Für die Skalierung des PV-Forecasts sollte optional ein Brutto-PV-Wert verwendet werden können:
Damit würde die Forecast-Skalierung auf der tatsächlichen PV-Erzeugung basieren, nicht nur auf dem AC-Tageswert des Wechselrichters.
Beispiel
Wird nur
dailyAC = 20 kWhfür die Forecast-Skalierung verwendet, ist der Wert in diesem Beispiel höher als die tatsächliche PV-Erzeugung. Der korrektere Vergleichswert wärePV brutto = 19 kWh.Vorschlag
Es wäre hilfreich, wenn EVCC bei der Forecast-Skalierung optional zwischen folgenden Bezugswerten unterscheiden könnte:
Hinweis zu SolarEdge Batterie-Werten
Bei SolarEdge sind
BatteryDischargeundBatteryChargePVnicht direkt als einfacher Standardwert verfügbar, sondern müssen aus mehreren Modbus-Registern rekonstruiert werden.Verwendete SolarEdge Modbus Register
Ermittlung der Batterie-Werte
Ich verwende die Delta-Werte der kumulativen Register:
Da SolarEdge die Ladung nicht direkt in PV-Ladung und Netz-Ladung trennt, wird zusätzlich Register
103243ausgewertet:Daraus ergibt sich:
Schematisch
Berechnung der PV-Erzeugung
mit:
Wichtig
Bei SolarEdge ist die reale PV-Erzeugung damit kein einzelner Registerwert, sondern muss aus:
logisch zusammengesetzt werden.
Steps to reproduce
siehe log
Verwendet Accumulated Werte, nur für ac power 40094
war bei v0.303 auch so, aber jetzt ist die Diskrepanz enorm groß geworden
Configuration details
Log details
What type of operating system or environment does evcc run on?
Linux
External automation
Nightly build
Version
v0.305.1