diff --git a/teslemetry_stream/__init__.py b/teslemetry_stream/__init__.py index ee7b974..ea4f0c9 100644 --- a/teslemetry_stream/__init__.py +++ b/teslemetry_stream/__init__.py @@ -8,7 +8,7 @@ LOGGER = logging.getLogger(__package__) -DELAY = 10 +DELAY = 1 class TeslemetryStreamError(Exception): @@ -32,6 +32,12 @@ class TeslemetryStreamVehicleNotConfigured(TeslemetryStreamError): message = "This vehicle is not configured to connect to Teslemetry." +class TeslemetryStreamEnded(TeslemetryStreamError): + """Teslemetry Stream Connection Error""" + + message = "The stream was ended by the server." + + class TeslemetryStream: """Teslemetry Stream Client""" @@ -192,15 +198,16 @@ async def __anext__(self) -> dict: .replace(tzinfo=timezone.utc) .timestamp() ) * 1000 + int(ns[:3]) - LOGGER.debug("event %s", json.dumps(data)) + # LOGGER.debug("event %s", json.dumps(data)) self.delay = DELAY return data - except aiohttp.ClientError as error: + raise TeslemetryStreamEnded() + except (TeslemetryStreamEnded, aiohttp.ClientError) as error: LOGGER.warning("Connection error: %s", error) self.close() LOGGER.debug("Reconnecting in %s seconds", self.delay) await asyncio.sleep(self.delay) - self.delay += DELAY + self.delay += self.delay def async_add_listener( self, callback: Callable, filters: dict | None = None