Fix fritzbox climate HVAC mode / temperature (#25275)
* Set the target temperature * Update tests * Update tests * Fix linter complaintspull/25313/head
parent
8b020ea5e6
commit
c4d1cd0e03
|
@ -93,9 +93,10 @@ class FritzboxThermostat(ClimateDevice):
|
|||
@property
|
||||
def target_temperature(self):
|
||||
"""Return the temperature we try to reach."""
|
||||
if self._target_temperature in (ON_API_TEMPERATURE,
|
||||
OFF_API_TEMPERATURE):
|
||||
return None
|
||||
if self._target_temperature == ON_API_TEMPERATURE:
|
||||
return ON_REPORT_SET_TEMPERATURE
|
||||
if self._target_temperature == OFF_API_TEMPERATURE:
|
||||
return OFF_REPORT_SET_TEMPERATURE
|
||||
return self._target_temperature
|
||||
|
||||
def set_temperature(self, **kwargs):
|
||||
|
@ -110,7 +111,10 @@ class FritzboxThermostat(ClimateDevice):
|
|||
@property
|
||||
def hvac_mode(self):
|
||||
"""Return the current operation mode."""
|
||||
if self._target_temperature == OFF_REPORT_SET_TEMPERATURE:
|
||||
if (
|
||||
self._target_temperature == OFF_REPORT_SET_TEMPERATURE or
|
||||
self._target_temperature == OFF_API_TEMPERATURE
|
||||
):
|
||||
return HVAC_MODE_OFF
|
||||
|
||||
return HVAC_MODE_HEAT
|
||||
|
|
|
@ -66,10 +66,10 @@ class TestFritzboxClimate(unittest.TestCase):
|
|||
assert 19.5 == self.thermostat.target_temperature
|
||||
|
||||
self.thermostat._target_temperature = 126.5
|
||||
assert self.thermostat.target_temperature is None
|
||||
assert self.thermostat.target_temperature == 0.0
|
||||
|
||||
self.thermostat._target_temperature = 127.0
|
||||
assert self.thermostat.target_temperature is None
|
||||
assert self.thermostat.target_temperature == 30.0
|
||||
|
||||
@patch.object(FritzboxThermostat, 'set_hvac_mode')
|
||||
def test_set_temperature_operation_mode(self, mock_set_op):
|
||||
|
@ -103,7 +103,7 @@ class TestFritzboxClimate(unittest.TestCase):
|
|||
self.thermostat._target_temperature = 127.0
|
||||
assert 'heat' == self.thermostat.hvac_mode
|
||||
self.thermostat._target_temperature = 126.5
|
||||
assert 'heat' == self.thermostat.hvac_mode
|
||||
assert 'off' == self.thermostat.hvac_mode
|
||||
self.thermostat._target_temperature = 22.0
|
||||
assert 'heat' == self.thermostat.hvac_mode
|
||||
self.thermostat._target_temperature = 16.0
|
||||
|
|
Loading…
Reference in New Issue