Skip to content

Commit 3a4cef7

Browse files
authored
chore(c3): input temperature should be float (#361)
same as #359 #358
1 parent ae34281 commit 3a4cef7

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

midealocal/devices/c3/__init__.py

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,21 +77,21 @@ def __init__(
7777
DeviceAttributes.tbh: False,
7878
DeviceAttributes.mode: 1,
7979
DeviceAttributes.mode_auto: 1,
80-
DeviceAttributes.zone_target_temp: [25, 25],
81-
DeviceAttributes.dhw_target_temp: 25,
82-
DeviceAttributes.room_target_temp: 30,
83-
DeviceAttributes.zone_heating_temp_max: [55, 55],
84-
DeviceAttributes.zone_heating_temp_min: [25, 25],
85-
DeviceAttributes.zone_cooling_temp_max: [25, 25],
86-
DeviceAttributes.zone_cooling_temp_min: [5, 5],
87-
DeviceAttributes.room_temp_max: 60,
88-
DeviceAttributes.room_temp_min: 34,
89-
DeviceAttributes.dhw_temp_max: 60,
90-
DeviceAttributes.dhw_temp_min: 20,
80+
DeviceAttributes.zone_target_temp: [25.0, 25.0],
81+
DeviceAttributes.dhw_target_temp: 25.0,
82+
DeviceAttributes.room_target_temp: 30.0,
83+
DeviceAttributes.zone_heating_temp_max: [55.0, 55.0],
84+
DeviceAttributes.zone_heating_temp_min: [25.0, 25.0],
85+
DeviceAttributes.zone_cooling_temp_max: [25.0, 25.0],
86+
DeviceAttributes.zone_cooling_temp_min: [5.0, 5.0],
87+
DeviceAttributes.room_temp_max: 60.0,
88+
DeviceAttributes.room_temp_min: 34.0,
89+
DeviceAttributes.dhw_temp_max: 60.0,
90+
DeviceAttributes.dhw_temp_min: 20.0,
9191
DeviceAttributes.tank_actual_temperature: None,
92-
DeviceAttributes.target_temperature: [25, 25],
93-
DeviceAttributes.temperature_max: [0, 0],
94-
DeviceAttributes.temperature_min: [0, 0],
92+
DeviceAttributes.target_temperature: [25.0, 25.0],
93+
DeviceAttributes.temperature_max: [0.0, 0.0],
94+
DeviceAttributes.temperature_min: [0.0, 0.0],
9595
DeviceAttributes.total_energy_consumption: None,
9696
DeviceAttributes.status_heating: None,
9797
DeviceAttributes.status_dhw: None,
@@ -230,7 +230,7 @@ def make_message_set(self) -> MessageSet:
230230
message.fast_dhw = self._attributes[DeviceAttributes.fast_dhw]
231231
return message
232232

233-
def set_attribute(self, attr: str, value: bool | int | str) -> None:
233+
def set_attribute(self, attr: str, value: bool | float | str) -> None:
234234
"""Midea C3 device set attribute."""
235235
message: (
236236
MessageSet | MessageSetECO | MessageSetSilent | MessageSetDisinfect | None
@@ -245,6 +245,9 @@ def set_attribute(self, attr: str, value: bool | int | str) -> None:
245245
DeviceAttributes.fast_dhw,
246246
DeviceAttributes.dhw_target_temp,
247247
]:
248+
# convert input float dhw_target_temp to int for message byte
249+
if attr == DeviceAttributes.dhw_target_temp:
250+
value = int(value)
248251
message = self.make_message_set()
249252
setattr(message, str(attr), value)
250253
elif attr == DeviceAttributes.eco_mode:
@@ -295,9 +298,11 @@ def set_target_temperature(
295298

296299
message = self.make_message_set()
297300
if self._attributes[DeviceAttributes.zone_temp_type][zone]:
298-
message.zone_target_temp[zone] = target_temperature
301+
# convert float target_temperature to int
302+
message.zone_target_temp[zone] = int(target_temperature)
299303
else:
300-
message.room_target_temp = target_temperature
304+
# convert float target_temperature to int
305+
message.room_target_temp = int(target_temperature)
301306
if mode is not None:
302307
if zone == 0:
303308
message.zone1_power = True

midealocal/devices/c3/message.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def __init__(self, protocol_version: int) -> None:
123123
self.dhw_power = False
124124
self.mode = 0
125125
self.zone_target_temp = [25.0, 25.0]
126-
self.dhw_target_temp = 40
126+
self.dhw_target_temp = 40.0
127127
self.room_target_temp = 25.0
128128
self.zone1_curve = False
129129
self.zone2_curve = False

0 commit comments

Comments
 (0)