1 """The flo integration."""
6 from aioflo
import async_get_api
7 from aioflo.errors
import RequestError
15 from .const
import CLIENT, DOMAIN
16 from .coordinator
import FloDeviceDataUpdateCoordinator
18 _LOGGER = logging.getLogger(__name__)
20 PLATFORMS = [Platform.BINARY_SENSOR, Platform.SENSOR, Platform.SWITCH]
24 """Set up flo from a config entry."""
26 hass.data.setdefault(DOMAIN, {})
27 hass.data[DOMAIN][entry.entry_id] = {}
29 hass.data[DOMAIN][entry.entry_id][CLIENT] = client = await
async_get_api(
30 entry.data[CONF_USERNAME], entry.data[CONF_PASSWORD], session=session
32 except RequestError
as err:
33 raise ConfigEntryNotReady
from err
35 user_info = await client.user.get_info(include_location_info=
True)
37 _LOGGER.debug(
"Flo user information with locations: %s", user_info)
39 hass.data[DOMAIN][entry.entry_id][
"devices"] = devices = [
41 for location
in user_info[
"locations"]
42 for device
in location[
"devices"]
45 tasks = [device.async_refresh()
for device
in devices]
46 await asyncio.gather(*tasks)
48 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
54 """Unload a config entry."""
55 unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
57 hass.data[DOMAIN].pop(entry.entry_id)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
API async_get_api(HomeAssistant hass, str api_key)
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)