Merge pull request #692 from iranl/fix-rolling-log

Save rolling log to preferences
This commit is contained in:
iranl
2025-09-15 22:28:20 +02:00
committed by GitHub
5 changed files with 14 additions and 0 deletions

View File

@@ -35,6 +35,8 @@ NukiNetworkLock::~NukiNetworkLock()
void NukiNetworkLock::initialize() void NukiNetworkLock::initialize()
{ {
_lastRollingLog = _preferences->getInt(preference_lock_log_num, 0);
String mqttPath = _preferences->getString(preference_mqtt_lock_path, ""); String mqttPath = _preferences->getString(preference_mqtt_lock_path, "");
mqttPath.concat("/lock"); mqttPath.concat("/lock");
@@ -203,6 +205,7 @@ void NukiNetworkLock::onMqttDataReceived(const char* topic, byte* payload, const
return; return;
} }
/*
if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last)) if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last))
{ {
if(strcmp(data, "") == 0 || if(strcmp(data, "") == 0 ||
@@ -216,6 +219,7 @@ void NukiNetworkLock::onMqttDataReceived(const char* topic, byte* payload, const
_lastRollingLog = atoi(data); _lastRollingLog = atoi(data);
} }
} }
*/
if(_nukiOfficial->getOffEnabled()) if(_nukiOfficial->getOffEnabled())
{ {
@@ -770,6 +774,7 @@ void NukiNetworkLock::publishAuthorizationInfo(const std::list<NukiLock::LogEntr
if(log.index > _lastRollingLog) if(log.index > _lastRollingLog)
{ {
_lastRollingLog = log.index; _lastRollingLog = log.index;
_preferences->putInt(preference_lock_log_num, _lastRollingLog);
serializeJson(entry, _buffer, _bufferSize); serializeJson(entry, _buffer, _bufferSize);
_nukiPublisher->publishString(mqtt_topic_lock_log_rolling, _buffer, true); _nukiPublisher->publishString(mqtt_topic_lock_log_rolling, _buffer, true);
_nukiPublisher->publishInt(mqtt_topic_lock_log_rolling_last, log.index, true); _nukiPublisher->publishInt(mqtt_topic_lock_log_rolling_last, log.index, true);

View File

@@ -23,6 +23,8 @@ NukiNetworkOpener::NukiNetworkOpener(NukiNetwork* network, Preferences* preferen
void NukiNetworkOpener::initialize() void NukiNetworkOpener::initialize()
{ {
_lastRollingLog = _preferences->getInt(preference_opener_log_num, 0);
String mqttPath = _preferences->getString(preference_mqtt_lock_path, ""); String mqttPath = _preferences->getString(preference_mqtt_lock_path, "");
mqttPath.concat("/opener"); mqttPath.concat("/opener");
@@ -155,6 +157,7 @@ void NukiNetworkOpener::onMqttDataReceived(const char* topic, byte* payload, con
return; return;
} }
/*
if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last)) if(comparePrefixedPath(topic, mqtt_topic_lock_log_rolling_last))
{ {
if(strcmp(data, "") == 0 || if(strcmp(data, "") == 0 ||
@@ -168,6 +171,7 @@ void NukiNetworkOpener::onMqttDataReceived(const char* topic, byte* payload, con
_lastRollingLog = atoi(data); _lastRollingLog = atoi(data);
} }
} }
*/
if(comparePrefixedPath(topic, mqtt_topic_lock_action)) if(comparePrefixedPath(topic, mqtt_topic_lock_action))
{ {
@@ -684,6 +688,7 @@ void NukiNetworkOpener::publishAuthorizationInfo(const std::list<NukiOpener::Log
} }
_lastRollingLog = log.index; _lastRollingLog = log.index;
_preferences->putInt(preference_opener_log_num, _lastRollingLog);
} }
} }

View File

@@ -485,6 +485,7 @@ uint16_t NukiOpenerWrapper::getPin()
void NukiOpenerWrapper::unpair() void NukiOpenerWrapper::unpair()
{ {
_nukiOpener.unPairNuki(); _nukiOpener.unPairNuki();
_preferences->remove(preference_opener_log_num);
Preferences nukiBlePref; Preferences nukiBlePref;
nukiBlePref.begin("NukiHubopener", false); nukiBlePref.begin("NukiHubopener", false);
nukiBlePref.clear(); nukiBlePref.clear();

View File

@@ -517,6 +517,7 @@ uint32_t NukiWrapper::getUltraPin()
void NukiWrapper::unpair() void NukiWrapper::unpair()
{ {
_nukiLock.unPairNuki(); _nukiLock.unPairNuki();
_preferences->remove(preference_lock_log_num);
Preferences nukiBlePref; Preferences nukiBlePref;
nukiBlePref.begin("NukiHub", false); nukiBlePref.begin("NukiHub", false);
nukiBlePref.clear(); nukiBlePref.clear();

View File

@@ -182,6 +182,8 @@
#define preference_latest_version (char*)"latest" #define preference_latest_version (char*)"latest"
#define preference_reset_mqtt_topics (char*)"rstMqtt" #define preference_reset_mqtt_topics (char*)"rstMqtt"
#define preference_nukihub_id (char*)"nukihubId" #define preference_nukihub_id (char*)"nukihubId"
#define preference_lock_log_num (char*)"lckLgNm"
#define preference_opener_log_num (char*)"opLgNm"
//OBSOLETE //OBSOLETE
#define preference_access_level (char*)"accLvl" #define preference_access_level (char*)"accLvl"