From b0b2b0d654e2b73e10c5b3ff5dbcceba826d59e9 Mon Sep 17 00:00:00 2001 From: cgtobi Date: Sun, 21 Jul 2019 02:58:06 +0200 Subject: [PATCH] Fix preset service call (#25358) --- homeassistant/components/netatmo/climate.py | 23 ++++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/netatmo/climate.py b/homeassistant/components/netatmo/climate.py index 9b26e240da6..2cb5637c5e3 100644 --- a/homeassistant/components/netatmo/climate.py +++ b/homeassistant/components/netatmo/climate.py @@ -27,6 +27,7 @@ _LOGGER = logging.getLogger(__name__) PRESET_FROST_GUARD = 'Frost Guard' PRESET_SCHEDULE = 'Schedule' +PRESET_MANUAL = 'Manual' SUPPORT_FLAGS = (SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE) SUPPORT_HVAC = [HVAC_MODE_HEAT, HVAC_MODE_AUTO, HVAC_MODE_OFF] @@ -34,7 +35,7 @@ SUPPORT_PRESET = [ PRESET_AWAY, PRESET_BOOST, PRESET_FROST_GUARD, PRESET_SCHEDULE, ] -STATE_NETATMO_SCHEDULE = PRESET_SCHEDULE +STATE_NETATMO_SCHEDULE = 'schedule' STATE_NETATMO_HG = 'hg' STATE_NETATMO_MAX = 'max' STATE_NETATMO_AWAY = PRESET_AWAY @@ -44,7 +45,6 @@ STATE_NETATMO_MANUAL = 'manual' PRESET_MAP_NETATMO = { PRESET_FROST_GUARD: STATE_NETATMO_HG, PRESET_BOOST: STATE_NETATMO_MAX, - STATE_NETATMO_MAX: STATE_NETATMO_MAX, PRESET_SCHEDULE: STATE_NETATMO_SCHEDULE, PRESET_AWAY: STATE_NETATMO_AWAY, STATE_NETATMO_OFF: STATE_NETATMO_OFF @@ -56,16 +56,17 @@ NETATMO_MAP_PRESET = { STATE_NETATMO_SCHEDULE: PRESET_SCHEDULE, STATE_NETATMO_AWAY: PRESET_AWAY, STATE_NETATMO_OFF: STATE_NETATMO_OFF, - STATE_NETATMO_MANUAL: 'Manual', + STATE_NETATMO_MANUAL: STATE_NETATMO_MANUAL, } HVAC_MAP_NETATMO = { - STATE_NETATMO_SCHEDULE: HVAC_MODE_AUTO, + PRESET_SCHEDULE: HVAC_MODE_AUTO, STATE_NETATMO_HG: HVAC_MODE_AUTO, PRESET_FROST_GUARD: HVAC_MODE_AUTO, - STATE_NETATMO_MAX: HVAC_MODE_HEAT, + PRESET_BOOST: HVAC_MODE_HEAT, STATE_NETATMO_OFF: HVAC_MODE_OFF, STATE_NETATMO_MANUAL: HVAC_MODE_AUTO, + PRESET_MANUAL: HVAC_MODE_AUTO, STATE_NETATMO_AWAY: HVAC_MODE_AUTO } @@ -221,9 +222,9 @@ class NetatmoThermostat(ClimateDevice): if hvac_mode == HVAC_MODE_OFF: mode = STATE_NETATMO_OFF elif hvac_mode == HVAC_MODE_AUTO: - mode = STATE_NETATMO_SCHEDULE + mode = PRESET_SCHEDULE elif hvac_mode == HVAC_MODE_HEAT: - mode = STATE_NETATMO_MAX + mode = PRESET_BOOST self.set_preset_mode(mode) @@ -262,6 +263,8 @@ class NetatmoThermostat(ClimateDevice): self._data.homestatus.setThermmode( self._data.home_id, PRESET_MAP_NETATMO[preset_mode] ) + else: + _LOGGER.error("Preset mode '%s' not available", preset_mode) self.update_without_throttle = True self.schedule_update_ha_state() @@ -323,10 +326,10 @@ class NetatmoThermostat(ClimateDevice): self._hvac_mode = HVAC_MAP_NETATMO[self._preset] self._battery_level = \ self._data.room_status[self._room_id].get('battery_level') - except KeyError: + except KeyError as err: _LOGGER.error( - "The thermostat in room %s seems to be out of reach.", - self._room_id + "The thermostat in room %s seems to be out of reach. (%s)", + self._room_id, err ) self._away = self._hvac_mode == HVAC_MAP_NETATMO[STATE_NETATMO_AWAY]