Add motion device class to reolink AI detection binary sensors (#176802)

This commit is contained in:
Abílio Costa
2026-07-20 17:41:48 +01:00
committed by GitHub
parent 23d051d694
commit 70a78c388d
2 changed files with 19 additions and 6 deletions
@@ -79,6 +79,7 @@ BINARY_PUSH_SENSORS = (
key=FACE_DETECTION_TYPE,
cmd_id=33,
translation_key="face",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, FACE_DETECTION_TYPE),
supported=lambda api, ch: api.ai_supported(ch, FACE_DETECTION_TYPE),
@@ -87,6 +88,7 @@ BINARY_PUSH_SENSORS = (
key=PERSON_DETECTION_TYPE,
cmd_id=[33, 600, 696],
translation_key="person",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, PERSON_DETECTION_TYPE),
supported=lambda api, ch: api.ai_supported(ch, PERSON_DETECTION_TYPE),
@@ -95,6 +97,7 @@ BINARY_PUSH_SENSORS = (
key=VEHICLE_DETECTION_TYPE,
cmd_id=[33, 600, 696],
translation_key="vehicle",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, VEHICLE_DETECTION_TYPE),
supported=lambda api, ch: api.ai_supported(ch, VEHICLE_DETECTION_TYPE),
@@ -103,6 +106,7 @@ BINARY_PUSH_SENSORS = (
key="non-motor_vehicle",
cmd_id=[600, 696],
translation_key="non-motor_vehicle",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, "non-motor vehicle"),
supported=lambda api, ch: api.supported(ch, "ai_non-motor vehicle"),
@@ -111,6 +115,7 @@ BINARY_PUSH_SENSORS = (
key=PET_DETECTION_TYPE,
cmd_id=[33, 600, 696],
translation_key="pet",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, PET_DETECTION_TYPE),
supported=lambda api, ch: (
@@ -122,6 +127,7 @@ BINARY_PUSH_SENSORS = (
key=PET_DETECTION_TYPE,
cmd_id=[33, 600, 696],
translation_key="animal",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, PET_DETECTION_TYPE),
supported=lambda api, ch: api.supported(ch, "ai_animal"),
@@ -130,6 +136,7 @@ BINARY_PUSH_SENSORS = (
key=PACKAGE_DETECTION_TYPE,
cmd_id=[33, 600, 696],
translation_key="package",
device_class=BinarySensorDeviceClass.MOTION,
lens_entity=True,
value=lambda api, ch: api.ai_detected(ch, PACKAGE_DETECTION_TYPE),
supported=lambda api, ch: api.ai_supported(ch, PACKAGE_DETECTION_TYPE),
@@ -24,7 +24,7 @@
'object_id_base': 'Animal',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Animal',
'platform': 'reolink',
@@ -39,6 +39,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_animal-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Animal',
}),
'context': <ANY>,
@@ -124,7 +125,7 @@
'object_id_base': 'Bicycle',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Bicycle',
'platform': 'reolink',
@@ -139,6 +140,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_bicycle-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Bicycle',
}),
'context': <ANY>,
@@ -224,7 +226,7 @@
'object_id_base': 'Face',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Face',
'platform': 'reolink',
@@ -239,6 +241,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_face-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Face',
}),
'context': <ANY>,
@@ -525,7 +528,7 @@
'object_id_base': 'Package',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Package',
'platform': 'reolink',
@@ -540,6 +543,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_package-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Package',
}),
'context': <ANY>,
@@ -575,7 +579,7 @@
'object_id_base': 'Person',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Person',
'platform': 'reolink',
@@ -590,6 +594,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_person-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Person',
}),
'context': <ANY>,
@@ -675,7 +680,7 @@
'object_id_base': 'Vehicle',
'options': dict({
}),
'original_device_class': None,
'original_device_class': <BinarySensorDeviceClass.MOTION: 'motion'>,
'original_icon': None,
'original_name': 'Vehicle',
'platform': 'reolink',
@@ -690,6 +695,7 @@
# name: test_all_entities[binary_sensor.test_reolink_cam_vehicle-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'motion',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Vehicle',
}),
'context': <ANY>,