ecobee Preset Fix (#25256)
* ecobee Preset Fix * Celsius Fix * Checks Fix * Check Fix #2 * Check Fix #3pull/25280/head
parent
37810e010a
commit
2016cf872e
|
@ -31,6 +31,8 @@ PRESET_AUX_HEAT_ONLY = 'aux_heat_only'
|
||||||
PRESET_HOLD_NEXT_TRANSITION = 'next_transition'
|
PRESET_HOLD_NEXT_TRANSITION = 'next_transition'
|
||||||
PRESET_HOLD_INDEFINITE = 'indefinite'
|
PRESET_HOLD_INDEFINITE = 'indefinite'
|
||||||
AWAY_MODE = 'awayMode'
|
AWAY_MODE = 'awayMode'
|
||||||
|
PRESET_HOME = 'home'
|
||||||
|
PRESET_SLEEP = 'sleep'
|
||||||
|
|
||||||
# Order matters, because for reverse mapping we don't want to map HEAT to AUX
|
# Order matters, because for reverse mapping we don't want to map HEAT to AUX
|
||||||
ECOBEE_HVAC_TO_HASS = collections.OrderedDict([
|
ECOBEE_HVAC_TO_HASS = collections.OrderedDict([
|
||||||
|
@ -48,9 +50,8 @@ PRESET_TO_ECOBEE_HOLD = {
|
||||||
|
|
||||||
PRESET_MODES = [
|
PRESET_MODES = [
|
||||||
PRESET_AWAY,
|
PRESET_AWAY,
|
||||||
PRESET_TEMPERATURE,
|
PRESET_HOME,
|
||||||
PRESET_HOLD_NEXT_TRANSITION,
|
PRESET_SLEEP
|
||||||
PRESET_HOLD_INDEFINITE
|
|
||||||
]
|
]
|
||||||
|
|
||||||
SERVICE_SET_FAN_MIN_ON_TIME = 'ecobee_set_fan_min_on_time'
|
SERVICE_SET_FAN_MIN_ON_TIME = 'ecobee_set_fan_min_on_time'
|
||||||
|
@ -305,9 +306,9 @@ class Thermostat(ClimateDevice):
|
||||||
"""Return true if aux heater."""
|
"""Return true if aux heater."""
|
||||||
return 'auxHeat' in self.thermostat['equipmentStatus']
|
return 'auxHeat' in self.thermostat['equipmentStatus']
|
||||||
|
|
||||||
def set_preset(self, preset):
|
def set_preset_mode(self, preset_mode):
|
||||||
"""Activate a preset."""
|
"""Activate a preset."""
|
||||||
if preset == self.preset_mode:
|
if preset_mode == self.preset_mode:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.update_without_throttle = True
|
self.update_without_throttle = True
|
||||||
|
@ -317,23 +318,26 @@ class Thermostat(ClimateDevice):
|
||||||
self.data.ecobee.delete_vacation(
|
self.data.ecobee.delete_vacation(
|
||||||
self.thermostat_index, self.vacation)
|
self.thermostat_index, self.vacation)
|
||||||
|
|
||||||
if preset == PRESET_AWAY:
|
if preset_mode == PRESET_AWAY:
|
||||||
self.data.ecobee.set_climate_hold(self.thermostat_index, 'away',
|
self.data.ecobee.set_climate_hold(self.thermostat_index, 'away',
|
||||||
'indefinite')
|
'indefinite')
|
||||||
|
|
||||||
elif preset == PRESET_TEMPERATURE:
|
elif preset_mode == PRESET_TEMPERATURE:
|
||||||
self.set_temp_hold(self.current_temperature)
|
self.set_temp_hold(self.current_temperature)
|
||||||
|
|
||||||
elif preset in (PRESET_HOLD_NEXT_TRANSITION, PRESET_HOLD_INDEFINITE):
|
elif preset_mode in (
|
||||||
|
PRESET_HOLD_NEXT_TRANSITION, PRESET_HOLD_INDEFINITE):
|
||||||
self.data.ecobee.set_climate_hold(
|
self.data.ecobee.set_climate_hold(
|
||||||
self.thermostat_index, PRESET_TO_ECOBEE_HOLD[preset],
|
self.thermostat_index, PRESET_TO_ECOBEE_HOLD[preset_mode],
|
||||||
self.hold_preference())
|
self.hold_preference())
|
||||||
|
|
||||||
elif preset is None:
|
elif preset_mode is None:
|
||||||
self.data.ecobee.resume_program(self.thermostat_index)
|
self.data.ecobee.resume_program(self.thermostat_index)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning("Received invalid preset: %s", preset)
|
self.data.ecobee.set_climate_hold(
|
||||||
|
self.thermostat_index, preset_mode, self.hold_preference())
|
||||||
|
self.update_without_throttle = True
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def preset_modes(self):
|
def preset_modes(self):
|
||||||
|
|
Loading…
Reference in New Issue