From b5da2a5a523ac861380567730d943d31d7021a99 Mon Sep 17 00:00:00 2001 From: technyon Date: Mon, 6 Mar 2023 17:22:23 +0100 Subject: [PATCH] publish lock state query command result --- Config.h | 2 +- MqttTopics.h | 1 + NetworkLock.cpp | 5 +++++ NetworkLock.h | 1 + NetworkOpener.cpp | 5 +++++ NetworkOpener.h | 1 + NukiOpenerWrapper.cpp | 6 ++++++ NukiWrapper.cpp | 6 ++++++ 8 files changed, 26 insertions(+), 1 deletion(-) diff --git a/Config.h b/Config.h index ba97eb0..ce710ed 100644 --- a/Config.h +++ b/Config.h @@ -1,6 +1,6 @@ #pragma once -#define NUKI_HUB_VERSION "8.16-pre-1" +#define NUKI_HUB_VERSION "8.16" #define MQTT_QOS_LEVEL 1 #define MQTT_CLEAN_SESSIONS false diff --git a/MqttTopics.h b/MqttTopics.h index 1bd34c5..f96b612 100644 --- a/MqttTopics.h +++ b/MqttTopics.h @@ -14,6 +14,7 @@ #define mqtt_topic_query_lockstate "/lock/query/lockstate" #define mqtt_topic_query_keypad "/lock/query/keypad" #define mqtt_topic_query_battery "/lock/query/battery" +#define mqtt_topic_query_lockstate_command_result "/lock/query/lockstateCommandResult" #define mqtt_topic_lock_binary_state "/lock/binaryState" #define mqtt_topic_lock_trigger "/lock/trigger" #define mqtt_topic_lock_last_lock_action "/lock/lastLockAction" diff --git a/NetworkLock.cpp b/NetworkLock.cpp index 4e9b658..125e68c 100644 --- a/NetworkLock.cpp +++ b/NetworkLock.cpp @@ -398,6 +398,11 @@ void NetworkLock::publishCommandResult(const char *resultStr) publishString(mqtt_topic_lock_action_command_result, resultStr); } +void NetworkLock::publishLockstateCommandResult(const char *resultStr) +{ + publishString(mqtt_topic_query_lockstate_command_result, resultStr); +} + void NetworkLock::publishBatteryReport(const NukiLock::BatteryReport& batteryReport) { publishFloat(mqtt_topic_battery_voltage, (float)batteryReport.batteryVoltage / 1000.0); diff --git a/NetworkLock.h b/NetworkLock.h index 9022f70..d722d3d 100644 --- a/NetworkLock.h +++ b/NetworkLock.h @@ -24,6 +24,7 @@ public: void publishAuthorizationInfo(const std::list& logEntries); void clearAuthorizationInfo(); void publishCommandResult(const char* resultStr); + void publishLockstateCommandResult(const char* resultStr); void publishBatteryReport(const NukiLock::BatteryReport& batteryReport); void publishConfig(const NukiLock::Config& config); void publishAdvancedConfig(const NukiLock::AdvancedConfig& config); diff --git a/NetworkOpener.cpp b/NetworkOpener.cpp index 99bcb71..0650a5d 100644 --- a/NetworkOpener.cpp +++ b/NetworkOpener.cpp @@ -443,6 +443,11 @@ void NetworkOpener::publishCommandResult(const char *resultStr) publishString(mqtt_topic_lock_action_command_result, resultStr); } +void NetworkOpener::publishLockstateCommandResult(const char *resultStr) +{ + publishString(mqtt_topic_query_lockstate_command_result, resultStr); +} + void NetworkOpener::publishBatteryReport(const NukiOpener::BatteryReport& batteryReport) { publishFloat(mqtt_topic_battery_voltage, (float)batteryReport.batteryVoltage / 1000.0); diff --git a/NetworkOpener.h b/NetworkOpener.h index 00c3792..a868dcf 100644 --- a/NetworkOpener.h +++ b/NetworkOpener.h @@ -24,6 +24,7 @@ public: void publishAuthorizationInfo(const std::list& logEntries); void clearAuthorizationInfo(); void publishCommandResult(const char* resultStr); + void publishLockstateCommandResult(const char* resultStr); void publishBatteryReport(const NukiOpener::BatteryReport& batteryReport); void publishConfig(const NukiOpener::Config& config); void publishAdvancedConfig(const NukiOpener::AdvancedConfig& config); diff --git a/NukiOpenerWrapper.cpp b/NukiOpenerWrapper.cpp index 36acc7b..9ce61c5 100644 --- a/NukiOpenerWrapper.cpp +++ b/NukiOpenerWrapper.cpp @@ -272,6 +272,12 @@ void NukiOpenerWrapper::updateKeyTurnerState() { Log->print(F("Querying opener state: ")); Nuki::CmdResult result =_nukiOpener.requestOpenerState(&_keyTurnerState); + + char resultStr[15]; + memset(&resultStr, 0, sizeof(resultStr)); + NukiOpener::cmdResultToString(result, resultStr); + _network->publishLockstateCommandResult(resultStr); + if(result != Nuki::CmdResult::Success) { _retryLockstateCount++; diff --git a/NukiWrapper.cpp b/NukiWrapper.cpp index b988aeb..6473036 100644 --- a/NukiWrapper.cpp +++ b/NukiWrapper.cpp @@ -288,6 +288,12 @@ void NukiWrapper::updateKeyTurnerState() { Log->print(F("Querying lock state: ")); Nuki::CmdResult result =_nukiLock.requestKeyTurnerState(&_keyTurnerState); + + char resultStr[15]; + memset(&resultStr, 0, sizeof(resultStr)); + NukiLock::cmdResultToString(result, resultStr); + _network->publishLockstateCommandResult(resultStr); + if(result != Nuki::CmdResult::Success) { _retryLockstateCount++;