From 5f5fc2c58c7f16a4f5b4a911ff432b91fed7842a Mon Sep 17 00:00:00 2001 From: Lukas Klass Date: Sat, 30 Oct 2021 21:23:05 +0200 Subject: [PATCH] Cancel resending timer using class variable --- hass_apps/schedy/actor/base.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hass_apps/schedy/actor/base.py b/hass_apps/schedy/actor/base.py index cdc9ec5e..1b7ddcab 100644 --- a/hass_apps/schedy/actor/base.py +++ b/hass_apps/schedy/actor/base.py @@ -48,6 +48,7 @@ def __init__(self, entity_id: str, cfg: dict, room: "Room") -> None: self._gave_up_sending = False self._resending_timer = None # type: T.Optional[uuid.UUID] + self._resending_timer_cancelled = False def __repr__(self) -> str: return "".format(str(self)) @@ -81,6 +82,9 @@ def _resending_cb(self, kwargs: dict) -> None: self._gave_up_sending = True return if left_tries <= retries: + if self._resending_timer_cancelled: + self._resending_timer_cancelled = False + return self.log("Re-sending value due to missing confirmation.", level="WARNING") self.log( @@ -117,6 +121,7 @@ def _state_cb( if new_value is None: return + self._resending_timer_cancelled = False if new_value == self._wanted_value: self.cancel_resending_timer() self._gave_up_sending = False @@ -140,6 +145,7 @@ def cancel_resending_timer(self) -> None: return self._resending_timer = None self.app.cancel_timer(timer) + self._resending_timer_cancelled = True self.log("Cancelled re-sending timer.", level="DEBUG") def check_config_plausibility(self, state: dict) -> None: