|
5 | 5 |
|
6 | 6 | from dataclasses import asdict, dataclass |
7 | 7 | from typing import Any |
| 8 | +from packaging.version import Version |
8 | 9 |
|
9 | 10 | from homeassistant.components.climate import ( |
10 | 11 | ENTITY_ID_FORMAT, |
|
35 | 36 | CONF_HA_SENSOR_INDOOR_TEMPERATURE, |
36 | 37 | CONF_HA_SENSOR_PREFIX, |
37 | 38 | DOMAIN, |
| 39 | + LOGGER, |
38 | 40 | LUX_STATE_ICON_MAP, |
39 | 41 | LUX_STATE_ICON_MAP_COOL, |
40 | 42 | DeviceKey, |
|
110 | 112 | | ClimateEntityFeature.TARGET_TEMPERATURE, # noqa: W503 |
111 | 113 | luxtronik_key=LuxParameter.P0003_MODE_HEATING, |
112 | 114 | luxtronik_key_current_temperature=LuxCalculation.C0227_ROOM_THERMOSTAT_TEMPERATURE, |
113 | | - luxtronik_key_target_temperature=LuxParameter.P1148_HEATING_TARGET_TEMP_RBE, |
| 115 | + luxtronik_key_target_temperature=LuxParameter.P1148_HEATING_TARGET_TEMP_ROOM_THERMOSTAT, |
114 | 116 | # luxtronik_key_has_target_temperature=LuxParameter |
115 | 117 | luxtronik_key_current_action=LuxCalculation.C0080_STATUS, |
116 | 118 | luxtronik_action_active=LuxOperationMode.heating.value, |
@@ -297,7 +299,7 @@ def _handle_coordinator_update( |
297 | 299 | self._attr_current_temperature = get_sensor_data(data, key) |
298 | 300 |
|
299 | 301 | key_tar = self.entity_description.luxtronik_key_target_temperature |
300 | | - if key_tar == LuxParameter.P1148_HEATING_TARGET_TEMP_RBE: |
| 302 | + if key_tar == LuxParameter.P1148_HEATING_TARGET_TEMP_ROOM_THERMOSTAT: |
301 | 303 | self._attr_target_temperature = get_sensor_data(data, key_tar) / 10 |
302 | 304 | elif key_tar != LuxParameter.UNSET: |
303 | 305 | self._attr_target_temperature = get_sensor_data(data, key_tar) |
@@ -344,13 +346,17 @@ async def async_set_temperature(self, **kwargs: Any) -> None: |
344 | 346 | """Set new target temperature.""" |
345 | 347 | self._attr_target_temperature = kwargs[ATTR_TEMPERATURE] |
346 | 348 | key_tar = self.entity_description.luxtronik_key_target_temperature |
347 | | - if key_tar == LuxParameter.P1148_HEATING_TARGET_TEMP_RBE: |
| 349 | + LOGGER.info(f"async_set_temperature={key_tar},{self._attr_target_temperature}") |
| 350 | + if key_tar == LuxParameter.P1148_HEATING_TARGET_TEMP_ROOM_THERMOSTAT: |
348 | 351 | data: LuxtronikCoordinatorData | None = await self.coordinator.async_write( |
349 | 352 | key_tar.split(".")[1], int(self._attr_target_temperature * 10) |
350 | 353 | ) |
351 | 354 | self._handle_coordinator_update(data) |
352 | | - elif key_tar != LuxCalculation.C0228_ROOM_THERMOSTAT_TEMPERATURE_TARGET |
353 | | - super()._handle_coordinator_update() |
| 355 | + elif key_tar != LuxCalculation.C0228_ROOM_THERMOSTAT_TEMPERATURE_TARGET: |
| 356 | + data: LuxtronikCoordinatorData | None = await self.coordinator.async_write( |
| 357 | + key_tar.split(".")[1], int(self._attr_target_temperature) |
| 358 | + ) |
| 359 | + self._handle_coordinator_update(data) |
354 | 360 |
|
355 | 361 | async def async_turn_off(self) -> None: |
356 | 362 | await self.async_set_hvac_mode(HVACMode.OFF) |
|
0 commit comments