From f96d798274676bd516edd5d5198aeba5eb6d6dae Mon Sep 17 00:00:00 2001 From: retr0 <42kdesigners@gmail.com> Date: Wed, 29 Apr 2026 08:02:59 +0200 Subject: [PATCH] =?UTF-8?q?Revert:=20SPH=20Energiebilanz-Ableitung=20entfe?= =?UTF-8?q?rnt=20=E2=80=94=20Problem=20war=20Goodwe=20pbattery1=20(v1.7.7)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Growatt SPH Register 1009/1011 liefern korrekte Werte. Die Ableitung via ac_power_total war unnötig und fehleranfällig. Co-Authored-By: Claude Sonnet 4.6 --- haos-addon/config.yaml | 2 +- haos-addon/src/main.py | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/haos-addon/config.yaml b/haos-addon/config.yaml index ebdf7b7..46aaf75 100644 --- a/haos-addon/config.yaml +++ b/haos-addon/config.yaml @@ -1,5 +1,5 @@ name: ShineBridge -version: "1.7.6" +version: "1.7.7" slug: shinebridge description: Growatt Wechselrichter lokal in Home Assistant — Modbus TCP via ShineLAN-X, MQTT Discovery, Web UI url: https://gitea.bitfire.work/retr0/shinebridge diff --git a/haos-addon/src/main.py b/haos-addon/src/main.py index d047bbb..e54d597 100644 --- a/haos-addon/src/main.py +++ b/haos-addon/src/main.py @@ -245,21 +245,6 @@ def _poll_loop(inv_cfg: Dict[str, Any], stop: threading.Event): if values and "grid_power" not in values and "import_kwh" in values and "total_power" in values: values["grid_power"] = values["total_power"] - # Growatt SPH: Register 1009/1011 für Batterie sind unzuverlässig (Messartefakt). - # Batterie-Nettoleistung wird stattdessen aus der Energiebilanz abgeleitet: - # bat_net = PV + grid_import - grid_export - ac_power_total - # Alle vier Quellen sind direkt gemessene, verlässliche Register. - if values and all(k in values for k in ("pv1_power", "ac_power_total", - "power_to_user", "power_to_grid")): - pv = values.get("pv1_power", 0) + values.get("pv2_power", 0) - bat_net = pv + values["power_to_user"] - values["power_to_grid"] - values["ac_power_total"] - if bat_net >= 0: - values["bat_charge_power"] = round(bat_net, 1) - values["bat_discharge_power"] = 0.0 - else: - values["bat_discharge_power"] = round(-bat_net, 1) - values["bat_charge_power"] = 0.0 - # EMS: PV-Überschuss aus anderen Geräten holen und Ladestrom regeln if ems is not None and values is not None: pv_surplus = _get_pv_surplus()