diff --git a/homeassistant/components/airzone/climate.py b/homeassistant/components/airzone/climate.py index 3c47c333b92..74a564fa2de 100644 --- a/homeassistant/components/airzone/climate.py +++ b/homeassistant/components/airzone/climate.py @@ -193,6 +193,8 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity): async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: """Set hvac mode.""" + slave_raise = False + params = {} if hvac_mode == HVACMode.OFF: params[API_ON] = 0 @@ -202,12 +204,13 @@ class AirzoneClimate(AirzoneZoneEntity, ClimateEntity): if self.get_airzone_value(AZD_MASTER): params[API_MODE] = mode else: - raise HomeAssistantError( - f"Mode can't be changed on slave zone {self.name}" - ) + slave_raise = True params[API_ON] = 1 await self._async_update_hvac_params(params) + if slave_raise: + raise HomeAssistantError(f"Mode can't be changed on slave zone {self.name}") + async def async_set_temperature(self, **kwargs: Any) -> None: """Set new target temperature.""" params = {} diff --git a/tests/components/airzone/test_climate.py b/tests/components/airzone/test_climate.py index 2c66adcb974..f7cc7806bcb 100644 --- a/tests/components/airzone/test_climate.py +++ b/tests/components/airzone/test_climate.py @@ -438,7 +438,7 @@ async def test_airzone_climate_set_hvac_slave_error(hass: HomeAssistant) -> None ) state = hass.states.get("climate.dorm_2") - assert state.state == HVACMode.OFF + assert state.state == HVACMode.HEAT async def test_airzone_climate_set_fan_mode(hass: HomeAssistant) -> None: