diff --git a/custom_components/lennoxs30/climate.py b/custom_components/lennoxs30/climate.py index 77b8ec4..0be6fbd 100644 --- a/custom_components/lennoxs30/climate.py +++ b/custom_components/lennoxs30/climate.py @@ -66,7 +66,7 @@ # Additional Presets PRESET_CANCEL_HOLD = "cancel hold" PRESET_CANCEL_AWAY_MODE = "cancel away mode" -PRESET_SCHEDULE_OVERRIDE = "Schedule Hold" +PRESET_SCHEDULE_OVERRIDE = "schedule hold" # Basic set of support flags for every HVAC setup SUPPORT_FLAGS = ClimateEntityFeature.PRESET_MODE | ClimateEntityFeature.FAN_MODE # Standard set of fan modes @@ -533,6 +533,7 @@ def preset_modes(self): presets.append(PRESET_AWAY) presets.append(PRESET_CANCEL_HOLD) presets.append(PRESET_CANCEL_AWAY_MODE) + presets.append(PRESET_SCHEDULE_OVERRIDE) presets.append(PRESET_NONE) if _LOGGER.isEnabledFor(logging.DEBUG): _LOGGER.debug("climate:preset_modes name[%s] presets[%s]", self._myname, presets) @@ -542,6 +543,9 @@ async def async_set_preset_mode(self, preset_mode): _LOGGER.info("climate:async_set_preset_mode name [%s] preset_mode [%s]", self._myname, preset_mode) if self.is_zone_disabled: raise HomeAssistantError(f"Unable to set preset mode [{preset_mode}] as zone [{self._myname}] is disabled") + + if preset_mode == PRESET_SCHEDULE_OVERRIDE: + raise HomeAssistantError(f"Setting preset to {PRESET_SCHEDULE_OVERRIDE} is not a valid operation.") try: if preset_mode == PRESET_CANCEL_AWAY_MODE: processed = False diff --git a/custom_components/lennoxs30/manifest.json b/custom_components/lennoxs30/manifest.json index 604a116..5bf0203 100644 --- a/custom_components/lennoxs30/manifest.json +++ b/custom_components/lennoxs30/manifest.json @@ -9,5 +9,5 @@ "issue_tracker" : "https://github.com/PeteRager/lennoxs30/issues", "quality_scale": "platinum", "requirements": ["lennoxs30api==0.2.15"], - "version": "2024.6.0" + "version": "2024.6.1" } \ No newline at end of file diff --git a/tests/test_climate.py b/tests/test_climate.py index 4e228a1..791d3f9 100644 --- a/tests/test_climate.py +++ b/tests/test_climate.py @@ -565,6 +565,10 @@ async def test_climate_set_preset_mode(hass, manager_mz: Manager, caplog): await c.async_set_preset_mode(PRESET_NONE) assert zone_set_manual_mode.call_count == 1 + with pytest.raises(HomeAssistantError) as hae: + await c.async_set_preset_mode(PRESET_SCHEDULE_OVERRIDE) + assert PRESET_SCHEDULE_OVERRIDE in str(hae.value) + system.manualAwayMode = False system.sa_enabled = False system.sa_state = LENNOX_SA_STATE_DISABLED @@ -1169,12 +1173,13 @@ async def test_climate_preset_modes(hass, manager_mz: Manager): assert PRESET_CANCEL_HOLD in presets assert PRESET_CANCEL_AWAY_MODE in presets assert PRESET_NONE in presets + assert PRESET_SCHEDULE_OVERRIDE in presets assert "save energy" in presets assert "spring/fall" in presets assert "winter" in presets assert "summer" in presets assert "schedule IQ" in presets - assert len(presets) == 9 + assert len(presets) == 10 system.zoningMode = LENNOX_ZONING_MODE_CENTRAL presets = c.preset_modes