3 from __future__
import annotations
5 from contextlib
import suppress
7 import voluptuous
as vol
8 from volvooncall.dashboard
import Instrument
11 DEVICE_CLASSES_SCHEMA,
19 from .const
import DOMAIN, VOLVO_DISCOVERY_NEW
20 from .coordinator
import VolvoUpdateCoordinator
21 from .entity
import VolvoEntity
26 config_entry: ConfigEntry,
27 async_add_entities: AddEntitiesCallback,
29 """Configure binary_sensors from a config entry created in the integrations UI."""
30 coordinator: VolvoUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
31 volvo_data = coordinator.volvo_data
35 """Discover and add a discovered Volvo On Call binary sensor."""
39 instrument.vehicle.vin,
44 for instrument
in instruments
45 if instrument.component ==
"binary_sensor"
50 config_entry.async_on_unload(
56 """Representation of a Volvo sensor."""
60 coordinator: VolvoUpdateCoordinator,
66 """Initialize the sensor."""
67 super().
__init__(vin, component, attribute, slug_attr, coordinator)
69 with suppress(vol.Invalid):
76 """Fetch from update coordinator."""
77 if self.
instrumentinstrument.attr ==
"is_locked":
None __init__(self, VolvoUpdateCoordinator coordinator, str vin, str component, str attribute, str slug_attr)
ElkSystem|None async_discover_device(HomeAssistant hass, str host)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)