Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The seventeentrack component."""
2 
3 from pyseventeentrack import Client as SeventeenTrackClient
4 from pyseventeentrack.errors import SeventeenTrackError
5 
6 from homeassistant.config_entries import ConfigEntry
7 from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform
8 from homeassistant.core import HomeAssistant
9 from homeassistant.exceptions import ConfigEntryNotReady
10 from homeassistant.helpers import config_validation as cv
11 from homeassistant.helpers.aiohttp_client import async_get_clientsession
12 from homeassistant.helpers.typing import ConfigType
13 
14 from .const import DOMAIN
15 from .coordinator import SeventeenTrackCoordinator
16 from .services import setup_services
17 
18 PLATFORMS: list[Platform] = [Platform.SENSOR]
19 
20 CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
21 
22 
23 async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
24  """Set up the 17Track component."""
25 
26  setup_services(hass)
27 
28  return True
29 
30 
31 async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
32  """Set up 17Track from a config entry."""
33 
34  session = async_get_clientsession(hass)
35  client = SeventeenTrackClient(session=session)
36 
37  try:
38  await client.profile.login(entry.data[CONF_USERNAME], entry.data[CONF_PASSWORD])
39  except SeventeenTrackError as err:
40  raise ConfigEntryNotReady from err
41 
42  seventeen_coordinator = SeventeenTrackCoordinator(hass, client)
43 
44  await seventeen_coordinator.async_config_entry_first_refresh()
45 
46  hass.data.setdefault(DOMAIN, {})[entry.entry_id] = seventeen_coordinator
47  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
48  return True
bool async_setup(HomeAssistant hass, ConfigType config)
Definition: __init__.py:23
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:31
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)