Skip to content

Commit

Permalink
Merge pull request #331 from PeteRager/lennox-preset-mode
Browse files Browse the repository at this point in the history
Add preset schedule override to preset list
  • Loading branch information
PeteRager authored Jun 28, 2024
2 parents 5726df2 + 68ee8b9 commit 2a43151
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
6 changes: 5 additions & 1 deletion custom_components/lennoxs30/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion custom_components/lennoxs30/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
7 changes: 6 additions & 1 deletion tests/test_climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 2a43151

Please sign in to comment.