"""The IntelliFire integration.""" from __future__ import annotations from homeassistant.core import HomeAssistant from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import _LOGGER, DEVICE_SCAN_INTERVAL, DOMAIN class FlumeDeviceDataUpdateCoordinator(DataUpdateCoordinator[None]): """Data update coordinator for an individual flume device.""" def __init__(self, hass: HomeAssistant, flume_device) -> None: """Initialize the Coordinator.""" super().__init__( hass, name=DOMAIN, logger=_LOGGER, update_interval=DEVICE_SCAN_INTERVAL, ) self.flume_device = flume_device async def _async_update_data(self) -> None: """Get the latest data from the Flume.""" _LOGGER.debug("Updating Flume data") try: await self.hass.async_add_executor_job(self.flume_device.update_force) except Exception as ex: raise UpdateFailed(f"Error communicating with flume API: {ex}") from ex _LOGGER.debug( "Flume update details: values=%s query_payload=%s", self.flume_device.values, self.flume_device.query_payload, )