diff --git a/ROADMAP.md b/ROADMAP.md index e03ce9f..2d75f96 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -99,3 +99,4 @@ | v1.8.22 | 2026-05-06 | Fix: Stromtarif-Einstellungen bleiben nach Neustart erhalten; Finanzen-Tab Layout | | 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 | diff --git a/haos-addon/config.yaml b/haos-addon/config.yaml index 088f9bc..f3e9cd4 100644 --- a/haos-addon/config.yaml +++ b/haos-addon/config.yaml @@ -1,5 +1,5 @@ name: ShineBridge -version: "1.8.24" +version: "1.8.25" 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 55a2dbc..28264b7 100644 --- a/haos-addon/src/main.py +++ b/haos-addon/src/main.py @@ -280,7 +280,7 @@ def _poll_loop(inv_cfg: Dict[str, Any], stop: threading.Event): log.info("[%s] Poll-Loop: %s @ %s (Goodwe UDP/8899) alle %ds", inv_id, inverter.name, host, interval) elif inverter.protocol == "kathrein": - reader = WallboxReader(host=host, port=port) + reader = WallboxReader(host=host, port=port, timeout=min(5.0, interval * 0.4)) ems = EmsController( min_pv_power=inv_cfg.get("ems_min_pv", 1400), pv_timeout_h=inv_cfg.get("ems_timeout", 4.0), @@ -290,7 +290,7 @@ def _poll_loop(inv_cfg: Dict[str, Any], stop: threading.Event): log.info("[%s] Poll-Loop: %s @ %s:%s (Kathrein EMS) alle %ds", inv_id, inverter.name, host, port, interval) else: - reader = ModbusReader(host=host, port=port, slave=slave) + reader = ModbusReader(host=host, port=port, slave=slave, timeout=min(5.0, interval * 0.4)) log.info("[%s] Poll-Loop: %s @ %s:%s alle %ds", inv_id, inverter.name, host, port, interval)