From d3061a79539e58a4dffc82f99469a6592093a083 Mon Sep 17 00:00:00 2001 From: david-kalbermatten Date: Tue, 4 Feb 2025 07:45:14 +0100 Subject: [PATCH 1/2] added missing reverse cycle checks to function that controls heating --- custom_components/dualmode_generic/climate.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/custom_components/dualmode_generic/climate.py b/custom_components/dualmode_generic/climate.py index 2cdb340..575af08 100644 --- a/custom_components/dualmode_generic/climate.py +++ b/custom_components/dualmode_generic/climate.py @@ -851,18 +851,18 @@ def determine_active_entity(): # Check new mode against previous HVAC mode and if previous_mode is not None and previous_mode != self._hvac_mode: - if previous_mode == HVAC_MODE_COOL: + if previous_mode == HVAC_MODE_COOL and REVERSE_CYCLE_IS_COOLER not in self.reverse_cycle: await self._async_cooler_turn_off() - elif previous_mode == HVAC_MODE_HEAT: + elif previous_mode == HVAC_MODE_HEAT and REVERSE_CYCLE_IS_HEATER not in self.reverse_cycle: await self._async_heater_turn_off() - elif previous_mode == HVAC_MODE_FAN_ONLY: + elif previous_mode == HVAC_MODE_FAN_ONLY and REVERSE_CYCLE_IS_FAN not in self.reverse_cycle: await self._async_fan_turn_off() - elif previous_mode == HVAC_MODE_DRY: + elif previous_mode == HVAC_MODE_DRY and REVERSE_CYCLE_IS_DRYER not in self.reverse_cycle: await self._async_dryer_turn_off() elif previous_mode == HVAC_MODE_HEAT_COOL: - if self._hvac_mode == HVAC_MODE_COOL: + if self._hvac_mode == HVAC_MODE_COOL and REVERSE_CYCLE_IS_COOLER not in self.reverse_cycle: await self._async_heater_turn_off() - elif self._hvac_mode == HVAC_MODE_HEAT: + elif self._hvac_mode == HVAC_MODE_HEAT and REVERSE_CYCLE_IS_HEATER not in self.reverse_cycle: await self._async_cooler_turn_off() # Thermostat is running and in HEAT_COOL mode From e38920c0b134ecc5bfc75b0afa9e0161ad8e1560 Mon Sep 17 00:00:00 2001 From: david-kalbermatten Date: Tue, 4 Feb 2025 07:51:38 +0100 Subject: [PATCH 2/2] mixed up reverse_cycle check for heat_cool_mode --- custom_components/dualmode_generic/climate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/dualmode_generic/climate.py b/custom_components/dualmode_generic/climate.py index 575af08..b519979 100644 --- a/custom_components/dualmode_generic/climate.py +++ b/custom_components/dualmode_generic/climate.py @@ -860,9 +860,9 @@ def determine_active_entity(): elif previous_mode == HVAC_MODE_DRY and REVERSE_CYCLE_IS_DRYER not in self.reverse_cycle: await self._async_dryer_turn_off() elif previous_mode == HVAC_MODE_HEAT_COOL: - if self._hvac_mode == HVAC_MODE_COOL and REVERSE_CYCLE_IS_COOLER not in self.reverse_cycle: + if self._hvac_mode == HVAC_MODE_COOL and REVERSE_CYCLE_IS_HEATER not in self.reverse_cycle: await self._async_heater_turn_off() - elif self._hvac_mode == HVAC_MODE_HEAT and REVERSE_CYCLE_IS_HEATER not in self.reverse_cycle: + elif self._hvac_mode == HVAC_MODE_HEAT and REVERSE_CYCLE_IS_COOLER not in self.reverse_cycle: await self._async_cooler_turn_off() # Thermostat is running and in HEAT_COOL mode