From 95ddade83caf1a0d8cb35025518bc89e729a4391 Mon Sep 17 00:00:00 2001 From: Matthias Lohr Date: Mon, 25 Mar 2024 12:47:56 +0100 Subject: [PATCH] Use enums to define choices in tolo (#113992) * use enums defined in HA to define choices * move enums to .const --- homeassistant/components/tolo/const.py | 17 +++++++++++++++++ homeassistant/components/tolo/select.py | 10 ++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/tolo/const.py b/homeassistant/components/tolo/const.py index 16fcbd04bb7..e4f30eda6d3 100644 --- a/homeassistant/components/tolo/const.py +++ b/homeassistant/components/tolo/const.py @@ -1,7 +1,24 @@ """Constants for the tolo integration.""" +from enum import Enum + +from tololib import AromaTherapySlot as ToloAromaTherapySlot, LampMode as ToloLampMode DOMAIN = "tolo" DEFAULT_NAME = "TOLO Sauna" DEFAULT_RETRY_TIMEOUT = 1 DEFAULT_RETRY_COUNT = 3 + + +class AromaTherapySlot(Enum): + """Mapping to TOLO Aroma Therapy Slot.""" + + A = ToloAromaTherapySlot.A + B = ToloAromaTherapySlot.B + + +class LampMode(Enum): + """Mapping to TOLO Lamp Mode.""" + + MANUAL = ToloLampMode.MANUAL + AUTOMATIC = ToloLampMode.AUTOMATIC diff --git a/homeassistant/components/tolo/select.py b/homeassistant/components/tolo/select.py index f88152d6fa8..96335cecc68 100644 --- a/homeassistant/components/tolo/select.py +++ b/homeassistant/components/tolo/select.py @@ -5,7 +5,7 @@ from __future__ import annotations from collections.abc import Callable from dataclasses import dataclass -from tololib import AromaTherapySlot, LampMode, ToloClient, ToloSettings +from tololib import ToloClient, ToloSettings from homeassistant.components.select import SelectEntity, SelectEntityDescription from homeassistant.config_entries import ConfigEntry @@ -14,7 +14,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import ToloSaunaCoordinatorEntity, ToloSaunaUpdateCoordinator -from .const import DOMAIN +from .const import DOMAIN, AromaTherapySlot, LampMode @dataclass(frozen=True, kw_only=True) @@ -32,7 +32,9 @@ SELECTS = ( translation_key="lamp_mode", options=[lamp_mode.name.lower() for lamp_mode in LampMode], getter=lambda settings: settings.lamp_mode.name.lower(), - setter=lambda client, option: client.set_lamp_mode(LampMode[option.upper()]), + setter=lambda client, option: client.set_lamp_mode( + LampMode[option.upper()].value + ), ), ToloSelectEntityDescription( key="aroma_therapy_slot", @@ -42,7 +44,7 @@ SELECTS = ( ], getter=lambda settings: settings.aroma_therapy_slot.name.lower(), setter=lambda client, option: client.set_aroma_therapy_slot( - AromaTherapySlot[option.upper()] + AromaTherapySlot[option.upper()].value ), ), )