From 984f02882bb867143cbf732ebfde0dc1ef85911d Mon Sep 17 00:00:00 2001 From: Aidan Timson Date: Sun, 14 Mar 2021 08:05:47 +0000 Subject: [PATCH] Add HVAC action to Lyric climate platform (#47876) --- homeassistant/components/lyric/climate.py | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/homeassistant/components/lyric/climate.py b/homeassistant/components/lyric/climate.py index 41e8fa90b67..6424083158a 100644 --- a/homeassistant/components/lyric/climate.py +++ b/homeassistant/components/lyric/climate.py @@ -11,6 +11,10 @@ from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( ATTR_TARGET_TEMP_HIGH, ATTR_TARGET_TEMP_LOW, + CURRENT_HVAC_COOL, + CURRENT_HVAC_HEAT, + CURRENT_HVAC_IDLE, + CURRENT_HVAC_OFF, HVAC_MODE_COOL, HVAC_MODE_HEAT, HVAC_MODE_HEAT_COOL, @@ -41,6 +45,10 @@ _LOGGER = logging.getLogger(__name__) SUPPORT_FLAGS = SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE +LYRIC_HVAC_ACTION_OFF = "EquipmentOff" +LYRIC_HVAC_ACTION_HEAT = "Heat" +LYRIC_HVAC_ACTION_COOL = "Cool" + LYRIC_HVAC_MODE_OFF = "Off" LYRIC_HVAC_MODE_HEAT = "Heat" LYRIC_HVAC_MODE_COOL = "Cool" @@ -60,6 +68,20 @@ HVAC_MODES = { LYRIC_HVAC_MODE_HEAT_COOL: HVAC_MODE_HEAT_COOL, } + +HVAC_ACTIONS = { + LYRIC_HVAC_ACTION_OFF: CURRENT_HVAC_OFF, + LYRIC_HVAC_ACTION_HEAT: CURRENT_HVAC_HEAT, + LYRIC_HVAC_ACTION_COOL: CURRENT_HVAC_COOL, +} + +HVAC_MODES = { + LYRIC_HVAC_MODE_OFF: HVAC_MODE_OFF, + LYRIC_HVAC_MODE_HEAT: HVAC_MODE_HEAT, + LYRIC_HVAC_MODE_COOL: HVAC_MODE_COOL, + LYRIC_HVAC_MODE_HEAT_COOL: HVAC_MODE_HEAT_COOL, +} + SERVICE_HOLD_TIME = "set_hold_time" ATTR_TIME_PERIOD = "time_period" @@ -152,6 +174,14 @@ class LyricClimate(LyricDeviceEntity, ClimateEntity): """Return the current temperature.""" return self.device.indoorTemperature + @property + def hvac_action(self) -> str: + """Return the current hvac action.""" + action = HVAC_ACTIONS.get(self.device.operationStatus.mode, None) + if action == CURRENT_HVAC_OFF and self.hvac_mode != HVAC_MODE_OFF: + action = CURRENT_HVAC_IDLE + return action + @property def hvac_mode(self) -> str: """Return the hvac mode."""