See closed issue #128 (can't reopen). So what happens:
- I have set the comfort and eco temperature for my 302 thermostat to "off"
- if I now call
set_hkr_state("eco") then it will fetch 126.5 form self.eco_temperature, see
|
value = { |
|
"off": 0, |
|
"on": 100, |
|
"eco": self.eco_temperature, |
|
"comfort": self.comfort_temperature, |
|
}[state] |
- then next
set_target_temperature(value) is called:
|
self.set_target_temperature(value, wait) |
- this in turn calls fritzhome.set_target_temperature() with the value of 126.5 and now we have a problem:
|
def set_target_temperature(self, ain, temperature, wait=False): |
|
"""Set the thermostate target temperature.""" |
|
temp = int(temperature * 2) |
|
|
|
if temp < 16: |
|
temp = 253 |
|
elif temp > 56: |
|
temp = 254 |
Here we see that in fritzhome.set_target_temperate() large value are interpreted as "boost" without checking if the large value is one of the two special "large values" 126.5 (== off) or 127.0 (== bost, but this is ok).
So my proposal is to check for the special value 126.5 in set_target_temperature() and interprete it as off. Otherwise setting presets which have been "disabled" to "off" will result in boost mode.
See closed issue #128 (can't reopen). So what happens:
set_hkr_state("eco")then it will fetch 126.5 formself.eco_temperature, seepython-fritzhome/pyfritzhome/devicetypes/fritzhomedevicethermostat.py
Lines 173 to 178 in 6d2653a
set_target_temperature(value)is called:python-fritzhome/pyfritzhome/devicetypes/fritzhomedevicethermostat.py
Line 182 in 6d2653a
python-fritzhome/pyfritzhome/fritzhome.py
Lines 303 to 310 in 6d2653a
Here we see that in
fritzhome.set_target_temperate()large value are interpreted as "boost" without checking if the large value is one of the two special "large values" 126.5 (== off) or 127.0 (== bost, but this is ok).So my proposal is to check for the special value 126.5 in set_target_temperature() and interprete it as off. Otherwise setting presets which have been "disabled" to "off" will result in boost mode.