From 5564a50c3c8bcce21e58496606777bbdac7f044d Mon Sep 17 00:00:00 2001 From: retr0 <42kdesigners@gmail.com> Date: Thu, 7 May 2026 10:12:35 +0200 Subject: [PATCH] =?UTF-8?q?fix(ems):=20Zwangsladen-Countdown=20l=C3=A4uft?= =?UTF-8?q?=20ohne=20angestecktes=20Auto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kathrein Reg 0x0060 liefert IllegalAddress wenn kein Fahrzeug angeschlossen. Default war 1 (STATE_CONNECTED) → EMS nahm Auto als verbunden an → Countdown. IllegalAddress ist kein sporadischer Lesefehler, sondern das definierte Signal der Wallbox für "kein Fahrzeug". Default auf 0 (STATE_IDLE) → EMS kehrt sofort zu "kein Fahrzeug" zurück, _no_pv_since-Timer wird nicht gestartet. Co-Authored-By: Claude Sonnet 4.6 --- ROADMAP.md | 1 + haos-addon/config.yaml | 2 +- haos-addon/src/main.py | 5 ++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 2d75f96..24edf86 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -100,3 +100,4 @@ | v1.8.23 | 2026-05-07 | Fix: Goodwe Netzbezug-Periode zeigt 0 kWh — integrierter grid_power-Zähler statt e_total_imp-Delta | | v1.8.24 | 2026-05-07 | Fix: WR/Wallbox-Offline-Flapping — erst nach 3 aufeinanderfolgenden Lesefehlern offline schalten | | v1.8.25 | 2026-05-07 | Fix: TCP-Timeout auf max. 40% des Poll-Intervalls begrenzt (Wallbox + Modbus) — verhindert Poll-Überlappung | +| v1.8.26 | 2026-05-07 | Fix: EMS-Countdown läuft ohne Auto — Kathrein 0x0060 IllegalAddress = kein Fahrzeug (default war fälschlich 1=Connected) | diff --git a/haos-addon/config.yaml b/haos-addon/config.yaml index f3e9cd4..1884596 100644 --- a/haos-addon/config.yaml +++ b/haos-addon/config.yaml @@ -1,5 +1,5 @@ name: ShineBridge -version: "1.8.25" +version: "1.8.26" 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 28264b7..d906a0f 100644 --- a/haos-addon/src/main.py +++ b/haos-addon/src/main.py @@ -345,9 +345,8 @@ def _poll_loop(inv_cfg: Dict[str, Any], stop: threading.Event): # EMS: PV-Überschuss aus anderen Geräten holen und Ladestrom regeln if ems is not None and values is not None and inv_cfg.get("ems_enabled", True): pv_surplus = _get_pv_surplus() - # 0x0060 manchmal nicht lesbar → 1 (EV Connected) annehmen, - # damit EMS aktiviert; Wallbox ignoriert Befehle wenn kein Auto da - charging_state = int(values.get("charging_state", 1)) + # 0x0060 gibt IllegalAddress zurück wenn kein Auto angesteckt → State 0 (Idle) + charging_state = int(values.get("charging_state", 0)) wallbox_power = values.get("total_power", 0.0) ems_status = ems.update(reader, pv_surplus, charging_state, wallbox_power) values["ems_status_code"] = float(charging_state)