Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Autarco integration."""
2 
3 from __future__ import annotations
4 
5 import asyncio
6 
7 from autarco import Autarco
8 
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.const import CONF_EMAIL, CONF_PASSWORD, Platform
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.aiohttp_client import async_get_clientsession
13 
14 from .coordinator import AutarcoDataUpdateCoordinator
15 
16 PLATFORMS: list[Platform] = [Platform.SENSOR]
17 
18 type AutarcoConfigEntry = ConfigEntry[list[AutarcoDataUpdateCoordinator]]
19 
20 
21 async def async_setup_entry(hass: HomeAssistant, entry: AutarcoConfigEntry) -> bool:
22  """Set up Autarco from a config entry."""
23  client = Autarco(
24  email=entry.data[CONF_EMAIL],
25  password=entry.data[CONF_PASSWORD],
26  session=async_get_clientsession(hass),
27  )
28  account_sites = await client.get_account()
29 
30  coordinators: list[AutarcoDataUpdateCoordinator] = [
31  AutarcoDataUpdateCoordinator(hass, client, site) for site in account_sites
32  ]
33 
34  await asyncio.gather(
35  *[
36  coordinator.async_config_entry_first_refresh()
37  for coordinator in coordinators
38  ]
39  )
40 
41  entry.runtime_data = coordinators
42 
43  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
44  return True
45 
46 
47 async def async_unload_entry(hass: HomeAssistant, entry: AutarcoConfigEntry) -> bool:
48  """Unload a config entry."""
49  return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
bool async_setup_entry(HomeAssistant hass, AutarcoConfigEntry entry)
Definition: __init__.py:21
bool async_unload_entry(HomeAssistant hass, AutarcoConfigEntry entry)
Definition: __init__.py:47
aiohttp.ClientSession async_get_clientsession(HomeAssistant hass, bool verify_ssl=True, socket.AddressFamily family=socket.AF_UNSPEC, ssl_util.SSLCipherList ssl_cipher=ssl_util.SSLCipherList.PYTHON_DEFAULT)