diff --git a/wyoming_satellite/satellite.py b/wyoming_satellite/satellite.py index 75c4e63..030e39d 100755 --- a/wyoming_satellite/satellite.py +++ b/wyoming_satellite/satellite.py @@ -1025,11 +1025,21 @@ class SatelliteBase: await event_client.connect() _LOGGER.debug("Connected to event service") - await event_client.write_event(event) + try: + await event_client.write_event(event) + except (ConnectionResetError, BrokenPipeError, OSError) as err: + # Event service disconnected, reconnect on next event + _LOGGER.warning("Event service disconnected: %s", err) + await _disconnect() + event_client = None + # Put event back in queue to retry after reconnect + self._event_queue.put_nowait(event) + await asyncio.sleep(self.settings.event.reconnect_seconds) + except asyncio.CancelledError: break except Exception: - _LOGGER.exception("Unexpected error in event read task") + _LOGGER.exception("Unexpected error in event task") await _disconnect() event_client = None # reconnect self._event_queue = None