mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Fix twoSet temp and fan_mode error in LG ThinQ integration (#131130)
Co-authored-by: yunseon.park <yunseon.park@lge.com>
This commit is contained in:
parent
17466684a6
commit
db07483c40
@ -12,7 +12,6 @@ from thinqconnect.integration import ExtendedProperty
|
|||||||
from homeassistant.components.climate import (
|
from homeassistant.components.climate import (
|
||||||
ATTR_TARGET_TEMP_HIGH,
|
ATTR_TARGET_TEMP_HIGH,
|
||||||
ATTR_TARGET_TEMP_LOW,
|
ATTR_TARGET_TEMP_LOW,
|
||||||
FAN_OFF,
|
|
||||||
ClimateEntity,
|
ClimateEntity,
|
||||||
ClimateEntityDescription,
|
ClimateEntityDescription,
|
||||||
ClimateEntityFeature,
|
ClimateEntityFeature,
|
||||||
@ -37,7 +36,7 @@ class ThinQClimateEntityDescription(ClimateEntityDescription):
|
|||||||
step: float | None = None
|
step: float | None = None
|
||||||
|
|
||||||
|
|
||||||
DEVIE_TYPE_CLIMATE_MAP: dict[DeviceType, tuple[ThinQClimateEntityDescription, ...]] = {
|
DEVICE_TYPE_CLIMATE_MAP: dict[DeviceType, tuple[ThinQClimateEntityDescription, ...]] = {
|
||||||
DeviceType.AIR_CONDITIONER: (
|
DeviceType.AIR_CONDITIONER: (
|
||||||
ThinQClimateEntityDescription(
|
ThinQClimateEntityDescription(
|
||||||
key=ExtendedProperty.CLIMATE_AIR_CONDITIONER,
|
key=ExtendedProperty.CLIMATE_AIR_CONDITIONER,
|
||||||
@ -86,7 +85,7 @@ async def async_setup_entry(
|
|||||||
entities: list[ThinQClimateEntity] = []
|
entities: list[ThinQClimateEntity] = []
|
||||||
for coordinator in entry.runtime_data.coordinators.values():
|
for coordinator in entry.runtime_data.coordinators.values():
|
||||||
if (
|
if (
|
||||||
descriptions := DEVIE_TYPE_CLIMATE_MAP.get(
|
descriptions := DEVICE_TYPE_CLIMATE_MAP.get(
|
||||||
coordinator.api.device.device_type
|
coordinator.api.device.device_type
|
||||||
)
|
)
|
||||||
) is not None:
|
) is not None:
|
||||||
@ -149,10 +148,9 @@ class ThinQClimateEntity(ThinQEntity, ClimateEntity):
|
|||||||
super()._update_status()
|
super()._update_status()
|
||||||
|
|
||||||
# Update fan, hvac and preset mode.
|
# Update fan, hvac and preset mode.
|
||||||
|
if self.supported_features & ClimateEntityFeature.FAN_MODE:
|
||||||
|
self._attr_fan_mode = self.data.fan_mode
|
||||||
if self.data.is_on:
|
if self.data.is_on:
|
||||||
if self.supported_features & ClimateEntityFeature.FAN_MODE:
|
|
||||||
self._attr_fan_mode = self.data.fan_mode
|
|
||||||
|
|
||||||
hvac_mode = self._requested_hvac_mode or self.data.hvac_mode
|
hvac_mode = self._requested_hvac_mode or self.data.hvac_mode
|
||||||
if hvac_mode in STR_TO_HVAC:
|
if hvac_mode in STR_TO_HVAC:
|
||||||
self._attr_hvac_mode = STR_TO_HVAC.get(hvac_mode)
|
self._attr_hvac_mode = STR_TO_HVAC.get(hvac_mode)
|
||||||
@ -160,9 +158,6 @@ class ThinQClimateEntity(ThinQEntity, ClimateEntity):
|
|||||||
elif hvac_mode in THINQ_PRESET_MODE:
|
elif hvac_mode in THINQ_PRESET_MODE:
|
||||||
self._attr_preset_mode = hvac_mode
|
self._attr_preset_mode = hvac_mode
|
||||||
else:
|
else:
|
||||||
if self.supported_features & ClimateEntityFeature.FAN_MODE:
|
|
||||||
self._attr_fan_mode = FAN_OFF
|
|
||||||
|
|
||||||
self._attr_hvac_mode = HVACMode.OFF
|
self._attr_hvac_mode = HVACMode.OFF
|
||||||
self._attr_preset_mode = None
|
self._attr_preset_mode = None
|
||||||
|
|
||||||
@ -170,6 +165,7 @@ class ThinQClimateEntity(ThinQEntity, ClimateEntity):
|
|||||||
self._attr_current_humidity = self.data.humidity
|
self._attr_current_humidity = self.data.humidity
|
||||||
self._attr_current_temperature = self.data.current_temp
|
self._attr_current_temperature = self.data.current_temp
|
||||||
|
|
||||||
|
# Update min, max and step.
|
||||||
if (max_temp := self.entity_description.max_temp) is not None or (
|
if (max_temp := self.entity_description.max_temp) is not None or (
|
||||||
max_temp := self.data.max
|
max_temp := self.data.max
|
||||||
) is not None:
|
) is not None:
|
||||||
@ -184,26 +180,18 @@ class ThinQClimateEntity(ThinQEntity, ClimateEntity):
|
|||||||
self._attr_target_temperature_step = step
|
self._attr_target_temperature_step = step
|
||||||
|
|
||||||
# Update target temperatures.
|
# Update target temperatures.
|
||||||
if (
|
self._attr_target_temperature = self.data.target_temp
|
||||||
self.supported_features & ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
|
self._attr_target_temperature_high = self.data.target_temp_high
|
||||||
and self.hvac_mode == HVACMode.AUTO
|
self._attr_target_temperature_low = self.data.target_temp_low
|
||||||
):
|
|
||||||
self._attr_target_temperature = None
|
|
||||||
self._attr_target_temperature_high = self.data.target_temp_high
|
|
||||||
self._attr_target_temperature_low = self.data.target_temp_low
|
|
||||||
else:
|
|
||||||
self._attr_target_temperature = self.data.target_temp
|
|
||||||
self._attr_target_temperature_high = None
|
|
||||||
self._attr_target_temperature_low = None
|
|
||||||
|
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"[%s:%s] update status: %s/%s -> %s/%s, hvac:%s, unit:%s, step:%s",
|
"[%s:%s] update status: c:%s, t:%s, l:%s, h:%s, hvac:%s, unit:%s, step:%s",
|
||||||
self.coordinator.device_name,
|
self.coordinator.device_name,
|
||||||
self.property_id,
|
self.property_id,
|
||||||
self.data.current_temp,
|
|
||||||
self.data.target_temp,
|
|
||||||
self.current_temperature,
|
self.current_temperature,
|
||||||
self.target_temperature,
|
self.target_temperature,
|
||||||
|
self.target_temperature_low,
|
||||||
|
self.target_temperature_high,
|
||||||
self.hvac_mode,
|
self.hvac_mode,
|
||||||
self.temperature_unit,
|
self.temperature_unit,
|
||||||
self.target_temperature_step,
|
self.target_temperature_step,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user