1 """Support for Tibber."""
17 from .const
import DATA_HASS_CONFIG, DOMAIN
18 from .services
import async_setup_services
20 PLATFORMS = [Platform.NOTIFY, Platform.SENSOR]
22 CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN)
24 _LOGGER = logging.getLogger(__name__)
27 async
def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
28 """Set up the Tibber component."""
30 hass.data[DATA_HASS_CONFIG] = config
38 """Set up a config entry."""
40 tibber_connection = tibber.Tibber(
41 access_token=entry.data[CONF_ACCESS_TOKEN],
43 time_zone=dt_util.get_default_time_zone(),
44 ssl=ssl_util.get_default_context(),
46 hass.data[DOMAIN] = tibber_connection
48 async
def _close(event: Event) ->
None:
49 await tibber_connection.rt_disconnect()
51 entry.async_on_unload(hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, _close))
54 await tibber_connection.update_info()
59 tibber.RetryableHttpExceptionError,
62 except tibber.InvalidLoginError
as exp:
63 _LOGGER.error(
"Failed to login. %s", exp)
65 except tibber.FatalHttpExceptionError:
68 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
74 """Unload a config entry."""
75 unload_ok = await hass.config_entries.async_unload_platforms(
76 config_entry, PLATFORMS
79 tibber_connection = hass.data[DOMAIN]
80 await tibber_connection.rt_disconnect()
None async_setup_services(HomeAssistant hass)
bool async_setup(HomeAssistant hass, ConfigType config)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
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)