Skip to content

Commit 153f9ff

Browse files
authored
Merge pull request #121 from speleolontra/externalroomtemp
Support use case where externalRoomTemperature with leavingWaterTemperature
2 parents e011ecd + c06960b commit 153f9ff

File tree

2 files changed

+8
-24
lines changed

2 files changed

+8
-24
lines changed

custom_components/daikin_residential_altherma/climate.py

+7-21
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,11 @@ def __init__(self, device):
9999
tempSettable = False
100100
if controlMode == "roomTemperature":
101101
tempSettable = device.getData(ATTR_TARGET_ROOM_TEMPERATURE)["settable"]
102-
if controlMode == "leavingWaterTemperature":
102+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
103103
if device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
104104
tempSettable = device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["settable"]
105105
if device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
106106
tempSettable = device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE)["settable"]
107-
if controlMode == "externalRoomTemperature":
108-
tempSettable = device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["settable"]
109107
if tempSettable:
110108
self._supported_features = SUPPORT_TARGET_TEMPERATURE
111109

@@ -150,13 +148,11 @@ async def _set(self, settings):
150148
controlMode = self._device.getValue(ATTR_CONTROL_MODE)
151149
if controlMode == "roomTemperature":
152150
values[HA_ATTR_TO_DAIKIN[ATTR_ROOM_TEMPERATURE]] = str(int(value))
153-
if controlMode == "leavingWaterTemperature":
151+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
154152
if self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
155153
values[HA_ATTR_TO_DAIKIN[ATTR_LEAVINGWATER_OFFSET]] = str(int(value))
156154
if self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
157155
values[HA_ATTR_TO_DAIKIN[ATTR_LEAVINGWATER_TEMPERATURE]] = str(int(value))
158-
if controlMode == "externalRoomTemperature":
159-
values[HA_ATTR_TO_DAIKIN[ATTR_LEAVINGWATER_OFFSET]] = str(int(value))
160156
except ValueError:
161157
_LOGGER.error("Invalid temperature %s", value)
162158

@@ -200,9 +196,7 @@ def current_temperature(self):
200196
# room temperature do return that
201197
if controlMode == "roomTemperature":
202198
currentTemp = self._device.getValue(ATTR_ROOM_TEMPERATURE)
203-
if controlMode == "leavingWaterTemperature":
204-
currentTemp = self._device.getValue(ATTR_LEAVINGWATER_TEMPERATURE)
205-
if controlMode == "externalRoomTemperature":
199+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
206200
currentTemp = self._device.getValue(ATTR_LEAVINGWATER_TEMPERATURE)
207201
_LOGGER.debug("Current temperature: %s", currentTemp)
208202
return currentTemp
@@ -220,13 +214,11 @@ def max_temp(self):
220214
maxTemp = DEFAULT_MAX_TEMP
221215
if controlMode == "roomTemperature":
222216
maxTemp = float(self._device.getData(ATTR_TARGET_ROOM_TEMPERATURE)["maxValue"])
223-
if controlMode == "leavingWaterTemperature":
217+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
224218
if self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
225219
maxTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["maxValue"])
226220
if self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
227221
maxTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE)["maxValue"])
228-
if controlMode == "externalRoomTemperature":
229-
maxTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["maxValue"])
230222
_LOGGER.debug("Max temperature: %s", maxTemp)
231223
return maxTemp
232224

@@ -243,13 +235,11 @@ def min_temp(self):
243235
minTemp = DEFAULT_MIN_TEMP
244236
if controlMode == "roomTemperature":
245237
minTemp = float(self._device.getData(ATTR_TARGET_ROOM_TEMPERATURE)["minValue"])
246-
if controlMode == "leavingWaterTemperature":
238+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
247239
if self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
248240
minTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["minValue"])
249241
if self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
250242
minTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE)["minValue"])
251-
if controlMode == "externalRoomTemperature":
252-
minTemp = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["minValue"])
253243
_LOGGER.debug("Min temperature: %s", minTemp)
254244
return minTemp
255245

@@ -265,13 +255,11 @@ def target_temperature(self):
265255
targetTemp = None
266256
if controlMode == "roomTemperature":
267257
targetTemp = float(self._device.getValue(ATTR_TARGET_ROOM_TEMPERATURE))
268-
if controlMode == "leavingWaterTemperature":
258+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
269259
if self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
270260
targetTemp = float(self._device.getValue(ATTR_TARGET_LEAVINGWATER_OFFSET))
271261
if self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
272262
targetTemp = float(self._device.getValue(ATTR_TARGET_LEAVINGWATER_TEMPERATURE))
273-
if controlMode == "externalRoomTemperature":
274-
targetTemp = float(self._device.getValue(ATTR_TARGET_LEAVINGWATER_OFFSET))
275263
_LOGGER.debug("Target temperature: %s", targetTemp)
276264
return targetTemp
277265

@@ -288,13 +276,11 @@ def target_temperature_step(self):
288276
tempStep = None
289277
if controlMode == "roomTemperature":
290278
tempStep = float(self._device.getData(ATTR_TARGET_ROOM_TEMPERATURE)["stepValue"])
291-
if controlMode == "leavingWaterTemperature":
279+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
292280
if self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
293281
tempStep = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["stepValue"])
294282
if self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
295283
tempStep = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE)["stepValue"])
296-
if controlMode == "externalRoomTemperature":
297-
tempStep = float(self._device.getData(ATTR_TARGET_LEAVINGWATER_OFFSET)["stepValue"])
298284
_LOGGER.debug("Step temperature: %s", tempStep)
299285
return tempStep
300286

custom_components/daikin_residential_altherma/daikin_base.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -207,13 +207,11 @@ async def async_set_temperature(self, value):
207207

208208
if controlMode == "roomTemperature":
209209
return await self.setValue(ATTR_TARGET_ROOM_TEMPERATURE, value)
210-
if controlMode == "leavingWaterTemperature":
210+
if controlMode in ("leavingWaterTemperature", "externalRoomTemperature"):
211211
if self.getData(ATTR_TARGET_LEAVINGWATER_OFFSET) is not None:
212212
return await self.setValue(ATTR_TARGET_LEAVINGWATER_OFFSET, int(value))
213213
if self.getData(ATTR_TARGET_LEAVINGWATER_TEMPERATURE) is not None:
214214
return await self.setValue(ATTR_TARGET_LEAVINGWATER_TEMPERATURE, int(value))
215-
if controlMode == "externalRoomTemperature":
216-
return await self.setValue(ATTR_TARGET_LEAVINGWATER_OFFSET, int(value))
217215

218216
return None
219217

0 commit comments

Comments
 (0)