From ca4f971eb48dfd5f287f02502fa60d335e985ca0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Sat, 19 Oct 2024 14:38:15 +0200
Subject: [PATCH] Fix Airzone Cloud climate temperature range (#128740)

---
 homeassistant/components/airzone_cloud/climate.py | 8 +++++++-
 tests/components/airzone_cloud/test_climate.py    | 6 +++---
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/homeassistant/components/airzone_cloud/climate.py b/homeassistant/components/airzone_cloud/climate.py
index 3658c073795..d051d561015 100644
--- a/homeassistant/components/airzone_cloud/climate.py
+++ b/homeassistant/components/airzone_cloud/climate.py
@@ -224,14 +224,20 @@ class AirzoneClimate(AirzoneEntity, ClimateEntity):
             self._attr_hvac_mode = HVACMode.OFF
         self._attr_max_temp = self.get_airzone_value(AZD_TEMP_SET_MAX)
         self._attr_min_temp = self.get_airzone_value(AZD_TEMP_SET_MIN)
-        if self.supported_features & ClimateEntityFeature.TARGET_TEMPERATURE_RANGE:
+        if (
+            self.supported_features & ClimateEntityFeature.TARGET_TEMPERATURE_RANGE
+            and self._attr_hvac_mode == HVACMode.HEAT_COOL
+        ):
             self._attr_target_temperature_high = self.get_airzone_value(
                 AZD_TEMP_SET_COOL_AIR
             )
             self._attr_target_temperature_low = self.get_airzone_value(
                 AZD_TEMP_SET_HOT_AIR
             )
+            self._attr_target_temperature = None
         else:
+            self._attr_target_temperature_high = None
+            self._attr_target_temperature_low = None
             self._attr_target_temperature = self.get_airzone_value(AZD_TEMP_SET)
 
 
diff --git a/tests/components/airzone_cloud/test_climate.py b/tests/components/airzone_cloud/test_climate.py
index 37c5ff8e1af..2b587680a57 100644
--- a/tests/components/airzone_cloud/test_climate.py
+++ b/tests/components/airzone_cloud/test_climate.py
@@ -97,8 +97,7 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None:
     assert state.attributes[ATTR_MAX_TEMP] == 30
     assert state.attributes[ATTR_MIN_TEMP] == 15
     assert state.attributes[ATTR_TARGET_TEMP_STEP] == API_DEFAULT_TEMP_STEP
-    assert state.attributes.get(ATTR_TARGET_TEMP_HIGH) == 22.0
-    assert state.attributes.get(ATTR_TARGET_TEMP_LOW) == 18.0
+    assert state.attributes.get(ATTR_TEMPERATURE) == 22.0
 
     # Groups
     state = hass.states.get("climate.group")
@@ -589,6 +588,7 @@ async def test_airzone_climate_set_temp(hass: HomeAssistant) -> None:
             SERVICE_SET_TEMPERATURE,
             {
                 ATTR_ENTITY_ID: "climate.bron_pro",
+                ATTR_HVAC_MODE: HVACMode.HEAT_COOL,
                 ATTR_TARGET_TEMP_HIGH: 25.0,
                 ATTR_TARGET_TEMP_LOW: 20.0,
             },
@@ -596,7 +596,7 @@ async def test_airzone_climate_set_temp(hass: HomeAssistant) -> None:
         )
 
     state = hass.states.get("climate.bron_pro")
-    assert state.state == HVACMode.HEAT
+    assert state.state == HVACMode.HEAT_COOL
     assert state.attributes.get(ATTR_TARGET_TEMP_HIGH) == 25.0
     assert state.attributes.get(ATTR_TARGET_TEMP_LOW) == 20.0
 
-- 
GitLab