diff --git a/homeassistant/components/openuv/__init__.py b/homeassistant/components/openuv/__init__.py index 20ef5211c23..77755fdca21 100644 --- a/homeassistant/components/openuv/__init__.py +++ b/homeassistant/components/openuv/__init__.py @@ -51,23 +51,31 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up OpenUV as config entry.""" _verify_domain_control = verify_domain_control(hass, DOMAIN) + websession = aiohttp_client.async_get_clientsession(hass) + openuv = OpenUV( + entry, + Client( + entry.data[CONF_API_KEY], + entry.data.get(CONF_LATITUDE, hass.config.latitude), + entry.data.get(CONF_LONGITUDE, hass.config.longitude), + altitude=entry.data.get(CONF_ELEVATION, hass.config.elevation), + session=websession, + ), + ) + + # We disable the client's request retry abilities here to avoid a lengthy (and + # blocking) startup: + openuv.client.disable_request_retries() + try: - websession = aiohttp_client.async_get_clientsession(hass) - openuv = OpenUV( - entry, - Client( - entry.data[CONF_API_KEY], - entry.data.get(CONF_LATITUDE, hass.config.latitude), - entry.data.get(CONF_LONGITUDE, hass.config.longitude), - altitude=entry.data.get(CONF_ELEVATION, hass.config.elevation), - session=websession, - ), - ) await openuv.async_update() except OpenUvError as err: LOGGER.error("Config entry failed: %s", err) raise ConfigEntryNotReady from err + # Once we've successfully authenticated, we re-enable client request retries: + openuv.client.enable_request_retries() + hass.data.setdefault(DOMAIN, {}) hass.data[DOMAIN][entry.entry_id] = openuv diff --git a/homeassistant/components/openuv/manifest.json b/homeassistant/components/openuv/manifest.json index 207bd307d21..6132cda2710 100644 --- a/homeassistant/components/openuv/manifest.json +++ b/homeassistant/components/openuv/manifest.json @@ -3,7 +3,7 @@ "name": "OpenUV", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/openuv", - "requirements": ["pyopenuv==2.2.1"], + "requirements": ["pyopenuv==2021.11.0"], "codeowners": ["@bachya"], "iot_class": "cloud_polling" } diff --git a/requirements_all.txt b/requirements_all.txt index b37f890f11f..7b08015b8f7 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1691,7 +1691,7 @@ pyoctoprintapi==0.1.6 pyombi==0.1.10 # homeassistant.components.openuv -pyopenuv==2.2.1 +pyopenuv==2021.11.0 # homeassistant.components.opnsense pyopnsense==0.2.0 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 4a3c2c848b5..b1e4b52a2fa 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1034,7 +1034,7 @@ pynzbgetapi==0.2.0 pyoctoprintapi==0.1.6 # homeassistant.components.openuv -pyopenuv==2.2.1 +pyopenuv==2021.11.0 # homeassistant.components.opnsense pyopnsense==0.2.0