diff --git a/homeassistant/components/aladdin_connect/coordinator.py b/homeassistant/components/aladdin_connect/coordinator.py index 718aed8e445..3f6e3cb4eb6 100644 --- a/homeassistant/components/aladdin_connect/coordinator.py +++ b/homeassistant/components/aladdin_connect/coordinator.py @@ -5,12 +5,13 @@ from __future__ import annotations from datetime import timedelta import logging +import aiohttp from genie_partner_sdk.client import AladdinConnectClient from genie_partner_sdk.model import GarageDoor from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant -from homeassistant.helpers.update_coordinator import DataUpdateCoordinator +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed _LOGGER = logging.getLogger(__name__) type AladdinConnectConfigEntry = ConfigEntry[dict[str, AladdinConnectCoordinator]] @@ -40,7 +41,10 @@ class AladdinConnectCoordinator(DataUpdateCoordinator[GarageDoor]): async def _async_update_data(self) -> GarageDoor: """Fetch data from the Aladdin Connect API.""" - await self.client.update_door(self.data.device_id, self.data.door_number) + try: + await self.client.update_door(self.data.device_id, self.data.door_number) + except aiohttp.ClientError as err: + raise UpdateFailed(f"Error communicating with API: {err}") from err self.data.status = self.client.get_door_status( self.data.device_id, self.data.door_number ) diff --git a/homeassistant/components/aladdin_connect/quality_scale.yaml b/homeassistant/components/aladdin_connect/quality_scale.yaml index bbf55c8f167..46b65422ac5 100644 --- a/homeassistant/components/aladdin_connect/quality_scale.yaml +++ b/homeassistant/components/aladdin_connect/quality_scale.yaml @@ -32,9 +32,13 @@ rules: status: exempt comment: Integration does not have an options flow. docs-installation-parameters: done - entity-unavailable: todo + entity-unavailable: + status: done + comment: Handled by the coordinator. integration-owner: done - log-when-unavailable: todo + log-when-unavailable: + status: done + comment: Handled by the coordinator. parallel-updates: done reauthentication-flow: done test-coverage: done