From b734593bf2aa88aa97e48b8f34e6c8ff038b3991 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Fri, 10 Apr 2026 00:37:22 +0200 Subject: [PATCH] fix: Bridge _send_to_rvs ping-check before send, force reconnect on zombie Co-Authored-By: Claude Opus 4.6 (1M context) --- bridge/aria_bridge.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/bridge/aria_bridge.py b/bridge/aria_bridge.py index 315e0f4..68e8a7a 100644 --- a/bridge/aria_bridge.py +++ b/bridge/aria_bridge.py @@ -1354,10 +1354,24 @@ class ARIABridge: pass async def _send_to_rvs(self, message: dict) -> None: - """Sendet eine Nachricht an die App (via RVS).""" + """Sendet eine Nachricht an die App (via RVS) mit Verbindungs-Check.""" if self.ws_rvs is None: return + # Ping-Check: Verbindung wirklich aktiv? + try: + pong = await self.ws_rvs.ping() + await asyncio.wait_for(pong, timeout=5) + except Exception: + logger.warning("[rvs] Ping fehlgeschlagen — Verbindung tot, erzwinge Reconnect") + try: + await self.ws_rvs.close() + except Exception: + pass + self.ws_rvs = None + # Reconnect wird vom connect_to_rvs Loop uebernommen + return + try: await self.ws_rvs.send(json.dumps(message)) except Exception: