From 58ebd84326caf07e8cbc55f80f8fbca566d29b4d Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Mon, 3 Nov 2025 23:17:52 +0100 Subject: [PATCH] Add Reolink exposure mode select entity (#155759) --- homeassistant/components/reolink/icons.json | 3 +++ homeassistant/components/reolink/select.py | 12 ++++++++++++ homeassistant/components/reolink/strings.json | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/homeassistant/components/reolink/icons.json b/homeassistant/components/reolink/icons.json index 1250263414e..b2105ebd7c3 100644 --- a/homeassistant/components/reolink/icons.json +++ b/homeassistant/components/reolink/icons.json @@ -366,6 +366,9 @@ "day_night_mode": { "default": "mdi:theme-light-dark" }, + "exposure": { + "default": "mdi:camera-iris" + }, "floodlight_event_mode": { "default": "mdi:spotlight-beam" }, diff --git a/homeassistant/components/reolink/select.py b/homeassistant/components/reolink/select.py index fc7f6e49eb5..c9990189932 100644 --- a/homeassistant/components/reolink/select.py +++ b/homeassistant/components/reolink/select.py @@ -13,6 +13,7 @@ from reolink_aio.api import ( ChimeToneEnum, DayNightEnum, EncodingEnum, + ExposureEnum, HDREnum, Host, HubToneEnum, @@ -208,6 +209,17 @@ SELECT_ENTITIES = ( value=lambda api, ch: HDREnum(api.HDR_state(ch)).name, method=lambda api, ch, name: api.set_HDR(ch, HDREnum[name].value), ), + ReolinkSelectEntityDescription( + key="exposure", + cmd_key="GetIsp", + translation_key="exposure", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + get_options=[method.name for method in ExposureEnum], + supported=lambda api, ch: api.supported(ch, "exposure"), + value=lambda api, ch: ExposureEnum(api.exposure(ch)).name, + method=lambda api, ch, name: api.set_exposure(ch, ExposureEnum[name].value), + ), ReolinkSelectEntityDescription( key="binning_mode", cmd_key="GetIsp", diff --git a/homeassistant/components/reolink/strings.json b/homeassistant/components/reolink/strings.json index 5b28eda014d..e747b362ebb 100644 --- a/homeassistant/components/reolink/strings.json +++ b/homeassistant/components/reolink/strings.json @@ -604,6 +604,15 @@ "stayoff": "Stay off" } }, + "exposure": { + "name": "Image exposure mode", + "state": { + "antismearing": "Anti-smearing", + "auto": "[%key:common::state::auto%]", + "lownoise": "Low noise", + "manual": "Manual" + } + }, "floodlight_event_mode": { "name": "Floodlight event mode", "state": {