From 2349e3ac1d1147781b9bd2fa1b529f0ea4f2a385 Mon Sep 17 00:00:00 2001 From: Christian Fetzer Date: Tue, 7 Nov 2023 12:15:25 +0100 Subject: [PATCH] Add select for partial position (garage door) in Overkiz (#99500) --- homeassistant/components/overkiz/select.py | 25 +++++++++++++++++++ homeassistant/components/overkiz/strings.json | 7 ++++++ 2 files changed, 32 insertions(+) diff --git a/homeassistant/components/overkiz/select.py b/homeassistant/components/overkiz/select.py index 155fc3a538f..5f72ca23a80 100644 --- a/homeassistant/components/overkiz/select.py +++ b/homeassistant/components/overkiz/select.py @@ -42,6 +42,19 @@ def _select_option_open_closed_pedestrian( ) +def _select_option_open_closed_partial( + option: str, execute_command: Callable[..., Awaitable[None]] +) -> Awaitable[None]: + """Change the selected option for Open/Closed/Partial.""" + return execute_command( + { + OverkizCommandParam.CLOSED: OverkizCommand.CLOSE, + OverkizCommandParam.OPEN: OverkizCommand.OPEN, + OverkizCommandParam.PARTIAL: OverkizCommand.PARTIAL_POSITION, + }[OverkizCommandParam(option)] + ) + + def _select_option_memorized_simple_volume( option: str, execute_command: Callable[..., Awaitable[None]] ) -> Awaitable[None]: @@ -73,6 +86,18 @@ SELECT_DESCRIPTIONS: list[OverkizSelectDescription] = [ select_option=_select_option_open_closed_pedestrian, translation_key="open_closed_pedestrian", ), + OverkizSelectDescription( + key=OverkizState.CORE_OPEN_CLOSED_PARTIAL, + name="Position", + icon="mdi:content-save-cog", + options=[ + OverkizCommandParam.OPEN, + OverkizCommandParam.PARTIAL, + OverkizCommandParam.CLOSED, + ], + select_option=_select_option_open_closed_partial, + translation_key="open_closed_partial", + ), OverkizSelectDescription( key=OverkizState.IO_MEMORIZED_SIMPLE_VOLUME, name="Memorized simple volume", diff --git a/homeassistant/components/overkiz/strings.json b/homeassistant/components/overkiz/strings.json index bcf1e121f6f..82d29a7534a 100644 --- a/homeassistant/components/overkiz/strings.json +++ b/homeassistant/components/overkiz/strings.json @@ -64,6 +64,13 @@ "closed": "[%key:common::state::closed%]" } }, + "open_closed_partial": { + "state": { + "open": "[%key:common::state::open%]", + "partial": "Partial", + "closed": "[%key:common::state::closed%]" + } + }, "memorized_simple_volume": { "state": { "highest": "Highest",