Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Airzone Cloud integration."""
2 
3 from __future__ import annotations
4 
5 from aioairzone_cloud.cloudapi import AirzoneCloudApi
6 from aioairzone_cloud.common import ConnectionOptions
7 
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.const import CONF_ID, CONF_PASSWORD, CONF_USERNAME, Platform
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers import aiohttp_client
12 
13 from .coordinator import AirzoneUpdateCoordinator
14 
15 PLATFORMS: list[Platform] = [
16  Platform.BINARY_SENSOR,
17  Platform.CLIMATE,
18  Platform.SELECT,
19  Platform.SENSOR,
20  Platform.SWITCH,
21  Platform.WATER_HEATER,
22 ]
23 
24 type AirzoneCloudConfigEntry = ConfigEntry[AirzoneUpdateCoordinator]
25 
26 
28  hass: HomeAssistant, entry: AirzoneCloudConfigEntry
29 ) -> bool:
30  """Set up Airzone Cloud from a config entry."""
31  options = ConnectionOptions(
32  entry.data[CONF_USERNAME],
33  entry.data[CONF_PASSWORD],
34  True,
35  )
36 
37  airzone = AirzoneCloudApi(aiohttp_client.async_get_clientsession(hass), options)
38  await airzone.login()
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)
44 
45  coordinator = AirzoneUpdateCoordinator(hass, airzone)
46  await coordinator.async_config_entry_first_refresh()
47 
48  entry.runtime_data = coordinator
49 
50  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
51 
52  return True
53 
54 
56  hass: HomeAssistant, entry: AirzoneCloudConfigEntry
57 ) -> bool:
58  """Unload a config entry."""
59 
60  if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
61  coordinator = entry.runtime_data
62  await coordinator.airzone.logout()
63 
64  return unload_ok
bool async_unload_entry(HomeAssistant hass, AirzoneCloudConfigEntry entry)
Definition: __init__.py:57
bool async_setup_entry(HomeAssistant hass, AirzoneCloudConfigEntry entry)
Definition: __init__.py:29