Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The SRP Energy integration."""
2 
3 from srpenergy.client import SrpEnergyClient
4 
5 from homeassistant.config_entries import ConfigEntry
6 from homeassistant.const import CONF_ID, CONF_PASSWORD, CONF_USERNAME, Platform
7 from homeassistant.core import HomeAssistant
8 
9 from .const import CONF_IS_TOU, DOMAIN, LOGGER
10 from .coordinator import SRPEnergyDataUpdateCoordinator
11 
12 PLATFORMS = [Platform.SENSOR]
13 
14 
15 async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
16  """Set up the SRP Energy component from a config entry."""
17  api_account_id: str = entry.data[CONF_ID]
18  api_username: str = entry.data[CONF_USERNAME]
19  api_password: str = entry.data[CONF_PASSWORD]
20 
21  LOGGER.debug("Configuring client using account_id %s", api_account_id)
22 
23  api_instance = SrpEnergyClient(
24  api_account_id,
25  api_username,
26  api_password,
27  )
28 
29  coordinator = SRPEnergyDataUpdateCoordinator(
30  hass, api_instance, entry.data[CONF_IS_TOU]
31  )
32 
33  await coordinator.async_config_entry_first_refresh()
34 
35  hass.data.setdefault(DOMAIN, {})
36  hass.data[DOMAIN][entry.entry_id] = coordinator
37 
38  await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
39 
40  return True
41 
42 
43 async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
44  """Unload a config entry."""
45  if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
46  hass.data[DOMAIN].pop(entry.entry_id)
47 
48  return unload_ok
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:43
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:15