diff --git a/homeassistant/components/ecobee/climate.py b/homeassistant/components/ecobee/climate.py index d9af0f93e11..181f1561eba 100644 --- a/homeassistant/components/ecobee/climate.py +++ b/homeassistant/components/ecobee/climate.py @@ -304,7 +304,7 @@ class Thermostat(ClimateDevice): self.vacation = event["name"] return PRESET_VACATION - return None + return self._preset_modes[self.thermostat["program"]["currentClimateRef"]] @property def hvac_mode(self): @@ -357,6 +357,9 @@ class Thermostat(ClimateDevice): status = self.thermostat["equipmentStatus"] return { "fan": self.fan, + "climate_mode": self._preset_modes[ + self.thermostat["program"]["currentClimateRef"] + ], "equipment_running": status, "fan_min_on_time": self.thermostat["settings"]["fanMinOnTime"], } diff --git a/tests/components/ecobee/test_climate.py b/tests/components/ecobee/test_climate.py index 24938e52621..d6c40ddf9ab 100644 --- a/tests/components/ecobee/test_climate.py +++ b/tests/components/ecobee/test_climate.py @@ -131,6 +131,7 @@ class TestEcobee(unittest.TestCase): self.ecobee["equipmentStatus"] = "heatPump2" assert { "fan": "off", + "climate_mode": "Climate1", "fan_min_on_time": 10, "equipment_running": "heatPump2", } == self.thermostat.device_state_attributes @@ -138,18 +139,21 @@ class TestEcobee(unittest.TestCase): self.ecobee["equipmentStatus"] = "auxHeat2" assert { "fan": "off", + "climate_mode": "Climate1", "fan_min_on_time": 10, "equipment_running": "auxHeat2", } == self.thermostat.device_state_attributes self.ecobee["equipmentStatus"] = "compCool1" assert { "fan": "off", + "climate_mode": "Climate1", "fan_min_on_time": 10, "equipment_running": "compCool1", } == self.thermostat.device_state_attributes self.ecobee["equipmentStatus"] = "" assert { "fan": "off", + "climate_mode": "Climate1", "fan_min_on_time": 10, "equipment_running": "", } == self.thermostat.device_state_attributes @@ -157,6 +161,15 @@ class TestEcobee(unittest.TestCase): self.ecobee["equipmentStatus"] = "Unknown" assert { "fan": "off", + "climate_mode": "Climate1", + "fan_min_on_time": 10, + "equipment_running": "Unknown", + } == self.thermostat.device_state_attributes + + self.ecobee["program"]["currentClimateRef"] = "c2" + assert { + "fan": "off", + "climate_mode": "Climate2", "fan_min_on_time": 10, "equipment_running": "Unknown", } == self.thermostat.device_state_attributes