From d62c50559405bae7620b2055f86241cb118032c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juraj=20Nyi=CC=81ri?= Date: Sun, 19 Nov 2023 12:00:24 +0100 Subject: [PATCH] Add: Retry 3 times on update failure before raising reauth request --- custom_components/tapo_control/__init__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/custom_components/tapo_control/__init__.py b/custom_components/tapo_control/__init__.py index b0b02bf..1e358af 100644 --- a/custom_components/tapo_control/__init__.py +++ b/custom_components/tapo_control/__init__.py @@ -449,11 +449,18 @@ async def async_update_data(): updateDataForAllControllers[controller] = await getCamData( hass, controller ) + hass.data[DOMAIN][entry.entry_id]["reauth_retries"] = 0 except Exception as e: updateDataForAllControllers[controller] = False if str(e) == "Invalid authentication data": - hass.data[DOMAIN][entry.entry_id]["refreshEnabled"] = False - raise ConfigEntryAuthFailed(e) + if hass.data[DOMAIN][entry.entry_id]["reauth_retries"] < 3: + hass.data[DOMAIN][entry.entry_id]["reauth_retries"] += 1 + raise e + else: + hass.data[DOMAIN][entry.entry_id][ + "refreshEnabled" + ] = False + raise ConfigEntryAuthFailed(e) LOGGER.error(e) hass.data[DOMAIN][entry.entry_id][ @@ -552,6 +559,7 @@ async def async_update_data(): hass.data[DOMAIN][entry.entry_id] = { "setup_retries": 0, + "reauth_retries": 0, "runningMediaSync": False, "controller": tapoController, "entry": entry,