Home Assistant Unofficial Reference 2024.12.1
__init__.py
Go to the documentation of this file.
1 """The Ruuvi Gateway integration."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.const import CONF_HOST, CONF_TOKEN
9 from homeassistant.core import HomeAssistant
10 
11 from .bluetooth import async_connect_scanner
12 from .const import DOMAIN, SCAN_INTERVAL
13 from .coordinator import RuuviGatewayUpdateCoordinator
14 from .models import RuuviGatewayRuntimeData
15 
16 _LOGGER = logging.getLogger(DOMAIN)
17 
18 
19 async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
20  """Set up Ruuvi Gateway from a config entry."""
21  coordinator = RuuviGatewayUpdateCoordinator(
22  hass,
23  logger=_LOGGER,
24  name=entry.title,
25  update_interval=SCAN_INTERVAL,
26  host=entry.data[CONF_HOST],
27  token=entry.data[CONF_TOKEN],
28  )
29  scanner, unload_scanner = async_connect_scanner(hass, entry, coordinator)
30  hass.data.setdefault(DOMAIN, {})[entry.entry_id] = RuuviGatewayRuntimeData(
31  update_coordinator=coordinator,
32  scanner=scanner,
33  )
34  entry.async_on_unload(unload_scanner)
35  return True
36 
37 
38 async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
39  """Unload a config entry."""
40  if unload_ok := await hass.config_entries.async_unload_platforms(entry, []):
41  hass.data[DOMAIN].pop(entry.entry_id)
42 
43  return unload_ok
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:38
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
Definition: __init__.py:19
CALLBACK_TYPE async_connect_scanner(HomeAssistant hass, ShellyRpcCoordinator coordinator, BLEScannerMode scanner_mode)
Definition: __init__.py:24