publish last lock state

This commit is contained in:
technyon
2023-02-24 23:05:49 +01:00
parent e492ae902b
commit 842af0358d
4 changed files with 15 additions and 6 deletions

View File

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

View File

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

View File

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

View File

@@ -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<NukiOpener::LogEntr
{
case NukiOpener::LoggingType::LockAction:
memset(str, 0, sizeof(str));
NukiLock::lockactionToString((NukiLock::LockAction)log.data[0], str);
lockactionToString((NukiOpener::LockAction)log.data[0], str);
json.concat("\"action\": \""); json.concat(str); json.concat("\",\n");
memset(str, 0, sizeof(str));
NukiLock::triggerToString((NukiLock::Trigger)log.data[1], str);
triggerToString((NukiOpener::Trigger)log.data[1], str);
json.concat("\"trigger\": \""); json.concat(str); json.concat("\",\n");
memset(str, 0, sizeof(str));
@@ -315,11 +316,11 @@ void NetworkOpener::publishAuthorizationInfo(const std::list<NukiOpener::LogEntr
break;
case NukiOpener::LoggingType::KeypadAction:
memset(str, 0, sizeof(str));
NukiLock::lockactionToString((NukiLock::LockAction)log.data[0], str);
lockactionToString((NukiOpener::LockAction)log.data[0], str);
json.concat("\"action\": \""); json.concat(str); json.concat("\",\n");
memset(str, 0, sizeof(str));
NukiLock::completionStatusToString((NukiLock::CompletionStatus)log.data[2], str);
completionStatusToString((NukiOpener::CompletionStatus)log.data[2], str);
json.concat("\"completionStatus\": \""); json.concat(str); json.concat("\"\n");
break;
case NukiOpener::LoggingType::DoorbellRecognition: