From 90575bc496fa82d7bf6a52c8b31041b6b5caa14a Mon Sep 17 00:00:00 2001 From: Marcin Wielgoszewski Date: Thu, 18 Apr 2024 09:37:11 -0400 Subject: [PATCH] Add hvac_action attribute to iAqualink Thermostat climate entities (#107803) * Update climate.py * Reorder if/else statements per @dcmeglio's suggestion * Don't infer state, actually read it from the underlying device * HVACAction has a HEATING state, not ON * Update homeassistant/components/iaqualink/climate.py --------- Co-authored-by: Erik Montnemery --- homeassistant/components/iaqualink/climate.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/homeassistant/components/iaqualink/climate.py b/homeassistant/components/iaqualink/climate.py index 29576e9fc10..868b5a32c67 100644 --- a/homeassistant/components/iaqualink/climate.py +++ b/homeassistant/components/iaqualink/climate.py @@ -6,11 +6,13 @@ import logging from typing import Any from iaqualink.device import AqualinkThermostat +from iaqualink.systems.iaqua.device import AqualinkState from homeassistant.components.climate import ( DOMAIN as CLIMATE_DOMAIN, ClimateEntity, ClimateEntityFeature, + HVACAction, HVACMode, ) from homeassistant.config_entries import ConfigEntry @@ -82,6 +84,16 @@ class HassAqualinkThermostat(AqualinkEntity, ClimateEntity): else: _LOGGER.warning("Unknown operation mode: %s", hvac_mode) + @property + def hvac_action(self) -> HVACAction: + """Return the current HVAC action.""" + state = AqualinkState(self.dev._heater.state) + if state == AqualinkState.ON: + return HVACAction.HEATING + if state == AqualinkState.ENABLED: + return HVACAction.IDLE + return HVACAction.OFF + @property def target_temperature(self) -> float: """Return the current target temperature."""