Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Energy integration."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components import frontend
6 from homeassistant.const import Platform
7 from homeassistant.core import HomeAssistant
8 from homeassistant.helpers import config_validation as cv, discovery
9 from homeassistant.helpers.typing import ConfigType
10 
11 from . import websocket_api
12 from .const import DOMAIN
13 from .data import async_get_manager
14 
15 CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN)
16 
17 
18 async def is_configured(hass: HomeAssistant) -> bool:
19  """Return a boolean to indicate if energy is configured."""
20  manager = await async_get_manager(hass)
21  if manager.data is None:
22  return False
23  return bool(manager.data != manager.default_preferences())
24 
25 
26 async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
27  """Set up Energy."""
28  websocket_api.async_setup(hass)
29  frontend.async_register_built_in_panel(hass, DOMAIN, DOMAIN, "mdi:lightning-bolt")
30 
31  hass.async_create_task(
32  discovery.async_load_platform(hass, Platform.SENSOR, DOMAIN, {}, config),
33  eager_start=True,
34  )
35  hass.data[DOMAIN] = {
36  "cost_sensors": {},
37  }
38 
39  return True
EnergyManager async_get_manager(HomeAssistant hass)
Definition: data.py:22
bool is_configured(HomeAssistant hass)
Definition: __init__.py:18
bool async_setup(HomeAssistant hass, ConfigType config)
Definition: __init__.py:26