1 """Support for EZVIZ binary sensors."""
3 from __future__
import annotations
6 BinarySensorDeviceClass,
8 BinarySensorEntityDescription,
14 from .const
import DATA_COORDINATOR, DOMAIN
15 from .coordinator
import EzvizDataUpdateCoordinator
16 from .entity
import EzvizEntity
20 BINARY_SENSOR_TYPES: dict[str, BinarySensorEntityDescription] = {
23 device_class=BinarySensorDeviceClass.MOTION,
26 key=
"alarm_schedules_enabled",
27 translation_key=
"alarm_schedules_enabled",
31 translation_key=
"encrypted",
37 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
39 """Set up EZVIZ sensors based on a config entry."""
40 coordinator: EzvizDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][
47 for camera
in coordinator.data
48 for binary_sensor, value
in coordinator.data[camera].items()
49 if binary_sensor
in BINARY_SENSOR_TYPES
56 """Representation of a EZVIZ sensor."""
60 coordinator: EzvizDataUpdateCoordinator,
64 """Initialize the sensor."""
65 super().
__init__(coordinator, serial)
67 self.
_attr_unique_id_attr_unique_id = f
"{serial}_{self._camera_name}.{binary_sensor}"
72 """Return the state of the sensor."""
None __init__(self, EzvizDataUpdateCoordinator coordinator, str serial, str binary_sensor)
dict[str, Any] data(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)