From 641801084d7ba4efd12a5c5d1b7e8512346bb3dd Mon Sep 17 00:00:00 2001 From: adi90x Date: Mon, 10 Feb 2025 17:44:28 +0100 Subject: [PATCH] Correct window bypass (#899) --- .../feature_window_manager.py | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/custom_components/versatile_thermostat/feature_window_manager.py b/custom_components/versatile_thermostat/feature_window_manager.py index de96b38..6e0049d 100644 --- a/custom_components/versatile_thermostat/feature_window_manager.py +++ b/custom_components/versatile_thermostat/feature_window_manager.py @@ -453,22 +453,23 @@ class FeatureWindowManager(BaseFeatureManager): """Set the window bypass flag Return True if state have been changed""" self._is_window_bypass = window_bypass - if not self._is_window_bypass and self._window_state: - _LOGGER.info( - "%s - Last window state was open & ByPass is now off. Set hvac_mode to '%s'", - self, - HVACMode.OFF, - ) - self._vtherm.save_hvac_mode() - await self._vtherm.async_set_hvac_mode(HVACMode.OFF) - return True + + if self._window_state == STATE_ON: + if not self._is_window_bypass: + _LOGGER.info( + "%s - Last window state was open & ByPass is now off. Set hvac_mode to '%s'", + self, + HVACMode.OFF, + ) + self._vtherm.save_hvac_mode() + await self._vtherm.async_set_hvac_mode(HVACMode.OFF) - if self._is_window_bypass and self._window_state: - _LOGGER.info( - "%s - Last window state was open & ByPass is now on. Set hvac_mode to last available mode", - self, - ) - await self._vtherm.restore_hvac_mode(True) + if self._is_window_bypass: + _LOGGER.info( + "%s - Last window state was open & ByPass is now on. Set hvac_mode to last available mode", + self, + ) + await self._vtherm.restore_hvac_mode(True) return True return False