From 186b8d4f4b6d5368e961358cedba202e00e4473a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 25 Aug 2021 02:43:08 -0700 Subject: [PATCH] Fix rainforest eagle incorrectly fetch conncted first try (#55193) --- .../components/rainforest_eagle/data.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/rainforest_eagle/data.py b/homeassistant/components/rainforest_eagle/data.py index f76b809f2a9..76ddb2d25d7 100644 --- a/homeassistant/components/rainforest_eagle/data.py +++ b/homeassistant/components/rainforest_eagle/data.py @@ -136,23 +136,28 @@ class EagleDataCoordinator(DataUpdateCoordinator): async def _async_update_data_200(self): """Get the latest data from the Eagle-200 device.""" - if self.eagle200_meter is None: + eagle200_meter = self.eagle200_meter + + if eagle200_meter is None: hub = aioeagle.EagleHub( aiohttp_client.async_get_clientsession(self.hass), self.cloud_id, self.entry.data[CONF_INSTALL_CODE], host=self.entry.data[CONF_HOST], ) - self.eagle200_meter = aioeagle.ElectricMeter.create_instance( + eagle200_meter = aioeagle.ElectricMeter.create_instance( hub, self.hardware_address ) - - is_connected = self.eagle200_meter.is_connected + is_connected = True + else: + is_connected = eagle200_meter.is_connected async with async_timeout.timeout(30): - data = await self.eagle200_meter.get_device_query() + data = await eagle200_meter.get_device_query() - if is_connected and not self.eagle200_meter.is_connected: + if self.eagle200_meter is None: + self.eagle200_meter = eagle200_meter + elif is_connected and not eagle200_meter.is_connected: _LOGGER.warning("Lost connection with electricity meter") _LOGGER.debug("API data: %s", data)