diff --git a/homeassistant/components/iaqualink/const.py b/homeassistant/components/iaqualink/const.py index 1db4b5a6f16937..893c02d483e2a0 100644 --- a/homeassistant/components/iaqualink/const.py +++ b/homeassistant/components/iaqualink/const.py @@ -3,4 +3,9 @@ from datetime import timedelta DOMAIN = "iaqualink" -UPDATE_INTERVAL = timedelta(seconds=15) + +UPDATE_INTERVAL_BY_SYSTEM_TYPE: dict[str, timedelta] = { + "iaqua": timedelta(seconds=15), + "exo": timedelta(seconds=60), +} +UPDATE_INTERVAL_DEFAULT = timedelta(seconds=30) diff --git a/homeassistant/components/iaqualink/coordinator.py b/homeassistant/components/iaqualink/coordinator.py index 0285915bcd944c..8f50d30e949c29 100644 --- a/homeassistant/components/iaqualink/coordinator.py +++ b/homeassistant/components/iaqualink/coordinator.py @@ -14,7 +14,7 @@ from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -from .const import DOMAIN, UPDATE_INTERVAL +from .const import DOMAIN, UPDATE_INTERVAL_BY_SYSTEM_TYPE, UPDATE_INTERVAL_DEFAULT _LOGGER = logging.getLogger(__name__) @@ -26,12 +26,15 @@ def __init__( self, hass: HomeAssistant, config_entry: ConfigEntry, system: Any ) -> None: """Initialize the coordinator.""" + update_interval = UPDATE_INTERVAL_BY_SYSTEM_TYPE.get( + system.NAME, UPDATE_INTERVAL_DEFAULT + ) super().__init__( hass, _LOGGER, config_entry=config_entry, name=f"{DOMAIN}_{system.serial}", - update_interval=UPDATE_INTERVAL, + update_interval=update_interval, ) self.system = system diff --git a/tests/components/iaqualink/test_init.py b/tests/components/iaqualink/test_init.py index 9e2b515b78839e..57d205c9caaf8e 100644 --- a/tests/components/iaqualink/test_init.py +++ b/tests/components/iaqualink/test_init.py @@ -19,7 +19,7 @@ from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN -from homeassistant.components.iaqualink.const import UPDATE_INTERVAL +from homeassistant.components.iaqualink.const import UPDATE_INTERVAL_BY_SYSTEM_TYPE from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN @@ -46,7 +46,7 @@ async def _advance_coordinator_time( hass: HomeAssistant, freezer: FrozenDateTimeFactory ) -> None: """Advance time to trigger coordinator update interval.""" - freezer.tick(delta=UPDATE_INTERVAL) + freezer.tick(delta=UPDATE_INTERVAL_BY_SYSTEM_TYPE["iaqua"]) async_fire_time_changed(hass, dt_util.utcnow()) await hass.async_block_till_done(wait_background_tasks=True)