home-assistant/core · error · HomeAssistantError

Failed to set system {self.entity_id}: {error}

Error message

Failed to set system {self.entity_id}: {error}

What it means

HomeAssistantError raised by AirzoneSystemEntity._async_update_sys_params when the local API call set_sys_parameters() fails with AirzoneError. It wraps system-level settings (API_SYSTEM_ID plus params) sent to the WebServer; the entity_id and underlying library error are included so the UI shows which system failed and why.

Source

Thrown at homeassistant/components/airzone/entity.py:104

    def get_airzone_value(self, key: str) -> Any:
        """Return system value by key."""
        value = None
        if system := self.coordinator.data[AZD_SYSTEMS].get(self.system_id):
            if key in system:
                value = system[key]
        return value

    async def _async_update_sys_params(self, params: dict[str, Any]) -> None:
        """Send system parameters to API."""
        _params = {
            API_SYSTEM_ID: self.system_id,
            **params,
        }
        _LOGGER.debug("update_sys_params=%s", _params)
        try:
            await self.coordinator.airzone.set_sys_parameters(_params)
        except AirzoneError as error:
            raise HomeAssistantError(
                f"Failed to set system {self.entity_id}: {error}"
            ) from error

        self.coordinator.async_set_updated_data(self.coordinator.airzone.data())


class AirzoneHotWaterEntity(AirzoneEntity):
    """Define an Airzone Hot Water entity."""

    def __init__(
        self,
        coordinator: AirzoneUpdateCoordinator,
        entry: ConfigEntry,
    ) -> None:
        """Initialize."""
        super().__init__(coordinator)

        self._attr_device_info = DeviceInfo(

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Check the underlying library message ({error}) — it usually states whether it is connectivity or parameter rejection.
  2. Retry the action once the device responds (verify with a manual poll); transient failures are common with the local HTTP API.
  3. If parameter rejection, choose a value the Airzone system accepts (check the WebServer UI for allowed ranges).
  4. Reload the integration if failures persist to re-sync coordinator state.
Defensive patterns

Strategy: try-catch

Try / catch

from homeassistant.exceptions import HomeAssistantError

try:
    await entity._async_update_sys_params(params)
except HomeAssistantError as err:
    _LOGGER.error("System write failed: %s", err)

Prevention

When it happens

Trigger: Calling a service that mutates system settings — e.g. setting the aux heater limit, changeover mode, or system-level sensor via select/switch/number entities backed by _async_update_sys_params — while the WebServer returns an error (HTTP failure, invalid parameter, device offline).

Common situations: User flips a system-level select/switch right as the coordinator refresh happens; device briefly unreachable; parameter rejected by firmware (value out of accepted range).

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/b2c38a9ff8fb27a4. Report an issue: GitHub.