diff --git a/homeassistant/components/traccar/device_tracker.py b/homeassistant/components/traccar/device_tracker.py index 39d1c2dd370..b3e2b2833c2 100644 --- a/homeassistant/components/traccar/device_tracker.py +++ b/homeassistant/components/traccar/device_tracker.py @@ -109,26 +109,38 @@ class TraccarScanner: self._scan_interval = scan_interval self._async_see = async_see self._api = api + self.connected = False self._hass = hass async def async_init(self): """Further initialize connection to Traccar.""" await self._api.test_connection() - if self._api.authenticated: - await self._async_update() - async_track_time_interval(self._hass, - self._async_update, - self._scan_interval) + if self._api.connected and not self._api.authenticated: + _LOGGER.error("Authentication for Traccar failed") + return False - return self._api.authenticated + await self._async_update() + async_track_time_interval(self._hass, + self._async_update, + self._scan_interval) + return True async def _async_update(self, now=None): """Update info from Traccar.""" - _LOGGER.debug('Updating device data.') + if not self.connected: + _LOGGER.debug('Testing connection to Traccar') + await self._api.test_connection() + self.connected = self._api.connected + if self.connected: + _LOGGER.info("Connection to Traccar restored") + else: + return + _LOGGER.debug('Updating device data') await self._api.get_device_info(self._custom_attributes) self._hass.async_create_task(self.import_device_data()) if self._event_types: self._hass.async_create_task(self.import_events()) + self.connected = self._api.connected async def import_device_data(self): """Import device data from Traccar.""" diff --git a/homeassistant/components/traccar/manifest.json b/homeassistant/components/traccar/manifest.json index 5c859fefb71..0f9aa6e8464 100644 --- a/homeassistant/components/traccar/manifest.json +++ b/homeassistant/components/traccar/manifest.json @@ -3,7 +3,7 @@ "name": "Traccar", "documentation": "https://www.home-assistant.io/components/traccar", "requirements": [ - "pytraccar==0.7.0", + "pytraccar==0.8.0", "stringcase==1.2.0" ], "dependencies": [], diff --git a/requirements_all.txt b/requirements_all.txt index fa5ee0cc221..10e8e52dced 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1432,7 +1432,7 @@ pytile==2.0.6 pytouchline==0.7 # homeassistant.components.traccar -pytraccar==0.7.0 +pytraccar==0.8.0 # homeassistant.components.trackr pytrackr==0.0.5