From 617e8544c02fe72a4296d0fda6eb64799e7c4290 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Sat, 4 Sep 2021 00:44:16 +0200 Subject: [PATCH] Use NamedTuple for touchline preset mode settings (#55695) --- homeassistant/components/touchline/climate.py | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/touchline/climate.py b/homeassistant/components/touchline/climate.py index 3193b6f847c..9cd80428080 100644 --- a/homeassistant/components/touchline/climate.py +++ b/homeassistant/components/touchline/climate.py @@ -1,4 +1,6 @@ """Platform for Roth Touchline floor heating controller.""" +from typing import NamedTuple + from pytouchline import PyTouchline import voluptuous as vol @@ -11,17 +13,25 @@ from homeassistant.components.climate.const import ( from homeassistant.const import ATTR_TEMPERATURE, CONF_HOST, TEMP_CELSIUS import homeassistant.helpers.config_validation as cv + +class PresetMode(NamedTuple): + """Settings for preset mode.""" + + mode: int + program: int + + PRESET_MODES = { - "Normal": {"mode": 0, "program": 0}, - "Night": {"mode": 1, "program": 0}, - "Holiday": {"mode": 2, "program": 0}, - "Pro 1": {"mode": 0, "program": 1}, - "Pro 2": {"mode": 0, "program": 2}, - "Pro 3": {"mode": 0, "program": 3}, + "Normal": PresetMode(mode=0, program=0), + "Night": PresetMode(mode=1, program=0), + "Holiday": PresetMode(mode=2, program=0), + "Pro 1": PresetMode(mode=0, program=1), + "Pro 2": PresetMode(mode=0, program=2), + "Pro 3": PresetMode(mode=0, program=3), } TOUCHLINE_HA_PRESETS = { - (settings["mode"], settings["program"]): preset + (settings.mode, settings.program): preset for preset, settings in PRESET_MODES.items() } @@ -119,8 +129,9 @@ class Touchline(ClimateEntity): def set_preset_mode(self, preset_mode): """Set new target preset mode.""" - self.unit.set_operation_mode(PRESET_MODES[preset_mode]["mode"]) - self.unit.set_week_program(PRESET_MODES[preset_mode]["program"]) + preset_mode = PRESET_MODES[preset_mode] + self.unit.set_operation_mode(preset_mode.mode) + self.unit.set_week_program(preset_mode.program) def set_hvac_mode(self, hvac_mode): """Set new target hvac mode."""