diff --git a/homeassistant/components/thermostat/nest.py b/homeassistant/components/thermostat/nest.py index 9a52f58c1d9..2426e638c43 100644 --- a/homeassistant/components/thermostat/nest.py +++ b/homeassistant/components/thermostat/nest.py @@ -80,10 +80,9 @@ class NestThermostat(ThermostatDevice): @property def target_temperature(self): """Return the temperature we try to reach.""" - target = self.device.target - if self.device.mode == 'range': - low, high = target + low, high = self.target_temperature_low, \ + self.target_temperature_high if self.operation == STATE_COOL: temp = high elif self.operation == STATE_HEAT: @@ -95,13 +94,22 @@ class NestThermostat(ThermostatDevice): elif self.current_temperature >= range_average: temp = high else: - temp = target + if self.is_away_mode_on: + # away_temperature is a low, high tuple. Only one should be set + # if not in range mode, the other will be None + temp = self.device.away_temperature[0] or \ + self.device.away_temperature[1] + else: + temp = self.device.target return temp @property def target_temperature_low(self): """Return the lower bound temperature we try to reach.""" + if self.is_away_mode_on and self.device.away_temperature[0]: + # away_temperature is always a low, high tuple + return self.device.away_temperature[0] if self.device.mode == 'range': return self.device.target[0] return self.target_temperature @@ -109,6 +117,9 @@ class NestThermostat(ThermostatDevice): @property def target_temperature_high(self): """Return the upper bound temperature we try to reach.""" + if self.is_away_mode_on and self.device.away_temperature[1]: + # away_temperature is always a low, high tuple + return self.device.away_temperature[1] if self.device.mode == 'range': return self.device.target[1] return self.target_temperature