From 1a42f4264e21c1090fd9ef04a65fbd0fe51ef5c9 Mon Sep 17 00:00:00 2001 From: iranl Date: Mon, 15 Sep 2025 22:17:01 +0200 Subject: [PATCH] Fix rolling log --- src/NukiNetworkLock.cpp | 5 +++++ src/NukiNetworkOpener.cpp | 5 +++++ src/NukiOpenerWrapper.cpp | 1 + src/NukiWrapper.cpp | 1 + src/PreferencesKeys.h | 2 ++ 5 files changed, 14 insertions(+) diff --git a/src/NukiNetworkLock.cpp b/src/NukiNetworkLock.cpp index 8141b38..6e6a377 100644 --- a/src/NukiNetworkLock.cpp +++ b/src/NukiNetworkLock.cpp @@ -35,6 +35,8 @@ NukiNetworkLock::~NukiNetworkLock() void NukiNetworkLock::initialize() { + _lastRollingLog = _preferences->getInt(preference_lock_log_num, 0); + String mqttPath = _preferences->getString(preference_mqtt_lock_path, ""); mqttPath.concat("/lock"); @@ -203,6 +205,7 @@ void NukiNetworkLock::onMqttDataReceived(const char* topic, byte* payload, const return; } + /* if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last)) { if(strcmp(data, "") == 0 || @@ -216,6 +219,7 @@ void NukiNetworkLock::onMqttDataReceived(const char* topic, byte* payload, const _lastRollingLog = atoi(data); } } + */ if(_nukiOfficial->getOffEnabled()) { @@ -770,6 +774,7 @@ void NukiNetworkLock::publishAuthorizationInfo(const std::list _lastRollingLog) { _lastRollingLog = log.index; + _preferences->putInt(preference_lock_log_num, _lastRollingLog); serializeJson(entry, _buffer, _bufferSize); _nukiPublisher->publishString(mqtt_topic_lock_log_rolling, _buffer, true); _nukiPublisher->publishInt(mqtt_topic_lock_log_rolling_last, log.index, true); diff --git a/src/NukiNetworkOpener.cpp b/src/NukiNetworkOpener.cpp index 4c8395d..6685699 100644 --- a/src/NukiNetworkOpener.cpp +++ b/src/NukiNetworkOpener.cpp @@ -23,6 +23,8 @@ NukiNetworkOpener::NukiNetworkOpener(NukiNetwork* network, Preferences* preferen void NukiNetworkOpener::initialize() { + _lastRollingLog = _preferences->getInt(preference_opener_log_num, 0); + String mqttPath = _preferences->getString(preference_mqtt_lock_path, ""); mqttPath.concat("/opener"); @@ -155,6 +157,7 @@ void NukiNetworkOpener::onMqttDataReceived(const char* topic, byte* payload, con return; } + /* if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last)) { if(strcmp(data, "") == 0 || @@ -168,6 +171,7 @@ void NukiNetworkOpener::onMqttDataReceived(const char* topic, byte* payload, con _lastRollingLog = atoi(data); } } + */ if(comparePrefixedPath(topic, mqtt_topic_lock_action)) { @@ -684,6 +688,7 @@ void NukiNetworkOpener::publishAuthorizationInfo(const std::listputInt(preference_opener_log_num, _lastRollingLog); } } diff --git a/src/NukiOpenerWrapper.cpp b/src/NukiOpenerWrapper.cpp index f20680b..d513968 100644 --- a/src/NukiOpenerWrapper.cpp +++ b/src/NukiOpenerWrapper.cpp @@ -485,6 +485,7 @@ uint16_t NukiOpenerWrapper::getPin() void NukiOpenerWrapper::unpair() { _nukiOpener.unPairNuki(); + _preferences->remove(preference_opener_log_num); Preferences nukiBlePref; nukiBlePref.begin("NukiHubopener", false); nukiBlePref.clear(); diff --git a/src/NukiWrapper.cpp b/src/NukiWrapper.cpp index 544f349..1bf90c1 100644 --- a/src/NukiWrapper.cpp +++ b/src/NukiWrapper.cpp @@ -517,6 +517,7 @@ uint32_t NukiWrapper::getUltraPin() void NukiWrapper::unpair() { _nukiLock.unPairNuki(); + _preferences->remove(preference_lock_log_num); Preferences nukiBlePref; nukiBlePref.begin("NukiHub", false); nukiBlePref.clear(); diff --git a/src/PreferencesKeys.h b/src/PreferencesKeys.h index 04d281e..0a726f0 100644 --- a/src/PreferencesKeys.h +++ b/src/PreferencesKeys.h @@ -182,6 +182,8 @@ #define preference_latest_version (char*)"latest" #define preference_reset_mqtt_topics (char*)"rstMqtt" #define preference_nukihub_id (char*)"nukihubId" +#define preference_lock_log_num (char*)"lckLgNm" +#define preference_opener_log_num (char*)"opLgNm" //OBSOLETE #define preference_access_level (char*)"accLvl"