diff --git a/homeassistant/components/airzone/climate.py b/homeassistant/components/airzone/climate.py index fda007cdc82..3c47c333b92 100644 --- a/homeassistant/components/airzone/climate.py +++ b/homeassistant/components/airzone/climate.py @@ -131,8 +131,6 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity): self._attr_unique_id = f"{self._attr_unique_id}_{system_zone_id}" self._attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE self._attr_target_temperature_step = API_TEMPERATURE_STEP - self._attr_max_temp = self.get_airzone_value(AZD_TEMP_MAX) - self._attr_min_temp = self.get_airzone_value(AZD_TEMP_MIN) self._attr_temperature_unit = TEMP_UNIT_LIB_TO_HASS[ self.get_airzone_value(AZD_TEMP_UNIT) ] @@ -240,6 +238,8 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity): ] else: self._attr_hvac_mode = HVACMode.OFF + self._attr_max_temp = self.get_airzone_value(AZD_TEMP_MAX) + self._attr_min_temp = self.get_airzone_value(AZD_TEMP_MIN) self._attr_target_temperature = self.get_airzone_value(AZD_TEMP_SET) if self.supported_features & ClimateEntityFeature.FAN_MODE: self._attr_fan_mode = self._speeds.get(self.get_airzone_value(AZD_SPEED)) diff --git a/tests/components/airzone/test_climate.py b/tests/components/airzone/test_climate.py index 0baac5c9d71..f51dd318240 100644 --- a/tests/components/airzone/test_climate.py +++ b/tests/components/airzone/test_climate.py @@ -6,17 +6,21 @@ from aioairzone.const import ( API_COOL_SET_POINT, API_DATA, API_HEAT_SET_POINT, + API_MAX_TEMP, + API_MIN_TEMP, API_MODE, API_ON, API_SET_POINT, API_SPEED, API_SYSTEM_ID, + API_SYSTEMS, API_ZONE_ID, ) from aioairzone.exceptions import AirzoneError import pytest from homeassistant.components.airzone.const import API_TEMPERATURE_STEP +from homeassistant.components.airzone.coordinator import SCAN_INTERVAL from homeassistant.components.climate import ( ATTR_CURRENT_HUMIDITY, ATTR_CURRENT_TEMPERATURE, @@ -49,8 +53,16 @@ from homeassistant.const import ( ) from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError +from homeassistant.util.dt import utcnow -from .util import async_init_integration +from .util import ( + HVAC_MOCK, + HVAC_SYSTEMS_MOCK, + HVAC_WEBSERVER_MOCK, + async_init_integration, +) + +from tests.common import async_fire_time_changed async def test_airzone_create_climates(hass: HomeAssistant) -> None: @@ -211,6 +223,27 @@ async def test_airzone_create_climates(hass: HomeAssistant) -> None: assert state.attributes.get(ATTR_TARGET_TEMP_STEP) == API_TEMPERATURE_STEP assert state.attributes.get(ATTR_TEMPERATURE) == 22.8 + HVAC_MOCK_CHANGED = {**HVAC_MOCK} + HVAC_MOCK_CHANGED[API_SYSTEMS][0][API_DATA][0][API_MAX_TEMP] = 25 + HVAC_MOCK_CHANGED[API_SYSTEMS][0][API_DATA][0][API_MIN_TEMP] = 10 + + with patch( + "homeassistant.components.airzone.AirzoneLocalApi.get_hvac", + return_value=HVAC_MOCK_CHANGED, + ), patch( + "homeassistant.components.airzone.AirzoneLocalApi.get_hvac_systems", + return_value=HVAC_SYSTEMS_MOCK, + ), patch( + "homeassistant.components.airzone.AirzoneLocalApi.get_webserver", + return_value=HVAC_WEBSERVER_MOCK, + ): + async_fire_time_changed(hass, utcnow() + SCAN_INTERVAL) + await hass.async_block_till_done() + + state = hass.states.get("climate.salon") + assert state.attributes.get(ATTR_MAX_TEMP) == 25 + assert state.attributes.get(ATTR_MIN_TEMP) == 10 + async def test_airzone_climate_turn_on_off(hass: HomeAssistant) -> None: """Test turning on."""