Skip to content

Commit 6b9b796

Browse files
committed
catch ValueError when there is no tsoll
1 parent 91fc05c commit 6b9b796

File tree

3 files changed

+140
-1
lines changed

3 files changed

+140
-1
lines changed

pyfritzhome/devicetypes/fritzhomedevicethermostat.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,11 @@ def _update_hkr_from_node(self, node):
5454
except ValueError:
5555
pass
5656

57-
self.target_temperature = self.get_temp_from_node(hkr_element, "tsoll")
57+
try:
58+
self.target_temperature = self.get_temp_from_node(hkr_element, "tsoll")
59+
except ValueError:
60+
self.target_temperature = None
61+
5862
self.eco_temperature = self.get_temp_from_node(hkr_element, "absenk")
5963
self.comfort_temperature = self.get_temp_from_node(hkr_element, "komfort")
6064

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?xml version="1.0"?>
2+
<devicelist version="1" fwversion="7.57">
3+
<device identifier="09995 0523646" id="16" functionbitmask="320" fwversion="05.08" manufacturer="AVM" productname="FRITZ!DECT 301">
4+
<present>1</present>
5+
<txbusy>0</txbusy>
6+
<name>Wohnzimmer Couch</name>
7+
<battery>80</battery>
8+
<batterylow>0</batterylow>
9+
<temperature>
10+
<celsius>220</celsius>
11+
<offset>-10</offset>
12+
</temperature>
13+
<hkr>
14+
<tist>44</tist>
15+
<tsoll>43</tsoll>
16+
<absenk>35</absenk>
17+
<komfort>43</komfort>
18+
<lock>0</lock>
19+
<devicelock>0</devicelock>
20+
<errorcode>0</errorcode>
21+
<windowopenactiv>0</windowopenactiv>
22+
<windowopenactiveendtime>0</windowopenactiveendtime>
23+
<boostactive>0</boostactive>
24+
<boostactiveendtime>0</boostactiveendtime>
25+
<batterylow>0</batterylow>
26+
<battery>80</battery>
27+
<nextchange>
28+
<endperiod>0</endperiod>
29+
<tchange>43</tchange>
30+
</nextchange>
31+
<summeractive>0</summeractive>
32+
<holidayactive>0</holidayactive>
33+
<adaptiveHeatingActive>1</adaptiveHeatingActive>
34+
<adaptiveHeatingRunning>0</adaptiveHeatingRunning>
35+
</hkr>
36+
</device>
37+
<device identifier="09995 0517495" id="17" functionbitmask="320" fwversion="05.08" manufacturer="AVM" productname="FRITZ!DECT 301">
38+
<present>1</present>
39+
<txbusy>0</txbusy>
40+
<name>Wohnzimmer Tisch</name>
41+
<battery>80</battery>
42+
<batterylow>0</batterylow>
43+
<temperature>
44+
<celsius>220</celsius>
45+
<offset>-10</offset>
46+
</temperature>
47+
<hkr>
48+
<tist>44</tist>
49+
<tsoll>43</tsoll>
50+
<absenk>35</absenk>
51+
<komfort>43</komfort>
52+
<lock>0</lock>
53+
<devicelock>0</devicelock>
54+
<errorcode>0</errorcode>
55+
<windowopenactiv>0</windowopenactiv>
56+
<windowopenactiveendtime>0</windowopenactiveendtime>
57+
<boostactive>0</boostactive>
58+
<boostactiveendtime>0</boostactiveendtime>
59+
<batterylow>0</batterylow>
60+
<battery>80</battery>
61+
<nextchange>
62+
<endperiod>0</endperiod>
63+
<tchange>43</tchange>
64+
</nextchange>
65+
<summeractive>0</summeractive>
66+
<holidayactive>0</holidayactive>
67+
<adaptiveHeatingActive>1</adaptiveHeatingActive>
68+
<adaptiveHeatingRunning>0</adaptiveHeatingRunning>
69+
</hkr>
70+
</device>
71+
<group synchronized="1" identifier="grp303E4F-3F7D9BE07" id="900" functionbitmask="4160" fwversion="1.0" manufacturer="AVM" productname="">
72+
<present>1</present>
73+
<txbusy>0</txbusy>
74+
<name>Wohnzimmer</name>
75+
<hkr>
76+
<tist/>
77+
<tsoll/>
78+
<absenk>35</absenk>
79+
<komfort>43</komfort>
80+
<lock>0</lock>
81+
<devicelock>0</devicelock>
82+
<errorcode>0</errorcode>
83+
<windowopenactiv>0</windowopenactiv>
84+
<windowopenactiveendtime>0</windowopenactiveendtime>
85+
<boostactive>0</boostactive>
86+
<boostactiveendtime>0</boostactiveendtime>
87+
<nextchange>
88+
<endperiod>0</endperiod>
89+
<tchange>43</tchange>
90+
</nextchange>
91+
<summeractive>0</summeractive>
92+
<holidayactive>0</holidayactive>
93+
<adaptiveHeatingActive>1</adaptiveHeatingActive>
94+
<adaptiveHeatingRunning>0</adaptiveHeatingRunning>
95+
</hkr>
96+
<groupinfo>
97+
<masterdeviceid>0</masterdeviceid>
98+
<members>16,17</members>
99+
</groupinfo>
100+
</group>
101+
</devicelist>

tests/test_fritzhomedevicethermostat_group.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ def setup_method(self):
2020
def test_device_alert_on(self):
2121
self.mock.side_effect = [
2222
Helper.response("groups/device_list_thermostat"),
23+
Helper.response("groups/device_list_thermostat_without_tsoll"),
24+
Helper.response("groups/device_list_thermostat"),
2325
]
2426

2527
self.fritz.update_devices()
@@ -34,3 +36,35 @@ def test_device_alert_on(self):
3436
assert group.window_open is False
3537
assert group.boost_active_endtime == 0
3638
assert group.window_open_endtime == 0
39+
assert group.actual_temperature is None
40+
assert group.target_temperature == 21.5
41+
42+
self.fritz.update_devices()
43+
group = self.fritz.get_device_by_ain("grp303E4F-3F7D9BE07")
44+
assert group.has_thermostat
45+
assert group.is_group
46+
assert group.group_members == ["16", "17"]
47+
assert group.supported_features == [FritzhomeDeviceFeatures.THERMOSTAT]
48+
assert group.adaptive_heating_active is True
49+
assert group.adaptive_heating_running is False
50+
assert group.boost_active is False
51+
assert group.window_open is False
52+
assert group.boost_active_endtime == 0
53+
assert group.window_open_endtime == 0
54+
assert group.actual_temperature is None
55+
assert group.target_temperature is None
56+
57+
self.fritz.update_devices()
58+
group = self.fritz.get_device_by_ain("grp303E4F-3F7D9BE07")
59+
assert group.has_thermostat
60+
assert group.is_group
61+
assert group.group_members == ["16", "17"]
62+
assert group.supported_features == [FritzhomeDeviceFeatures.THERMOSTAT]
63+
assert group.adaptive_heating_active is True
64+
assert group.adaptive_heating_running is False
65+
assert group.boost_active is False
66+
assert group.window_open is False
67+
assert group.boost_active_endtime == 0
68+
assert group.window_open_endtime == 0
69+
assert group.actual_temperature is None
70+
assert group.target_temperature == 21.5

0 commit comments

Comments
 (0)