Reolink tamper entities (#179750)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
starkillerOG
2026-08-22 17:17:42 +01:00
committed by GitHub
co-authored by dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
parent 6927877d1b
commit 02a4014a68
7 changed files with 189 additions and 0 deletions
@@ -156,6 +156,14 @@ BINARY_PUSH_SENSORS = (
value=lambda api, ch: api.ai_detected(ch, "cry"),
supported=lambda api, ch: api.ai_supported(ch, "cry"),
),
ReolinkBinarySensorEntityDescription(
key="tamper",
translation_key="tamper",
cmd_id=[33],
device_class=BinarySensorDeviceClass.TAMPER,
value=lambda api, ch: api.baichuan.tamper_state(ch),
supported=lambda api, ch: api.supported(ch, "tamper"),
),
)
BINARY_SENSORS = (
@@ -121,6 +121,12 @@
"on": "mdi:package-variant-closed-check"
}
},
"tamper": {
"default": "mdi:shield-check",
"state": {
"on": "mdi:shield-alert"
}
},
"vehicle": {
"default": "mdi:car-off",
"state": {
@@ -634,6 +640,12 @@
},
"siren_on_event": {
"default": "mdi:alarm-light"
},
"tamper_enabled": {
"default": "mdi:shield-check",
"state": {
"off": "mdi:shield"
}
}
},
"time": {
@@ -891,6 +891,9 @@
},
"siren_on_event": {
"name": "Siren on event"
},
"tamper_enabled": {
"name": "Tamper alarm"
}
},
"time": {
@@ -245,6 +245,17 @@ SWITCH_ENTITIES = (
value=lambda api, ch: api.pir_reduce_alarm(ch) is True,
method=lambda api, ch, value: api.set_pir(ch, reduce_alarm=value),
),
ReolinkSwitchEntityDescription(
key="tamper_enabled",
cmd_key="763",
cmd_id=763,
translation_key="tamper_enabled",
entity_category=EntityCategory.CONFIG,
entity_registry_enabled_default=False,
supported=lambda api, ch: api.supported(ch, "tamper"),
value=lambda api, ch: api.baichuan.tamper_enabled(ch) is True,
method=lambda api, ch, value: api.baichuan.set_tamper(ch, enable=value),
),
ReolinkSwitchEntityDescription(
key="privacy_mode",
always_available=True,
@@ -655,6 +655,57 @@
'state': 'on',
})
# ---
# name: test_all_entities[binary_sensor.test_reolink_cam_tamper-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
None,
]),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'binary_sensor',
'entity_category': None,
'entity_id': 'binary_sensor.test_reolink_cam_tamper',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': 'Tamper',
'options': dict({
}),
'original_device_class': <BinarySensorDeviceClass.TAMPER: 'tamper'>,
'original_icon': None,
'original_name': 'Tamper',
'platform': 'reolink',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'tamper',
'unique_id': 'ABC1234567D89EFG_DEF7654321D89GHT_tamper',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[binary_sensor.test_reolink_cam_tamper-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.DEVICE_CLASS: 'device_class'>: 'tamper',
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Tamper',
}),
'context': <ANY>,
'entity_id': 'binary_sensor.test_reolink_cam_tamper',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'on',
})
# ---
# name: test_all_entities[binary_sensor.test_reolink_cam_vehicle-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
@@ -128,6 +128,10 @@
'0': 1,
'null': 1,
}),
'763': dict({
'0': 1,
'null': 1,
}),
'DingDongOpt': dict({
'0': 2,
'null': 2,
@@ -1049,6 +1049,56 @@
'state': 'on',
})
# ---
# name: test_all_entities[switch.test_reolink_cam_tamper_alarm-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
None,
]),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'switch',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'switch.test_reolink_cam_tamper_alarm',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': 'Tamper alarm',
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Tamper alarm',
'platform': 'reolink',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'tamper_enabled',
'unique_id': 'ABC1234567D89EFG_DEF7654321D89GHT_tamper_enabled',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities[switch.test_reolink_cam_tamper_alarm-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_cam Tamper alarm',
}),
'context': <ANY>,
'entity_id': 'switch.test_reolink_cam_tamper_alarm',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---
# name: test_all_entities[switch.test_reolink_name_email_on_event-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
@@ -2399,3 +2449,53 @@
'state': 'on',
})
# ---
# name: test_all_entities_dual_lens[switch.test_reolink_name_tamper_alarm-entry]
EntityRegistryEntrySnapshot({
'aliases': list([
None,
]),
'area_id': None,
'capabilities': None,
'config_entry_id': <ANY>,
'config_subentry_id': <ANY>,
'device_class': None,
'device_id': <ANY>,
'disabled_by': None,
'domain': 'switch',
'entity_category': <EntityCategory.CONFIG: 'config'>,
'entity_id': 'switch.test_reolink_name_tamper_alarm',
'has_entity_name': True,
'hidden_by': None,
'icon': None,
'id': <ANY>,
'labels': set({
}),
'name': None,
'object_id_base': 'Tamper alarm',
'options': dict({
}),
'original_device_class': None,
'original_icon': None,
'original_name': 'Tamper alarm',
'platform': 'reolink',
'previous_unique_id': None,
'suggested_object_id': None,
'supported_features': 0,
'translation_key': 'tamper_enabled',
'unique_id': 'ABC1234567D89EFG_0_tamper_enabled',
'unit_of_measurement': None,
})
# ---
# name: test_all_entities_dual_lens[switch.test_reolink_name_tamper_alarm-state]
StateSnapshot({
'attributes': ReadOnlyDict({
<EntityStateAttribute.FRIENDLY_NAME: 'friendly_name'>: 'test_reolink_name Tamper alarm',
}),
'context': <ANY>,
'entity_id': 'switch.test_reolink_name_tamper_alarm',
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': 'off',
})
# ---