1 """The Airzone Cloud integration."""
3 from __future__
import annotations
5 from aioairzone_cloud.cloudapi
import AirzoneCloudApi
6 from aioairzone_cloud.common
import ConnectionOptions
13 from .coordinator
import AirzoneUpdateCoordinator
15 PLATFORMS: list[Platform] = [
16 Platform.BINARY_SENSOR,
21 Platform.WATER_HEATER,
24 type AirzoneCloudConfigEntry = ConfigEntry[AirzoneUpdateCoordinator]
28 hass: HomeAssistant, entry: AirzoneCloudConfigEntry
30 """Set up Airzone Cloud from a config entry."""
31 options = ConnectionOptions(
32 entry.data[CONF_USERNAME],
33 entry.data[CONF_PASSWORD],
37 airzone = AirzoneCloudApi(aiohttp_client.async_get_clientsession(hass), options)
39 inst_list = await airzone.list_installations()
40 for inst
in inst_list:
41 if inst.get_id() == entry.data[CONF_ID]:
42 airzone.select_installation(inst)
43 await airzone.update_installation(inst)
46 await coordinator.async_config_entry_first_refresh()
48 entry.runtime_data = coordinator
50 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
56 hass: HomeAssistant, entry: AirzoneCloudConfigEntry
58 """Unload a config entry."""
60 if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
61 coordinator = entry.runtime_data
62 await coordinator.airzone.logout()
bool async_unload_entry(HomeAssistant hass, AirzoneCloudConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, AirzoneCloudConfigEntry entry)