1 """Support for Blink system camera control."""
3 from __future__
import annotations
8 BinarySensorDeviceClass,
10 BinarySensorEntityDescription,
25 from .coordinator
import BlinkConfigEntry, BlinkUpdateCoordinator
27 _LOGGER = logging.getLogger(__name__)
29 BINARY_SENSORS_TYPES: tuple[BinarySensorEntityDescription, ...] = (
32 device_class=BinarySensorDeviceClass.BATTERY,
33 entity_category=EntityCategory.DIAGNOSTIC,
37 key=TYPE_CAMERA_ARMED,
38 translation_key=
"camera_armed",
39 entity_registry_enabled_default=
False,
42 key=TYPE_MOTION_DETECTED,
43 device_class=BinarySensorDeviceClass.MOTION,
50 config_entry: BlinkConfigEntry,
51 async_add_entities: AddEntitiesCallback,
53 """Set up the blink binary sensors."""
55 coordinator = config_entry.runtime_data
59 for camera
in coordinator.api.cameras
60 for description
in BINARY_SENSORS_TYPES
66 """Representation of a Blink binary sensor."""
68 _attr_has_entity_name =
True
72 coordinator: BlinkUpdateCoordinator,
74 description: BinarySensorEntityDescription,
76 """Initialize the sensor."""
79 self.
_camera_camera = coordinator.api.cameras[camera]
80 serial = self.
_camera_camera.serial
83 identifiers={(DOMAIN, serial)},
86 manufacturer=DEFAULT_BRAND,
87 model=self.
_camera_camera.camera_type,
93 """Handle update from data coordinator."""
99 """Update attributes for binary sensor."""
103 self.
_camera_camera.attributes[
"name"],
108 is_on = is_on !=
"ok"
None __init__(self, BlinkUpdateCoordinator coordinator, camera, BinarySensorEntityDescription description)
None _handle_coordinator_update(self)
None async_setup_entry(HomeAssistant hass, BlinkConfigEntry config_entry, AddEntitiesCallback async_add_entities)