1 """The Nightscout integration."""
3 from aiohttp
import ClientError
4 from py_nightscout
import Api
as NightscoutAPI
14 from .const
import DOMAIN
16 PLATFORMS = [Platform.SENSOR]
17 _API_TIMEOUT = SLOW_UPDATE_WARNING - 1
21 """Set up Nightscout from a config entry."""
22 server_url = entry.data[CONF_URL]
23 api_key = entry.data.get(CONF_API_KEY)
25 api = NightscoutAPI(server_url, session=session, api_secret=api_key)
27 status = await api.get_server_status()
28 except (ClientError, TimeoutError, OSError)
as error:
29 raise ConfigEntryNotReady
from error
31 hass.data.setdefault(DOMAIN, {})
32 hass.data[DOMAIN][entry.entry_id] = api
34 device_registry = dr.async_get(hass)
35 device_registry.async_get_or_create(
36 config_entry_id=entry.entry_id,
37 identifiers={(DOMAIN, server_url)},
38 manufacturer=
"Nightscout Foundation",
40 sw_version=status.version,
41 entry_type=dr.DeviceEntryType.SERVICE,
44 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
50 """Unload a config entry."""
51 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
53 hass.data[DOMAIN].pop(entry.entry_id)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_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)