Fix preset service call (#25358)
This commit is contained in:
parent
83581be4d5
commit
b0b2b0d654
1 changed files with 13 additions and 10 deletions
|
@ -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]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue