From 4e46431798f845822a12f5d337986fa871ca4b4d Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Wed, 11 Feb 2026 17:29:24 +0100 Subject: [PATCH] Add additional Reolink PTZ buttons (#162793) --- homeassistant/components/reolink/button.py | 40 +++++++++++++++++++ homeassistant/components/reolink/icons.json | 15 +++++++ homeassistant/components/reolink/strings.json | 15 +++++++ 3 files changed, 70 insertions(+) diff --git a/homeassistant/components/reolink/button.py b/homeassistant/components/reolink/button.py index 37bff9c0799..a901b8311aa 100644 --- a/homeassistant/components/reolink/button.py +++ b/homeassistant/components/reolink/button.py @@ -105,6 +105,46 @@ BUTTON_ENTITIES = ( method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.zoomout.value), ptz_cmd=PtzEnum.zoomout.value, ), + ReolinkButtonEntityDescription( + key="ptz_left_up", + translation_key="ptz_left_up", + entity_registry_enabled_default=False, + supported=lambda api, ch: api.supported(ch, "ptz_diagonal"), + method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.leftup.value), + ptz_cmd=PtzEnum.leftup.value, + ), + ReolinkButtonEntityDescription( + key="ptz_left_down", + translation_key="ptz_left_down", + entity_registry_enabled_default=False, + supported=lambda api, ch: api.supported(ch, "ptz_diagonal"), + method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.leftdown.value), + ptz_cmd=PtzEnum.leftdown.value, + ), + ReolinkButtonEntityDescription( + key="ptz_right_up", + translation_key="ptz_right_up", + entity_registry_enabled_default=False, + supported=lambda api, ch: api.supported(ch, "ptz_diagonal"), + method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.rightup.value), + ptz_cmd=PtzEnum.rightup.value, + ), + ReolinkButtonEntityDescription( + key="ptz_right_down", + translation_key="ptz_right_down", + entity_registry_enabled_default=False, + supported=lambda api, ch: api.supported(ch, "ptz_diagonal"), + method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.rightdown.value), + ptz_cmd=PtzEnum.rightdown.value, + ), + ReolinkButtonEntityDescription( + key="ptz_auto", + translation_key="ptz_auto", + entity_registry_enabled_default=False, + supported=lambda api, ch: api.supported(ch, "ptz_auto"), + method=lambda api, ch: api.set_ptz_command(ch, command=PtzEnum.auto.value), + ptz_cmd=PtzEnum.auto.value, + ), ReolinkButtonEntityDescription( key="ptz_calibrate", translation_key="ptz_calibrate", diff --git a/homeassistant/components/reolink/icons.json b/homeassistant/components/reolink/icons.json index 52bb9e7add9..a5716aa76d2 100644 --- a/homeassistant/components/reolink/icons.json +++ b/homeassistant/components/reolink/icons.json @@ -141,6 +141,9 @@ "guard_set": { "default": "mdi:crosshairs-gps" }, + "ptz_auto": { + "default": "mdi:infinity" + }, "ptz_calibrate": { "default": "mdi:pan" }, @@ -150,9 +153,21 @@ "ptz_left": { "default": "mdi:pan" }, + "ptz_left_down": { + "default": "mdi:pan" + }, + "ptz_left_up": { + "default": "mdi:pan" + }, "ptz_right": { "default": "mdi:pan" }, + "ptz_right_down": { + "default": "mdi:pan" + }, + "ptz_right_up": { + "default": "mdi:pan" + }, "ptz_stop": { "default": "mdi:pan" }, diff --git a/homeassistant/components/reolink/strings.json b/homeassistant/components/reolink/strings.json index 6b705335e45..6a707d6ff72 100644 --- a/homeassistant/components/reolink/strings.json +++ b/homeassistant/components/reolink/strings.json @@ -307,6 +307,9 @@ "guard_set": { "name": "Guard set current position" }, + "ptz_auto": { + "name": "PTZ continuous rotation" + }, "ptz_calibrate": { "name": "PTZ calibrate" }, @@ -316,9 +319,21 @@ "ptz_left": { "name": "PTZ left" }, + "ptz_left_down": { + "name": "PTZ left down" + }, + "ptz_left_up": { + "name": "PTZ left up" + }, "ptz_right": { "name": "PTZ right" }, + "ptz_right_down": { + "name": "PTZ right down" + }, + "ptz_right_up": { + "name": "PTZ right up" + }, "ptz_stop": { "name": "PTZ stop" },