From ab6b3d56682855e1eb7a92ba4baa6905cd1e01e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Mon, 6 Nov 2023 01:33:01 +0100 Subject: [PATCH] Allow setting HVAC mode through set_temperature service in Airzone Cloud integration (#103184) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * airzone_cloud: climate: set_temperature: support ATTR_HVAC_MODE Signed-off-by: Álvaro Fernández Rojas * tests: airzone_cloud: set_temp: check HVAC mode Signed-off-by: Álvaro Fernández Rojas --------- Signed-off-by: Álvaro Fernández Rojas --- homeassistant/components/airzone_cloud/climate.py | 7 +++++++ tests/components/airzone_cloud/test_climate.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/homeassistant/components/airzone_cloud/climate.py b/homeassistant/components/airzone_cloud/climate.py index e5aa6be65e3..e076edc1f5b 100644 --- a/homeassistant/components/airzone_cloud/climate.py +++ b/homeassistant/components/airzone_cloud/climate.py @@ -32,6 +32,7 @@ from aioairzone_cloud.const import ( ) from homeassistant.components.climate import ( + ATTR_HVAC_MODE, ClimateEntity, ClimateEntityFeature, HVACAction, @@ -204,6 +205,9 @@ class AirzoneDeviceClimate(AirzoneClimate): } await self._async_update_params(params) + if ATTR_HVAC_MODE in kwargs: + await self.async_set_hvac_mode(kwargs[ATTR_HVAC_MODE]) + class AirzoneDeviceGroupClimate(AirzoneClimate): """Define an Airzone Cloud DeviceGroup base class.""" @@ -238,6 +242,9 @@ class AirzoneDeviceGroupClimate(AirzoneClimate): } await self._async_update_params(params) + if ATTR_HVAC_MODE in kwargs: + await self.async_set_hvac_mode(kwargs[ATTR_HVAC_MODE]) + async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: """Set hvac mode.""" params: dict[str, Any] = { diff --git a/tests/components/airzone_cloud/test_climate.py b/tests/components/airzone_cloud/test_climate.py index 4106b1af1e9..010c0d51072 100644 --- a/tests/components/airzone_cloud/test_climate.py +++ b/tests/components/airzone_cloud/test_climate.py @@ -453,12 +453,14 @@ async def test_airzone_climate_set_temp(hass: HomeAssistant) -> None: SERVICE_SET_TEMPERATURE, { ATTR_ENTITY_ID: "climate.house", + ATTR_HVAC_MODE: HVACMode.HEAT, ATTR_TEMPERATURE: 20.5, }, blocking=True, ) state = hass.states.get("climate.house") + assert state.state == HVACMode.HEAT assert state.attributes[ATTR_TEMPERATURE] == 20.5 # Zones @@ -471,12 +473,14 @@ async def test_airzone_climate_set_temp(hass: HomeAssistant) -> None: SERVICE_SET_TEMPERATURE, { ATTR_ENTITY_ID: "climate.salon", + ATTR_HVAC_MODE: HVACMode.HEAT, ATTR_TEMPERATURE: 20.5, }, blocking=True, ) state = hass.states.get("climate.salon") + assert state.state == HVACMode.HEAT assert state.attributes[ATTR_TEMPERATURE] == 20.5