Integration tests ok
This commit is contained in:
@@ -1452,7 +1452,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
||||
control_heating to turn all off"""
|
||||
|
||||
for under in self._underlyings:
|
||||
await under.turn_off()
|
||||
await under.turn_off_and_cancel_cycle()
|
||||
|
||||
def save_preset_mode(self):
|
||||
"""Save the current preset mode to be restored later
|
||||
@@ -1464,7 +1464,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
||||
):
|
||||
self._saved_preset_mode = self._attr_preset_mode
|
||||
|
||||
async def restore_preset_mode(self):
|
||||
async def restore_preset_mode(self, force=False):
|
||||
"""Restore a previous preset mode
|
||||
We never restore a hidden preset mode. Normally that is not possible
|
||||
"""
|
||||
@@ -1472,7 +1472,7 @@ class BaseThermostat(ClimateEntity, RestoreEntity, Generic[T]):
|
||||
self._saved_preset_mode not in HIDDEN_PRESETS
|
||||
and self._saved_preset_mode is not None
|
||||
):
|
||||
await self.async_set_preset_mode_internal(self._saved_preset_mode)
|
||||
await self.async_set_preset_mode_internal(self._saved_preset_mode, force=force)
|
||||
|
||||
def save_hvac_mode(self):
|
||||
"""Save the current hvac-mode to be restored later"""
|
||||
|
||||
@@ -179,7 +179,7 @@ class FeaturePowerManager(BaseFeatureManager):
|
||||
|
||||
self._vtherm.save_preset_mode()
|
||||
await self._vtherm.async_underlying_entity_turn_off()
|
||||
await self._vtherm.async_set_preset_mode_internal(PRESET_POWER)
|
||||
await self._vtherm.async_set_preset_mode_internal(PRESET_POWER, force=True)
|
||||
self._vtherm.send_event(
|
||||
EventType.POWER_EVENT,
|
||||
{
|
||||
@@ -198,9 +198,12 @@ class FeaturePowerManager(BaseFeatureManager):
|
||||
)
|
||||
self._overpowering_state = STATE_OFF
|
||||
|
||||
# restore state
|
||||
if self._vtherm.is_over_climate:
|
||||
await self._vtherm.restore_hvac_mode(False)
|
||||
await self._vtherm.restore_hvac_mode()
|
||||
await self._vtherm.restore_preset_mode()
|
||||
# restart cycle
|
||||
await self._vtherm.async_control_heating(force=True)
|
||||
self._vtherm.send_event(
|
||||
EventType.POWER_EVENT,
|
||||
{
|
||||
|
||||
@@ -190,6 +190,11 @@ class UnderlyingEntity:
|
||||
"""capping of the value send to the underlying eqt"""
|
||||
return value
|
||||
|
||||
async def turn_off_and_cancel_cycle(self):
|
||||
"""Turn off and cancel eventual running cycle"""
|
||||
self._cancel_cycle()
|
||||
await self.turn_off()
|
||||
|
||||
|
||||
class UnderlyingSwitch(UnderlyingEntity):
|
||||
"""Represent a underlying switch"""
|
||||
|
||||
Reference in New Issue
Block a user