From fd0c80585d27377f086d3ba0b36ac5a9e3364e0e Mon Sep 17 00:00:00 2001 From: Jean-Marc Collin Date: Thu, 21 Nov 2024 08:31:58 +0000 Subject: [PATCH] Issue #655 - combine motion and presence --- .../versatile_thermostat/base_thermostat.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/custom_components/versatile_thermostat/base_thermostat.py b/custom_components/versatile_thermostat/base_thermostat.py index 5e0a14c..00ba822 100644 --- a/custom_components/versatile_thermostat/base_thermostat.py +++ b/custom_components/versatile_thermostat/base_thermostat.py @@ -1385,7 +1385,10 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]): ) if motion_preset in self._presets: - return self._presets[motion_preset] + if self._presence_on and self.presence_state in [STATE_OFF, None]: + return self._presets_away[motion_preset + PRESET_AWAY_SUFFIX] + else: + return self._presets[motion_preset] else: return None else: @@ -1906,7 +1909,12 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]): STATE_NOT_HOME, ): return - if self._attr_preset_mode not in [PRESET_BOOST, PRESET_COMFORT, PRESET_ECO]: + if self._attr_preset_mode not in [ + PRESET_BOOST, + PRESET_COMFORT, + PRESET_ECO, + PRESET_ACTIVITY, + ]: return new_temp = self.find_preset_temp(self.preset_mode)