1 """Support for Bizkaibus, Biscay (Basque Country, Spain) Bus service."""
3 from __future__
import annotations
5 from contextlib
import suppress
7 from bizkaibus.bizkaibus
import BizkaibusData
8 import voluptuous
as vol
11 PLATFORM_SCHEMA
as SENSOR_PLATFORM_SCHEMA,
20 ATTR_DUE_IN =
"Due in"
22 CONF_STOP_ID =
"stopid"
25 DEFAULT_NAME =
"Next bus"
27 PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
29 vol.Required(CONF_STOP_ID): cv.string,
30 vol.Required(CONF_ROUTE): cv.string,
31 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
39 add_entities: AddEntitiesCallback,
40 discovery_info: DiscoveryInfoType |
None =
None,
42 """Set up the Bizkaibus public transport sensor."""
43 name = config[CONF_NAME]
44 stop = config[CONF_STOP_ID]
45 route = config[CONF_ROUTE]
52 """The class for handling the data."""
54 _attr_native_unit_of_measurement = UnitOfTime.MINUTES
57 """Initialize the sensor."""
62 """Get the latest data from the webservice."""
64 with suppress(TypeError):
69 """The class for handling the data retrieval."""
72 """Initialize the data object."""
78 """Retrieve the information from API."""
79 bridge = BizkaibusData(self.
stopstop, self.
routeroute)
81 self.
infoinfo = bridge.info
def __init__(self, data, name)
def __init__(self, stop, route)
None setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback add_entities, DiscoveryInfoType|None discovery_info=None)
def add_entities(account, async_add_entities, tracked)