home-assistant/core · error · HomeAssistantError

failed_to_read_hvac_action

failed_to_read_hvac_action

Error message

Failed to read current HVAC action

What it means

HomeAssistantError with translation_key 'failed_to_read_hvac_action', raised in _read_hvac_action when the same read_hvac_mode() call returns empty while trying to derive the running action (heating/cooling/off). Like failed_to_read_hvac_mode, it indicates the gateway did not answer with usable data.

Source

Thrown at homeassistant/components/bryant_evolution/climate.py:171

        mode_enum = {
            "HEAT": HVACMode.HEAT,
            "COOL": HVACMode.COOL,
            "AUTO": HVACMode.HEAT_COOL,
            "OFF": HVACMode.OFF,
        }.get(mode.upper())
        if mode_enum is None:
            raise HomeAssistantError(
                translation_domain=DOMAIN,
                translation_key="failed_to_parse_hvac_mode",
                translation_placeholders={"mode": mode},
            )
        return mode_enum

    async def _read_hvac_action(self) -> HVACAction:
        """Return the current running hvac operation."""
        mode_and_active = await self._client.read_hvac_mode()
        if not mode_and_active:
            raise HomeAssistantError(
                translation_domain=DOMAIN, translation_key="failed_to_read_hvac_action"
            )
        mode, is_active = mode_and_active
        if not is_active:
            return HVACAction.OFF
        match mode.upper():
            case "HEAT":
                return HVACAction.HEATING
            case "COOL":
                return HVACAction.COOLING
            case "OFF":
                return HVACAction.OFF
            case "AUTO":
                # In AUTO, we need to figure out what the actual action is
                # based on the setpoints.
                if (
                    self.current_temperature is not None
                    and self.target_temperature_low is not None

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Restore gateway connectivity (power-cycle the Evolution gateway if hung)
  2. Reload the integration to rebuild the client session
  3. Stabilize the network path between HA and the gateway (wired preferred)
  4. Update the integration/library if hangs are a known bug
Defensive patterns

Strategy: retry

Try / catch

try:
    action = await climate._read_hvac_action()
except HomeAssistantError as err:
    if 'failed_to_read_hvac_action' in str(err):
        # transient gateway read failure; retry after next poll

Prevention

When it happens

Trigger: Gateway websocket/SAM session dropped between reads; gateway rebooting; intermittent connectivity causing one of the periodic mode polls to return nothing during a state refresh.

Common situations: Entity state updates failing after network blips even though setpoint reads succeeded; HA and gateway on unstable Wi-Fi.

Related errors


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