{"record":{"id":"332bc9d0b7bebeca","repo":"home-assistant/core","slug":"mode-can-t-be-changed-on-slave-zone-self-entity-i-332bc9","errorCode":null,"errorMessage":"Mode can't be changed on slave zone {self.entity_id}","messagePattern":"Mode can't be changed on slave zone (.+?)","errorType":"exception","errorClass":"HomeAssistantError","httpStatus":null,"severity":"warning","filePath":"homeassistant/components/airzone_cloud/climate.py","lineNumber":529,"sourceCode":"            }\n        else:\n            mode = HVAC_MODE_HASS_TO_LIB[hvac_mode]\n            cur_mode = self.get_airzone_value(AZD_MODE)\n            if hvac_mode != HVAC_MODE_LIB_TO_HASS[cur_mode]:\n                if self.get_airzone_value(AZD_MASTER):\n                    params[API_MODE] = {\n                        API_VALUE: mode.value,\n                    }\n                else:\n                    slave_raise = True\n            params[API_POWER] = {\n                API_VALUE: True,\n            }\n\n        await self._async_update_params(params)\n\n        if slave_raise:\n            raise HomeAssistantError(\n                f\"Mode can't be changed on slave zone {self.entity_id}\"\n            )\n","sourceCodeStart":511,"sourceCodeEnd":532,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/airzone_cloud/climate.py#L511-L532","documentation":"Same master/slave guard as the local integration, but for Airzone Cloud: AirzoneZoneClimate.async_set_hvac_mode raises HomeAssistantError when a non-master zone is asked to change mode. The power parameter (API_POWER true) is still sent first, then the error is raised — so the zone powers on but keeps the master's mode.","triggerScenarios":"climate.set_hvac_mode on an Airzone Cloud zone whose AZD_MASTER is false and whose current mode (mapped via HVAC_MODE_LIB_TO_HASS) differs from the requested one. Note the comparison is on the HASS-mode mapping of the current value, not the raw library mode.","commonSituations":"Cloud setups where users group all zone climates in one dashboard card and apply a mode to all; automation broadcasting mode changes; assuming per-zone autonomy in a shared-system group.","solutions":["Set hvac_mode only on the master zone; slave zones follow.","Use set_temperature on slave zones to control their comfort individually.","Filter entities by the master/slave attribute in automations before calling set_hvac_mode.","Catch HomeAssistantError when broadcasting intentionally."],"exampleFix":"# before\n- service: climate.set_hvac_mode\n  target:\n    area_id: downstairs\n  data: {hvac_mode: 'cool'}\n\n# after\n- service: climate.set_hvac_mode\n  target:\n    entity_id: climate.downstairs_master\n  data: {hvac_mode: 'cool'}","handlingStrategy":"validation","validationCode":"if entity.get_airzone_value(AZD_MASTER):\n    await entity.async_set_hvac_mode(HVACMode.COOL)","typeGuard":"def is_master_zone(entity) -> bool:\n    return bool(entity.get_airzone_value(AZD_MASTER))","tryCatchPattern":"try:\n    await entity.async_set_hvac_mode(mode)\nexcept HomeAssistantError as err:\n    if \"slave zone\" not in str(err):\n        raise","preventionTips":["Target master zones for mode changes in cloud installations.","Use setpoint changes for slave-zone comfort control.","Tag master/slave in entity labels for automation filtering."],"tags":["airzone-cloud","hvac","master-slave","climate"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}