From 4522a5698c9f065ca2c224a7617348344fbad63b Mon Sep 17 00:00:00 2001 From: Bart Janssens Date: Mon, 14 Feb 2022 15:42:40 +0100 Subject: [PATCH] Fix vicare program presets (#66476) --- homeassistant/components/vicare/climate.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/vicare/climate.py b/homeassistant/components/vicare/climate.py index c0c0db85cf3..64df7260c5b 100644 --- a/homeassistant/components/vicare/climate.py +++ b/homeassistant/components/vicare/climate.py @@ -19,6 +19,7 @@ from homeassistant.components.climate.const import ( HVAC_MODE_OFF, PRESET_COMFORT, PRESET_ECO, + PRESET_NONE, SUPPORT_PRESET_MODE, SUPPORT_TARGET_TEMPERATURE, ) @@ -87,11 +88,13 @@ HA_TO_VICARE_HVAC_HEATING = { VICARE_TO_HA_PRESET_HEATING = { VICARE_PROGRAM_COMFORT: PRESET_COMFORT, VICARE_PROGRAM_ECO: PRESET_ECO, + VICARE_PROGRAM_NORMAL: PRESET_NONE, } HA_TO_VICARE_PRESET_HEATING = { PRESET_COMFORT: VICARE_PROGRAM_COMFORT, PRESET_ECO: VICARE_PROGRAM_ECO, + PRESET_NONE: VICARE_PROGRAM_NORMAL, } @@ -322,7 +325,7 @@ class ViCareClimate(ClimateEntity): @property def preset_modes(self): """Return the available preset mode.""" - return list(VICARE_TO_HA_PRESET_HEATING) + return list(HA_TO_VICARE_PRESET_HEATING) def set_preset_mode(self, preset_mode): """Set new preset mode and deactivate any existing programs.""" @@ -333,8 +336,12 @@ class ViCareClimate(ClimateEntity): ) _LOGGER.debug("Setting preset to %s / %s", preset_mode, vicare_program) - self._circuit.deactivateProgram(self._current_program) - self._circuit.activateProgram(vicare_program) + if self._current_program != VICARE_PROGRAM_NORMAL: + # We can't deactivate "normal" + self._circuit.deactivateProgram(self._current_program) + if vicare_program != VICARE_PROGRAM_NORMAL: + # And we can't explicitly activate normal, either + self._circuit.activateProgram(vicare_program) @property def extra_state_attributes(self):