From 842af0358d0b1ac2be4cf491e0a93fca56e9a249 Mon Sep 17 00:00:00 2001 From: technyon Date: Fri, 24 Feb 2023 23:05:49 +0100 Subject: [PATCH] publish last lock state --- Config.h | 2 +- MqttTopics.h | 1 + NetworkLock.cpp | 7 +++++++ NetworkOpener.cpp | 11 ++++++----- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/Config.h b/Config.h index 62b7c87..4e3be3c 100644 --- a/Config.h +++ b/Config.h @@ -1,6 +1,6 @@ #pragma once -#define NUKI_HUB_VERSION "8.11" +#define NUKI_HUB_VERSION "8.12-pre-1" #define MQTT_QOS_LEVEL 1 #define MQTT_CLEAN_SESSIONS false \ No newline at end of file diff --git a/MqttTopics.h b/MqttTopics.h index 23fa6ce..1bd34c5 100644 --- a/MqttTopics.h +++ b/MqttTopics.h @@ -16,6 +16,7 @@ #define mqtt_topic_query_battery "/lock/query/battery" #define mqtt_topic_lock_binary_state "/lock/binaryState" #define mqtt_topic_lock_trigger "/lock/trigger" +#define mqtt_topic_lock_last_lock_action "/lock/lastLockAction" #define mqtt_topic_lock_log "/lock/log" #define mqtt_topic_lock_auth_id "/lock/authorizationId" #define mqtt_topic_lock_auth_name "/lock/authorizationName" diff --git a/NetworkLock.cpp b/NetworkLock.cpp index c370b0e..4e9b658 100644 --- a/NetworkLock.cpp +++ b/NetworkLock.cpp @@ -207,6 +207,13 @@ void NetworkLock::publishKeyTurnerState(const NukiLock::KeyTurnerState& keyTurne publishString(mqtt_topic_lock_trigger, str); } + if(_firstTunerStatePublish || keyTurnerState.lastLockAction != lastKeyTurnerState.lastLockAction) + { + memset(&str, 0, sizeof(str)); + lockactionToString(keyTurnerState.lastLockAction, str); + publishString(mqtt_topic_lock_last_lock_action, str); + } + if(_firstTunerStatePublish || keyTurnerState.lastLockActionCompletionStatus != lastKeyTurnerState.lastLockActionCompletionStatus) { memset(&str, 0, sizeof(str)); diff --git a/NetworkOpener.cpp b/NetworkOpener.cpp index 766a61f..99bcb71 100644 --- a/NetworkOpener.cpp +++ b/NetworkOpener.cpp @@ -205,10 +205,11 @@ void NetworkOpener::publishKeyTurnerState(const NukiOpener::OpenerState& keyTurn publishString(mqtt_topic_lock_trigger, str); } + if(_firstTunerStatePublish || keyTurnerState.lastLockActionCompletionStatus != lastKeyTurnerState.lastLockActionCompletionStatus) { memset(&str, 0, sizeof(str)); - NukiOpener::completionStatusToString(keyTurnerState.lastLockActionCompletionStatus, str); + completionStatusToString(keyTurnerState.lastLockActionCompletionStatus, str); publishString(mqtt_topic_lock_completionStatus, str); } @@ -302,11 +303,11 @@ void NetworkOpener::publishAuthorizationInfo(const std::list