From e7955cab59bc9df5e320ef5840b6cd77852a6aae Mon Sep 17 00:00:00 2001 From: Thomas Schmid Date: Wed, 3 Jan 2024 21:10:07 +0100 Subject: [PATCH] update nuki state handling update state handling so that manual state changes of the nuki (key or button press) are reflected to the internal doorlock state. Refactor general state handling to support this Signed-off-by: Thomas Schmid --- doorlockd | 2 +- pydoorlock/Doorlock.py | 4 ++-- pydoorlock/NukiBridge.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doorlockd b/doorlockd index 3704228..b33cff9 100755 --- a/doorlockd +++ b/doorlockd @@ -37,7 +37,7 @@ __status__ = 'Development' __maintainer__ = 'Ralf Ramsauer' __version__ = '0.0' -log_level = logging.DEBUG +log_level = logging.INFO date_fmt = '%Y-%m-%d %H:%M:%S' log_fmt = '%(asctime)-15s %(levelname)-8s %(message)s' log = logging.getLogger() diff --git a/pydoorlock/Doorlock.py b/pydoorlock/Doorlock.py index 07e8e60..a3f05b3 100644 --- a/pydoorlock/Doorlock.py +++ b/pydoorlock/Doorlock.py @@ -77,7 +77,7 @@ class DoorHandler: raise RuntimeError self.backend.set_state(self.state) - self.backend.register_state_changed_handler(self.update_state) + self.backend.register_state_changed_handler(self.backend_state_change_handler) def backend_state_change_handler(self, new_state): self.update_state(self.state, new_state, DoorlockResponse.Success) @@ -121,7 +121,7 @@ class DoorHandler: elif state == DoorState.Open: err = self.open() - self.update_state(old_state, self.state, err) + self.update_state(old_state, state, err) return err diff --git a/pydoorlock/NukiBridge.py b/pydoorlock/NukiBridge.py index dd94def..7084d96 100644 --- a/pydoorlock/NukiBridge.py +++ b/pydoorlock/NukiBridge.py @@ -145,15 +145,15 @@ class NukiBridge(DoorlockBackend): continue if not NukiBridgeDevice.compare_device_state(dev_state, last_dev_state): - log.debug(f"Nuki changed state: {dev_state}") + log.info(f"Nuki changed state: {dev_state}") if self.current_state != DoorState.Closed and dev_state["stateName"] == "locked": self.current_state = DoorState.Closed - self.state_change_callback(self.current_state, DoorlockResponse.Success) + self.state_change_callback(self.current_state) if self.current_state != DoorState.Open and dev_state["stateName"] == "unlocked": self.current_state = DoorState.Open - self.state_change_callback(self.current_state, DoorlockResponse.Success) + self.state_change_callback(self.current_state) last_dev_state = dev_state time.sleep(10)