diff --git a/homeassistant/components/system_bridge/binary_sensor.py b/homeassistant/components/system_bridge/binary_sensor.py index d5cb34cd42a..019b1df4639 100644 --- a/homeassistant/components/system_bridge/binary_sensor.py +++ b/homeassistant/components/system_bridge/binary_sensor.py @@ -17,6 +17,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN from .coordinator import SystemBridgeDataUpdateCoordinator +from .data import SystemBridgeData from .entity import SystemBridgeEntity @@ -24,14 +25,33 @@ from .entity import SystemBridgeEntity class SystemBridgeBinarySensorEntityDescription(BinarySensorEntityDescription): """Class describing System Bridge binary sensor entities.""" - value: Callable = round + value_fn: Callable = round + + +def camera_in_use(data: SystemBridgeData) -> bool | None: + """Return if any camera is in use.""" + if data.system.camera_usage is not None: + return len(data.system.camera_usage) > 0 + return None BASE_BINARY_SENSOR_TYPES: tuple[SystemBridgeBinarySensorEntityDescription, ...] = ( + SystemBridgeBinarySensorEntityDescription( + key="camera_in_use", + translation_key="camera_in_use", + icon="mdi:webcam", + value_fn=camera_in_use, + ), + SystemBridgeBinarySensorEntityDescription( + key="pending_reboot", + translation_key="pending_reboot", + icon="mdi:restart", + value_fn=lambda data: data.system.pending_reboot, + ), SystemBridgeBinarySensorEntityDescription( key="version_available", device_class=BinarySensorDeviceClass.UPDATE, - value=lambda data: data.system.version_newer_available, + value_fn=lambda data: data.system.version_newer_available, ), ) @@ -39,7 +59,7 @@ BATTERY_BINARY_SENSOR_TYPES: tuple[SystemBridgeBinarySensorEntityDescription, .. SystemBridgeBinarySensorEntityDescription( key="battery_is_charging", device_class=BinarySensorDeviceClass.BATTERY_CHARGING, - value=lambda data: data.battery.is_charging, + value_fn=lambda data: data.battery.is_charging, ), ) @@ -90,4 +110,4 @@ class SystemBridgeBinarySensor(SystemBridgeEntity, BinarySensorEntity): @property def is_on(self) -> bool: """Return the boolean state of the binary sensor.""" - return self.entity_description.value(self.coordinator.data) + return self.entity_description.value_fn(self.coordinator.data) diff --git a/homeassistant/components/system_bridge/strings.json b/homeassistant/components/system_bridge/strings.json index a13b0319aea..98a1fe4c08d 100644 --- a/homeassistant/components/system_bridge/strings.json +++ b/homeassistant/components/system_bridge/strings.json @@ -30,6 +30,14 @@ } }, "entity": { + "binary_sensor": { + "camera_in_use": { + "name": "Camera in use" + }, + "pending_reboot": { + "name": "Pending reboot" + } + }, "media_player": { "media": { "name": "Media"