1 """The HERE Travel Time integration."""
3 from __future__
import annotations
14 CONF_DESTINATION_ENTITY_ID,
15 CONF_DESTINATION_LATITUDE,
16 CONF_DESTINATION_LONGITUDE,
17 CONF_ORIGIN_ENTITY_ID,
19 CONF_ORIGIN_LONGITUDE,
24 from .coordinator
import (
25 HERERoutingDataUpdateCoordinator,
26 HERETransitDataUpdateCoordinator,
28 from .model
import HERETravelTimeConfig
30 PLATFORMS = [Platform.SENSOR]
34 """Set up HERE Travel Time from a config entry."""
35 api_key = config_entry.data[CONF_API_KEY]
37 arrival = dt_util.parse_time(config_entry.options.get(CONF_ARRIVAL_TIME,
""))
38 departure = dt_util.parse_time(config_entry.options.get(CONF_DEPARTURE_TIME,
""))
41 destination_latitude=config_entry.data.get(CONF_DESTINATION_LATITUDE),
42 destination_longitude=config_entry.data.get(CONF_DESTINATION_LONGITUDE),
43 destination_entity_id=config_entry.data.get(CONF_DESTINATION_ENTITY_ID),
44 origin_latitude=config_entry.data.get(CONF_ORIGIN_LATITUDE),
45 origin_longitude=config_entry.data.get(CONF_ORIGIN_LONGITUDE),
46 origin_entity_id=config_entry.data.get(CONF_ORIGIN_ENTITY_ID),
47 travel_mode=config_entry.data[CONF_MODE],
48 route_mode=config_entry.options[CONF_ROUTE_MODE],
53 cls: type[HERETransitDataUpdateCoordinator | HERERoutingDataUpdateCoordinator]
54 if config_entry.data[CONF_MODE]
in {TRAVEL_MODE_PUBLIC,
"publicTransportTimeTable"}:
55 cls = HERETransitDataUpdateCoordinator
57 cls = HERERoutingDataUpdateCoordinator
59 data_coordinator = cls(hass, api_key, here_travel_time_config)
60 hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = data_coordinator
62 async
def _async_update_at_start(_: HomeAssistant) ->
None:
63 await data_coordinator.async_refresh()
66 await hass.config_entries.async_forward_entry_setups(config_entry, PLATFORMS)
72 """Unload a config entry."""
73 unload_ok = await hass.config_entries.async_unload_platforms(
74 config_entry, PLATFORMS
77 hass.data[DOMAIN].pop(config_entry.entry_id)
bool async_unload_entry(HomeAssistant hass, ConfigEntry config_entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry config_entry)
CALLBACK_TYPE async_at_started(HomeAssistant hass, Callable[[HomeAssistant], Coroutine[Any, Any, None]|None] at_start_cb)