1 """The Tomorrow.io integration."""
3 from __future__
import annotations
5 from pytomorrowio
import TomorrowioV4
14 from .const
import DOMAIN
15 from .coordinator
import TomorrowioDataUpdateCoordinator
17 PLATFORMS = [SENSOR_DOMAIN, WEATHER_DOMAIN]
21 """Set up Tomorrow.io API from a config entry."""
22 hass.data.setdefault(DOMAIN, {})
24 api_key = entry.data[CONF_API_KEY]
27 if not (coordinator := hass.data[DOMAIN].
get(api_key)):
31 api = TomorrowioV4(api_key, 361.0, 361.0, unit_system=
"metric", session=session)
33 hass.data[DOMAIN][api_key] = coordinator
35 await coordinator.async_setup_entry(entry)
37 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
43 """Unload a config entry."""
44 unload_ok = await hass.config_entries.async_unload_platforms(
45 config_entry, PLATFORMS
48 api_key = config_entry.data[CONF_API_KEY]
49 coordinator: TomorrowioDataUpdateCoordinator = hass.data[DOMAIN][api_key]
51 if await coordinator.async_unload_entry(config_entry):
52 hass.data[DOMAIN].pop(api_key)
53 if not hass.data[DOMAIN]:
web.Response get(self, web.Request request, str config_key)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_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)