Migrate Hydrawise to an async client library (#103636)
* Migrate Hydrawise to an async client library * Changes requested during review * Additional changes requested during review
This commit is contained in:
parent
45f1d50f03
commit
0899be6d4b
13 changed files with 254 additions and 232 deletions
|
@ -4,26 +4,25 @@ from __future__ import annotations
|
|||
|
||||
from datetime import timedelta
|
||||
|
||||
from pydrawise.legacy import LegacyHydrawise
|
||||
from pydrawise import HydrawiseBase
|
||||
from pydrawise.schema import User
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
|
||||
from .const import DOMAIN, LOGGER
|
||||
|
||||
|
||||
class HydrawiseDataUpdateCoordinator(DataUpdateCoordinator[None]):
|
||||
class HydrawiseDataUpdateCoordinator(DataUpdateCoordinator[User]):
|
||||
"""The Hydrawise Data Update Coordinator."""
|
||||
|
||||
def __init__(
|
||||
self, hass: HomeAssistant, api: LegacyHydrawise, scan_interval: timedelta
|
||||
self, hass: HomeAssistant, api: HydrawiseBase, scan_interval: timedelta
|
||||
) -> None:
|
||||
"""Initialize HydrawiseDataUpdateCoordinator."""
|
||||
super().__init__(hass, LOGGER, name=DOMAIN, update_interval=scan_interval)
|
||||
self.api = api
|
||||
|
||||
async def _async_update_data(self) -> None:
|
||||
async def _async_update_data(self) -> User:
|
||||
"""Fetch the latest data from Hydrawise."""
|
||||
result = await self.hass.async_add_executor_job(self.api.update_controller_info)
|
||||
if not result:
|
||||
raise UpdateFailed("Failed to refresh Hydrawise data")
|
||||
return await self.api.get_user()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue