From 486e94e6a5a6dbe1bb1f282e2cb8704f704136f8 Mon Sep 17 00:00:00 2001 From: Brett Date: Mon, 28 Jun 2021 19:21:25 +1000 Subject: [PATCH] Add "auto" HVAC mode to Advantage Air (#51693) * Add support for myAuto * Small bug fixes for myAutoModeEnabled * Add myauto to test fixture * Refactor hvac_modes using AC_HVAC_MODES --- .../components/advantage_air/climate.py | 19 ++++++++++++------- .../fixtures/advantage_air/getSystemData.json | 5 ++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/homeassistant/components/advantage_air/climate.py b/homeassistant/components/advantage_air/climate.py index 60caf15be25..d890fa43207 100644 --- a/homeassistant/components/advantage_air/climate.py +++ b/homeassistant/components/advantage_air/climate.py @@ -6,6 +6,7 @@ from homeassistant.components.climate.const import ( FAN_HIGH, FAN_LOW, FAN_MEDIUM, + HVAC_MODE_AUTO, HVAC_MODE_COOL, HVAC_MODE_DRY, HVAC_MODE_FAN_ONLY, @@ -31,9 +32,18 @@ ADVANTAGE_AIR_HVAC_MODES = { "cool": HVAC_MODE_COOL, "vent": HVAC_MODE_FAN_ONLY, "dry": HVAC_MODE_DRY, + "myauto": HVAC_MODE_AUTO, } HASS_HVAC_MODES = {v: k for k, v in ADVANTAGE_AIR_HVAC_MODES.items()} +AC_HVAC_MODES = [ + HVAC_MODE_OFF, + HVAC_MODE_COOL, + HVAC_MODE_HEAT, + HVAC_MODE_FAN_ONLY, + HVAC_MODE_DRY, +] + ADVANTAGE_AIR_FAN_MODES = { "auto": FAN_AUTO, "low": FAN_LOW, @@ -43,13 +53,6 @@ ADVANTAGE_AIR_FAN_MODES = { HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()} FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100} -AC_HVAC_MODES = [ - HVAC_MODE_OFF, - HVAC_MODE_COOL, - HVAC_MODE_HEAT, - HVAC_MODE_FAN_ONLY, - HVAC_MODE_DRY, -] ADVANTAGE_AIR_SERVICE_SET_MYZONE = "set_myzone" ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_FAN_ONLY] @@ -130,6 +133,8 @@ class AdvantageAirAC(AdvantageAirClimateEntity): @property def hvac_modes(self): """Return the supported HVAC modes.""" + if self._ac.get("myAutoModeEnabled"): + return AC_HVAC_MODES + [HVAC_MODE_AUTO] return AC_HVAC_MODES @property diff --git a/tests/fixtures/advantage_air/getSystemData.json b/tests/fixtures/advantage_air/getSystemData.json index 19dda28fec1..4ed610f9649 100644 --- a/tests/fixtures/advantage_air/getSystemData.json +++ b/tests/fixtures/advantage_air/getSystemData.json @@ -100,7 +100,10 @@ "fan": "low", "filterCleanStatus": 1, "freshAirStatus": "none", - "mode": "cool", + "mode": "myauto", + "myAutoModeCurrentSetMode": "cool", + "myAutoModeEnabled": true, + "myAutoModeIsRunning": true, "myZone": 1, "name": "AC Two", "setTemp": 24,