1 """NextBus platform."""
8 from .const
import CONF_AGENCY, CONF_ROUTE, DOMAIN
9 from .coordinator
import NextBusDataUpdateCoordinator
11 PLATFORMS = [Platform.SENSOR]
15 """Set up platforms for NextBus."""
16 entry_agency = entry.data[CONF_AGENCY]
17 entry_stop = entry.data[CONF_STOP]
18 coordinator_key = f
"{entry_agency}-{entry_stop}"
20 coordinator: NextBusDataUpdateCoordinator |
None = hass.data.setdefault(
25 if coordinator
is None:
27 hass.data[DOMAIN][coordinator_key] = coordinator
29 coordinator.add_stop_route(entry_stop, entry.data[CONF_ROUTE])
31 await coordinator.async_refresh()
32 if not coordinator.last_update_success:
33 raise ConfigEntryNotReady
from coordinator.last_exception
35 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
41 """Unload a config entry."""
42 if await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
43 entry_agency = entry.data[CONF_AGENCY]
44 entry_stop = entry.data[CONF_STOP]
45 coordinator_key = f
"{entry_agency}-{entry_stop}"
47 coordinator: NextBusDataUpdateCoordinator = hass.data[DOMAIN][coordinator_key]
48 coordinator.remove_stop_route(entry_stop, entry.data[CONF_ROUTE])
50 if not coordinator.has_routes():
51 await coordinator.async_shutdown()
52 hass.data[DOMAIN].pop(coordinator_key)
web.Response get(self, web.Request request, str config_key)
bool async_unload_entry(HomeAssistant hass, ConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, ConfigEntry entry)