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: