Skip to content

SolarEdge: PV solar forcast scaling wrong - using all ac power (ignoring battery) #29435

@AndrCarl

Description

@AndrCarl

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

  • I have made sure that no external automation like HomeAssistant or Node-RED is active or accessing any of the mentioned devices when this issue occurs.

Nightly build

  • I have verified that the issue is reproducible with the latest nightly build

Version

v0.305.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    devicesSpecific device support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions