mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +00:00
make sure is_away_mode_on supports user-defined minimum away temps
This commit is contained in:
parent
ef5edb95ba
commit
766893253a
@ -151,9 +151,21 @@ class NuHeatThermostat(ClimateDevice):
|
||||
Return true if away mode is on.
|
||||
|
||||
Away mode is determined by setting and HOLDing the target temperature
|
||||
to the minimum temperature supported.
|
||||
to the user-defined minimum away temperature or the minimum
|
||||
temperature supported by the thermostat.
|
||||
"""
|
||||
if self._thermostat.target_celsius > self._thermostat.min_celsius:
|
||||
if self._min_away_temp:
|
||||
if self._temperature_unit == "C":
|
||||
min_target = self._min_away_temp
|
||||
target = self._thermostat.target_celsius
|
||||
else:
|
||||
min_target = self._min_away_temp
|
||||
target = self._thermostat.target_fahrenheit
|
||||
|
||||
if target > min_target:
|
||||
return False
|
||||
|
||||
elif self._thermostat.target_celsius > self._thermostat.min_celsius:
|
||||
return False
|
||||
|
||||
if self._thermostat.schedule_mode != SCHEDULE_HOLD:
|
||||
|
@ -137,13 +137,29 @@ class TestNuHeat(unittest.TestCase):
|
||||
def test_is_away_mode_on(self):
|
||||
"""Test is away mode on."""
|
||||
_thermostat = self.thermostat._thermostat
|
||||
_thermostat.target_celsius = _thermostat.min_celsius
|
||||
_thermostat.schedule_mode = SCHEDULE_HOLD
|
||||
|
||||
# user-defined minimum fahrenheit
|
||||
self.thermostat._min_away_temp = 59
|
||||
_thermostat.target_fahrenheit = 59
|
||||
self.assertTrue(self.thermostat.is_away_mode_on)
|
||||
|
||||
# user-defined minimum celsius
|
||||
self.thermostat._temperature_unit = "C"
|
||||
self.thermostat._min_away_temp = 15
|
||||
_thermostat.target_celsius = 15
|
||||
self.assertTrue(self.thermostat.is_away_mode_on)
|
||||
|
||||
# thermostat's minimum supported temperature
|
||||
self.thermostat._min_away_temp = None
|
||||
_thermostat.target_celsius = _thermostat.min_celsius
|
||||
self.assertTrue(self.thermostat.is_away_mode_on)
|
||||
|
||||
# thermostat held at a temperature above the minimum
|
||||
_thermostat.target_celsius = _thermostat.min_celsius + 1
|
||||
self.assertFalse(self.thermostat.is_away_mode_on)
|
||||
|
||||
# thermostat not on HOLD
|
||||
_thermostat.target_celsius = _thermostat.min_celsius
|
||||
_thermostat.schedule_mode = SCHEDULE_RUN
|
||||
self.assertFalse(self.thermostat.is_away_mode_on)
|
||||
|
Loading…
x
Reference in New Issue
Block a user