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