From f104bba6835024d8969e5a812c2f14cdbf239235 Mon Sep 17 00:00:00 2001 From: Alberto Geniola Date: Mon, 24 Apr 2023 18:51:40 +0200 Subject: [PATCH] Elmax -Handle 422 busy error with a retry approach (#91926) --- homeassistant/components/elmax/common.py | 5 +++++ homeassistant/components/elmax/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/elmax/common.py b/homeassistant/components/elmax/common.py index f1ffe87fde9..5334da23125 100644 --- a/homeassistant/components/elmax/common.py +++ b/homeassistant/components/elmax/common.py @@ -11,6 +11,7 @@ from elmax_api.exceptions import ( ElmaxBadLoginError, ElmaxBadPinError, ElmaxNetworkError, + ElmaxPanelBusyError, ) from elmax_api.http import Elmax from elmax_api.model.actuator import Actuator @@ -124,6 +125,10 @@ class ElmaxCoordinator(DataUpdateCoordinator[PanelStatus]): raise ConfigEntryAuthFailed("Refused username/password") from err except ElmaxApiError as err: raise UpdateFailed(f"Error communicating with ELMAX API: {err}") from err + except ElmaxPanelBusyError as err: + raise UpdateFailed( + "Communication with the panel failed, as it is currently busy" + ) from err except ElmaxNetworkError as err: raise UpdateFailed( "A network error occurred while communicating with Elmax cloud." diff --git a/homeassistant/components/elmax/manifest.json b/homeassistant/components/elmax/manifest.json index 6c772776346..e6e8d76be91 100644 --- a/homeassistant/components/elmax/manifest.json +++ b/homeassistant/components/elmax/manifest.json @@ -6,5 +6,5 @@ "documentation": "https://www.home-assistant.io/integrations/elmax", "iot_class": "cloud_polling", "loggers": ["elmax_api"], - "requirements": ["elmax_api==0.0.2"] + "requirements": ["elmax_api==0.0.4"] } diff --git a/requirements_all.txt b/requirements_all.txt index 89f2214ee08..4c110a17359 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -647,7 +647,7 @@ eliqonline==1.2.2 elkm1-lib==2.2.1 # homeassistant.components.elmax -elmax_api==0.0.2 +elmax_api==0.0.4 # homeassistant.components.emulated_roku emulated_roku==0.2.1 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index ba8d2a1bc5a..a62514a4525 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -509,7 +509,7 @@ elgato==4.0.1 elkm1-lib==2.2.1 # homeassistant.components.elmax -elmax_api==0.0.2 +elmax_api==0.0.4 # homeassistant.components.emulated_roku emulated_roku==0.2.1