Fix preset service call (#25358)

This commit is contained in:
cgtobi 2019-07-21 02:58:06 +02:00 committed by Paulus Schoutsen
parent 83581be4d5
commit b0b2b0d654

View file

@ -27,6 +27,7 @@ _LOGGER = logging.getLogger(__name__)
PRESET_FROST_GUARD = 'Frost Guard' PRESET_FROST_GUARD = 'Frost Guard'
PRESET_SCHEDULE = 'Schedule' PRESET_SCHEDULE = 'Schedule'
PRESET_MANUAL = 'Manual'
SUPPORT_FLAGS = (SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE) SUPPORT_FLAGS = (SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE)
SUPPORT_HVAC = [HVAC_MODE_HEAT, HVAC_MODE_AUTO, HVAC_MODE_OFF] 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, PRESET_AWAY, PRESET_BOOST, PRESET_FROST_GUARD, PRESET_SCHEDULE,
] ]
STATE_NETATMO_SCHEDULE = PRESET_SCHEDULE STATE_NETATMO_SCHEDULE = 'schedule'
STATE_NETATMO_HG = 'hg' STATE_NETATMO_HG = 'hg'
STATE_NETATMO_MAX = 'max' STATE_NETATMO_MAX = 'max'
STATE_NETATMO_AWAY = PRESET_AWAY STATE_NETATMO_AWAY = PRESET_AWAY
@ -44,7 +45,6 @@ STATE_NETATMO_MANUAL = 'manual'
PRESET_MAP_NETATMO = { PRESET_MAP_NETATMO = {
PRESET_FROST_GUARD: STATE_NETATMO_HG, PRESET_FROST_GUARD: STATE_NETATMO_HG,
PRESET_BOOST: STATE_NETATMO_MAX, PRESET_BOOST: STATE_NETATMO_MAX,
STATE_NETATMO_MAX: STATE_NETATMO_MAX,
PRESET_SCHEDULE: STATE_NETATMO_SCHEDULE, PRESET_SCHEDULE: STATE_NETATMO_SCHEDULE,
PRESET_AWAY: STATE_NETATMO_AWAY, PRESET_AWAY: STATE_NETATMO_AWAY,
STATE_NETATMO_OFF: STATE_NETATMO_OFF STATE_NETATMO_OFF: STATE_NETATMO_OFF
@ -56,16 +56,17 @@ NETATMO_MAP_PRESET = {
STATE_NETATMO_SCHEDULE: PRESET_SCHEDULE, STATE_NETATMO_SCHEDULE: PRESET_SCHEDULE,
STATE_NETATMO_AWAY: PRESET_AWAY, STATE_NETATMO_AWAY: PRESET_AWAY,
STATE_NETATMO_OFF: STATE_NETATMO_OFF, STATE_NETATMO_OFF: STATE_NETATMO_OFF,
STATE_NETATMO_MANUAL: 'Manual', STATE_NETATMO_MANUAL: STATE_NETATMO_MANUAL,
} }
HVAC_MAP_NETATMO = { HVAC_MAP_NETATMO = {
STATE_NETATMO_SCHEDULE: HVAC_MODE_AUTO, PRESET_SCHEDULE: HVAC_MODE_AUTO,
STATE_NETATMO_HG: HVAC_MODE_AUTO, STATE_NETATMO_HG: HVAC_MODE_AUTO,
PRESET_FROST_GUARD: 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_OFF: HVAC_MODE_OFF,
STATE_NETATMO_MANUAL: HVAC_MODE_AUTO, STATE_NETATMO_MANUAL: HVAC_MODE_AUTO,
PRESET_MANUAL: HVAC_MODE_AUTO,
STATE_NETATMO_AWAY: HVAC_MODE_AUTO STATE_NETATMO_AWAY: HVAC_MODE_AUTO
} }
@ -221,9 +222,9 @@ class NetatmoThermostat(ClimateDevice):
if hvac_mode == HVAC_MODE_OFF: if hvac_mode == HVAC_MODE_OFF:
mode = STATE_NETATMO_OFF mode = STATE_NETATMO_OFF
elif hvac_mode == HVAC_MODE_AUTO: elif hvac_mode == HVAC_MODE_AUTO:
mode = STATE_NETATMO_SCHEDULE mode = PRESET_SCHEDULE
elif hvac_mode == HVAC_MODE_HEAT: elif hvac_mode == HVAC_MODE_HEAT:
mode = STATE_NETATMO_MAX mode = PRESET_BOOST
self.set_preset_mode(mode) self.set_preset_mode(mode)
@ -262,6 +263,8 @@ class NetatmoThermostat(ClimateDevice):
self._data.homestatus.setThermmode( self._data.homestatus.setThermmode(
self._data.home_id, PRESET_MAP_NETATMO[preset_mode] 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.update_without_throttle = True
self.schedule_update_ha_state() self.schedule_update_ha_state()
@ -323,10 +326,10 @@ class NetatmoThermostat(ClimateDevice):
self._hvac_mode = HVAC_MAP_NETATMO[self._preset] self._hvac_mode = HVAC_MAP_NETATMO[self._preset]
self._battery_level = \ self._battery_level = \
self._data.room_status[self._room_id].get('battery_level') self._data.room_status[self._room_id].get('battery_level')
except KeyError: except KeyError as err:
_LOGGER.error( _LOGGER.error(
"The thermostat in room %s seems to be out of reach.", "The thermostat in room %s seems to be out of reach. (%s)",
self._room_id self._room_id, err
) )
self._away = self._hvac_mode == HVAC_MAP_NETATMO[STATE_NETATMO_AWAY] self._away = self._hvac_mode == HVAC_MAP_NETATMO[STATE_NETATMO_AWAY]