1 """Provides the ezviz DataUpdateCoordinator."""
4 from datetime
import timedelta
7 from pyezviz.client
import EzvizClient
8 from pyezviz.exceptions
import (
10 EzvizAuthVerificationCode,
20 from .const
import DOMAIN
22 _LOGGER = logging.getLogger(__name__)
26 """Class to manage fetching EZVIZ data."""
29 self, hass: HomeAssistant, *, api: EzvizClient, api_timeout: int
31 """Initialize global EZVIZ data updater."""
36 super().
__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval)
39 """Fetch data from EZVIZ."""
41 async
with asyncio.timeout(self.
_api_timeout_api_timeout):
42 return await self.
hasshass.async_add_executor_job(
46 except (EzvizAuthTokenExpired, EzvizAuthVerificationCode)
as error:
47 raise ConfigEntryAuthFailed
from error
49 except (InvalidURL, HTTPError, PyEzvizError)
as error:
50 raise UpdateFailed(f
"Invalid response from API: {error}")
from error
None __init__(self, HomeAssistant hass, *EzvizClient api, int api_timeout)
dict _async_update_data(self)