ShineBridge v1.11.2 — Feature: PV-Überschuss batteriebewusst berechnen
_get_pv_surplus() zieht jetzt die aktuelle Batterie-Entladeleistung vom Netzexport ab, bevor er als PV-Überschuss fürs Auto verwendet wird. Verhindert, dass PV-Überschussladen bei bewölktem Wetter versehentlich den Hausspeicher anzapft, wenn der Export eigentlich aus der Batterie statt frischer PV-Produktion kommt. Betrifft nur PV-Überschussladen — Zwangsladen bleibt bewusst unverändert netzbasiert. Anlagen ohne Batterie (bat_discharge_power fehlt) verhalten sich unverändert wie zuvor. Teil 1 von 2 des 'Prognosebasiertes Laden'-Roadmap-Punkts — Teil 2 (Wetterprognose + Sonnenstand) folgt als eigener Schritt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -223,9 +223,16 @@ def _compute_aggregates(allow_stale: bool = False) -> Dict[str, float]:
|
||||
# ── EMS Hilfsfunktionen ───────────────────────────────────────
|
||||
|
||||
def _get_pv_surplus() -> float:
|
||||
"""PV-Überschuss in Watt. Nutzt grid_power-Aggregat (negativ = Einspeisung)."""
|
||||
"""PV-Überschuss in Watt für PV-Überschussladen (nicht für Zwangsladen — das
|
||||
bleibt unverändert netzbasiert). Netzexport (grid_power negativ = Einspeisung)
|
||||
abzüglich aktueller Batterie-Entladeleistung, damit ein Überschuss, der
|
||||
tatsächlich aus dem Hausspeicher kommt (z.B. bei bewölktem Wetter), nicht
|
||||
fälschlich als PV-Überschuss fürs Auto verwendet wird. Anlagen ohne Batterie
|
||||
(bat_discharge_power fehlt) verhalten sich unverändert wie zuvor."""
|
||||
agg = _compute_aggregates(allow_stale=True)
|
||||
return max(0.0, -agg.get("grid_power", 0.0))
|
||||
grid_export = max(0.0, -agg.get("grid_power", 0.0))
|
||||
bat_discharge = agg.get("bat_discharge_power", 0.0)
|
||||
return max(0.0, grid_export - bat_discharge)
|
||||
|
||||
|
||||
# ── Poll Loop ─────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user