publish lock state query command result

This commit is contained in:
technyon
2023-03-06 17:22:23 +01:00
parent bf3977b130
commit b5da2a5a52
8 changed files with 26 additions and 1 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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);

View File

@@ -24,6 +24,7 @@ public:
void publishAuthorizationInfo(const std::list<NukiLock::LogEntry>& 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);

View File

@@ -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);

View File

@@ -24,6 +24,7 @@ public:
void publishAuthorizationInfo(const std::list<NukiOpener::LogEntry>& 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);

View File

@@ -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++;

View File

@@ -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++;