From 3713c03c078bc6c20f9f2cc03b5d093e373c7bbc Mon Sep 17 00:00:00 2001 From: laiho-vogels <144690720+laiho-vogels@users.noreply.github.com> Date: Fri, 12 Sep 2025 18:33:26 +0200 Subject: [PATCH] Drop index from preset name in MotionMount (#151301) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Abílio Costa --- homeassistant/components/motionmount/select.py | 14 +++++++++++--- homeassistant/components/motionmount/strings.json | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/motionmount/select.py b/homeassistant/components/motionmount/select.py index 861faa319cd..d02b286c296 100644 --- a/homeassistant/components/motionmount/select.py +++ b/homeassistant/components/motionmount/select.py @@ -36,6 +36,7 @@ class MotionMountPresets(MotionMountEntity, SelectEntity): _attr_should_poll = True _attr_translation_key = "motionmount_preset" + _name_to_index: dict[str, int] def __init__( self, @@ -50,8 +51,12 @@ class MotionMountPresets(MotionMountEntity, SelectEntity): def _update_options(self, presets: list[motionmount.Preset]) -> None: """Convert presets to select options.""" - options = [f"{preset.index}: {preset.name}" for preset in presets] - options.insert(0, WALL_PRESET_NAME) + # Ordered list of options (wall first, then presets) + options = [WALL_PRESET_NAME] + [preset.name for preset in presets] + + # Build mapping name → index (wall = 0) + self._name_to_index = {WALL_PRESET_NAME: 0} + self._name_to_index.update({preset.name: preset.index for preset in presets}) self._attr_options = options @@ -123,7 +128,10 @@ class MotionMountPresets(MotionMountEntity, SelectEntity): async def async_select_option(self, option: str) -> None: """Set the new option.""" - index = int(option[:1]) + index = self._name_to_index.get(option) + if index is None: + raise HomeAssistantError(f"Unknown preset selected: {option}") + try: await self.mm.go_to_preset(index) except (TimeoutError, socket.gaierror) as ex: diff --git a/homeassistant/components/motionmount/strings.json b/homeassistant/components/motionmount/strings.json index 2c951a7aefe..8d079dd777d 100644 --- a/homeassistant/components/motionmount/strings.json +++ b/homeassistant/components/motionmount/strings.json @@ -83,7 +83,7 @@ "motionmount_preset": { "name": "Preset", "state": { - "0_wall": "0: Wall" + "0_wall": "Wall" } } }