Make retryCount local in NukiWrapper and NukiOpenerWrapper (#468)
* make retryCount local in NukiWrapper * make retry count local for opener
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#define NUKI_HUB_VERSION "9.01"
|
#define NUKI_HUB_VERSION "9.01"
|
||||||
#define NUKI_HUB_BUILD "unknownbuildnr"
|
#define NUKI_HUB_BUILD "unknownbuildnr"
|
||||||
#define NUKI_HUB_DATE "unknownbuilddate"
|
#define NUKI_HUB_DATE "2024-08-31"
|
||||||
|
|
||||||
#define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest"
|
#define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest"
|
||||||
#define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json"
|
#define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json"
|
||||||
|
|||||||
@@ -256,10 +256,10 @@ void NukiOpenerWrapper::update()
|
|||||||
|
|
||||||
if(_nextLockAction != (NukiOpener::LockAction)0xff)
|
if(_nextLockAction != (NukiOpener::LockAction)0xff)
|
||||||
{
|
{
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
Nuki::CmdResult cmdResult;
|
Nuki::CmdResult cmdResult = (Nuki::CmdResult)-1;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1 && cmdResult != Nuki::CmdResult::Success)
|
while(retryCount < _nrOfRetries + 1 && cmdResult != Nuki::CmdResult::Success)
|
||||||
{
|
{
|
||||||
cmdResult = _nukiOpener.lockAction(_nextLockAction, 0, 0);
|
cmdResult = _nukiOpener.lockAction(_nextLockAction, 0, 0);
|
||||||
char resultStr[15] = {0};
|
char resultStr[15] = {0};
|
||||||
@@ -275,15 +275,15 @@ void NukiOpenerWrapper::update()
|
|||||||
Log->print(F("Opener: Last command failed, retrying after "));
|
Log->print(F("Opener: Last command failed, retrying after "));
|
||||||
Log->print(_retryDelay);
|
Log->print(_retryDelay);
|
||||||
Log->print(F(" milliseconds. Retry "));
|
Log->print(F(" milliseconds. Retry "));
|
||||||
Log->print(_retryCount + 1);
|
Log->print(retryCount + 1);
|
||||||
Log->print(" of ");
|
Log->print(" of ");
|
||||||
Log->println(_nrOfRetries);
|
Log->println(_nrOfRetries);
|
||||||
|
|
||||||
_network->publishRetry(std::to_string(_retryCount + 1));
|
_network->publishRetry(std::to_string(retryCount + 1));
|
||||||
|
|
||||||
delay(_retryDelay);
|
delay(_retryDelay);
|
||||||
|
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
postponeBleWatchdog();
|
postponeBleWatchdog();
|
||||||
}
|
}
|
||||||
@@ -292,14 +292,14 @@ void NukiOpenerWrapper::update()
|
|||||||
{
|
{
|
||||||
_nextLockAction = (NukiOpener::LockAction) 0xff;
|
_nextLockAction = (NukiOpener::LockAction) 0xff;
|
||||||
_network->publishRetry("--");
|
_network->publishRetry("--");
|
||||||
_retryCount = 0;
|
retryCount = 0;
|
||||||
if(_intervalLockstate > 10) _nextLockStateUpdateTs = ts + 10 * 1000;
|
if(_intervalLockstate > 10) _nextLockStateUpdateTs = ts + 10 * 1000;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log->println(F("Opener: Maximum number of retries exceeded, aborting."));
|
Log->println(F("Opener: Maximum number of retries exceeded, aborting."));
|
||||||
_network->publishRetry("failed");
|
_network->publishRetry("failed");
|
||||||
_retryCount = 0;
|
retryCount = 0;
|
||||||
_nextLockAction = (NukiOpener::LockAction) 0xff;
|
_nextLockAction = (NukiOpener::LockAction) 0xff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -380,17 +380,15 @@ void NukiOpenerWrapper::unpair()
|
|||||||
void NukiOpenerWrapper::updateKeyTurnerState()
|
void NukiOpenerWrapper::updateKeyTurnerState()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(result != Nuki::CmdResult::Success && retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying opener state: "));
|
Log->print(F("Result (attempt "));
|
||||||
|
Log->print(retryCount + 1);
|
||||||
|
Log->print("): ");
|
||||||
result =_nukiOpener.requestOpenerState(&_keyTurnerState);
|
result =_nukiOpener.requestOpenerState(&_keyTurnerState);
|
||||||
|
++retryCount;
|
||||||
if(result != Nuki::CmdResult::Success) {
|
|
||||||
++_retryCount;
|
|
||||||
}
|
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char resultStr[15];
|
char resultStr[15];
|
||||||
@@ -455,15 +453,15 @@ void NukiOpenerWrapper::updateKeyTurnerState()
|
|||||||
void NukiOpenerWrapper::updateBatteryState()
|
void NukiOpenerWrapper::updateBatteryState()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying opener battery state: "));
|
Log->print(F("Querying opener battery state: "));
|
||||||
result = _nukiOpener.requestBatteryReport(&_batteryReport);
|
result = _nukiOpener.requestBatteryReport(&_batteryReport);
|
||||||
delay(250);
|
delay(250);
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -511,15 +509,15 @@ void NukiOpenerWrapper::updateConfig()
|
|||||||
|
|
||||||
if(isPinSet()) {
|
if(isPinSet()) {
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
Log->println(F("Nuki opener PIN is set"));
|
Log->println(F("Nuki opener PIN is set"));
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiOpener.verifySecurityPin();
|
result = _nukiOpener.verifySecurityPin();
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -599,15 +597,15 @@ void NukiOpenerWrapper::updateAuthData(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Retrieve log entries: "));
|
Log->print(F("Retrieve log entries: "));
|
||||||
result = _nukiOpener.retrieveLogEntries(0, _preferences->getInt(preference_authlog_max_entries, MAX_AUTHLOG), 1, false);
|
result = _nukiOpener.retrieveLogEntries(0, _preferences->getInt(preference_authlog_max_entries, MAX_AUTHLOG), 1, false);
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -672,15 +670,15 @@ void NukiOpenerWrapper::updateKeypad(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying opener keypad: "));
|
Log->print(F("Querying opener keypad: "));
|
||||||
result = _nukiOpener.retrieveKeypadEntries(0, _preferences->getInt(preference_keypad_max_entries, MAX_KEYPAD));
|
result = _nukiOpener.retrieveKeypadEntries(0, _preferences->getInt(preference_keypad_max_entries, MAX_KEYPAD));
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -739,15 +737,15 @@ void NukiOpenerWrapper::updateTimeControl(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying opener timecontrol: "));
|
Log->print(F("Querying opener timecontrol: "));
|
||||||
result = _nukiOpener.retrieveTimeControlEntries();
|
result = _nukiOpener.retrieveTimeControlEntries();
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -800,15 +798,15 @@ void NukiOpenerWrapper::updateAuth(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries)
|
while(retryCount < _nrOfRetries)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying opener authorization: "));
|
Log->print(F("Querying opener authorization: "));
|
||||||
result = _nukiOpener.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH));
|
result = _nukiOpener.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH));
|
||||||
delay(250);
|
delay(250);
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1098,9 +1096,9 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
if((int)_basicOpenerConfigAclPrefs[i] == 1)
|
if((int)_basicOpenerConfigAclPrefs[i] == 1)
|
||||||
{
|
{
|
||||||
cmdResult = Nuki::CmdResult::Error;
|
cmdResult = Nuki::CmdResult::Error;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(basicKeys[i], "name") == 0)
|
if(strcmp(basicKeys[i], "name") == 0)
|
||||||
{
|
{
|
||||||
@@ -1256,7 +1254,7 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(cmdResult != Nuki::CmdResult::Success) {
|
if(cmdResult != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1288,9 +1286,9 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
if((int)_advancedOpenerConfigAclPrefs[j] == 1)
|
if((int)_advancedOpenerConfigAclPrefs[j] == 1)
|
||||||
{
|
{
|
||||||
cmdResult = Nuki::CmdResult::Error;
|
cmdResult = Nuki::CmdResult::Error;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(advancedKeys[j], "intercomID") == 0)
|
if(strcmp(advancedKeys[j], "intercomID") == 0)
|
||||||
{
|
{
|
||||||
@@ -1513,8 +1511,9 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
else jsonResult[advancedKeys[j]] = "invalidValue";
|
else jsonResult[advancedKeys[j]] = "invalidValue";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cmdResult != Nuki::CmdResult::Success) {
|
if(cmdResult != Nuki::CmdResult::Success)
|
||||||
++_retryCount;
|
{
|
||||||
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1614,9 +1613,9 @@ void NukiOpenerWrapper::onKeypadCommandReceived(const char *command, const uint
|
|||||||
int codeInt = code.toInt();
|
int codeInt = code.toInt();
|
||||||
bool codeValid = codeInt > 100000 && codeInt < 1000000 && (code.indexOf('0') == -1);
|
bool codeValid = codeInt > 100000 && codeInt < 1000000 && (code.indexOf('0') == -1);
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(command, "add") == 0)
|
if(strcmp(command, "add") == 0)
|
||||||
{
|
{
|
||||||
@@ -1705,7 +1704,7 @@ void NukiOpenerWrapper::onKeypadCommandReceived(const char *command, const uint
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1799,9 +1798,9 @@ void NukiOpenerWrapper::onKeypadJsonCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0) {
|
||||||
if(idExists)
|
if(idExists)
|
||||||
@@ -2151,7 +2150,7 @@ void NukiOpenerWrapper::onKeypadJsonCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2238,9 +2237,9 @@ void NukiOpenerWrapper::onTimeControlCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0) {
|
||||||
if(idExists)
|
if(idExists)
|
||||||
@@ -2377,7 +2376,7 @@ void NukiOpenerWrapper::onTimeControlCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2471,11 +2470,12 @@ void NukiOpenerWrapper::onAuthCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries)
|
while(retryCount < _nrOfRetries)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0)
|
||||||
|
{
|
||||||
if(idExists)
|
if(idExists)
|
||||||
{
|
{
|
||||||
result = _nukiOpener.deleteAuthorizationEntry(authId);
|
result = _nukiOpener.deleteAuthorizationEntry(authId);
|
||||||
@@ -2835,7 +2835,7 @@ void NukiOpenerWrapper::onAuthCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2895,15 +2895,15 @@ void NukiOpenerWrapper::notify(Nuki::EventType eventType)
|
|||||||
void NukiOpenerWrapper::readConfig()
|
void NukiOpenerWrapper::readConfig()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiOpener.requestConfig(&_nukiConfig);
|
result = _nukiOpener.requestConfig(&_nukiConfig);
|
||||||
_nukiConfigValid = result == Nuki::CmdResult::Success;
|
_nukiConfigValid = result == Nuki::CmdResult::Success;
|
||||||
|
|
||||||
if(!_nukiConfigValid) {
|
if(!_nukiConfigValid) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2921,15 +2921,15 @@ void NukiOpenerWrapper::readConfig()
|
|||||||
void NukiOpenerWrapper::readAdvancedConfig()
|
void NukiOpenerWrapper::readAdvancedConfig()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiOpener.requestAdvancedConfig(&_nukiAdvancedConfig);
|
result = _nukiOpener.requestAdvancedConfig(&_nukiAdvancedConfig);
|
||||||
_nukiAdvancedConfigValid = result == Nuki::CmdResult::Success;
|
_nukiAdvancedConfigValid = result == Nuki::CmdResult::Success;
|
||||||
|
|
||||||
if(!_nukiAdvancedConfigValid) {
|
if(!_nukiAdvancedConfigValid) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,7 +108,6 @@ private:
|
|||||||
bool _disableNonJSON = false;
|
bool _disableNonJSON = false;
|
||||||
int _nrOfRetries = 0;
|
int _nrOfRetries = 0;
|
||||||
int _retryDelay = 0;
|
int _retryDelay = 0;
|
||||||
int _retryCount = 0;
|
|
||||||
int _retryConfigCount = 0;
|
int _retryConfigCount = 0;
|
||||||
int _retryLockstateCount = 0;
|
int _retryLockstateCount = 0;
|
||||||
int64_t _nextRetryTs = 0;
|
int64_t _nextRetryTs = 0;
|
||||||
|
|||||||
@@ -257,10 +257,10 @@ void NukiWrapper::update()
|
|||||||
}
|
}
|
||||||
if(_nextLockAction != (NukiLock::LockAction)0xff)
|
if(_nextLockAction != (NukiLock::LockAction)0xff)
|
||||||
{
|
{
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
Nuki::CmdResult cmdResult;
|
Nuki::CmdResult cmdResult;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1 && cmdResult != Nuki::CmdResult::Success)
|
while(retryCount < _nrOfRetries + 1 && cmdResult != Nuki::CmdResult::Success)
|
||||||
{
|
{
|
||||||
cmdResult = _nukiLock.lockAction(_nextLockAction, 0, 0);
|
cmdResult = _nukiLock.lockAction(_nextLockAction, 0, 0);
|
||||||
char resultStr[15] = {0};
|
char resultStr[15] = {0};
|
||||||
@@ -275,15 +275,15 @@ void NukiWrapper::update()
|
|||||||
Log->print(F("Lock: Last command failed, retrying after "));
|
Log->print(F("Lock: Last command failed, retrying after "));
|
||||||
Log->print(_retryDelay);
|
Log->print(_retryDelay);
|
||||||
Log->print(F(" milliseconds. Retry "));
|
Log->print(F(" milliseconds. Retry "));
|
||||||
Log->print(_retryCount + 1);
|
Log->print(retryCount + 1);
|
||||||
Log->print(" of ");
|
Log->print(" of ");
|
||||||
Log->println(_nrOfRetries);
|
Log->println(_nrOfRetries);
|
||||||
|
|
||||||
_network->publishRetry(std::to_string(_retryCount + 1));
|
_network->publishRetry(std::to_string(retryCount + 1));
|
||||||
|
|
||||||
delay(_retryDelay);
|
delay(_retryDelay);
|
||||||
|
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
postponeBleWatchdog();
|
postponeBleWatchdog();
|
||||||
}
|
}
|
||||||
@@ -292,7 +292,7 @@ void NukiWrapper::update()
|
|||||||
{
|
{
|
||||||
_nextLockAction = (NukiLock::LockAction) 0xff;
|
_nextLockAction = (NukiLock::LockAction) 0xff;
|
||||||
_network->publishRetry("--");
|
_network->publishRetry("--");
|
||||||
_retryCount = 0;
|
retryCount = 0;
|
||||||
if(!_network->_offConnected) _statusUpdated = true; Log->println(F("Lock: updating status after action"));
|
if(!_network->_offConnected) _statusUpdated = true; Log->println(F("Lock: updating status after action"));
|
||||||
_statusUpdatedTs = ts;
|
_statusUpdatedTs = ts;
|
||||||
if(_intervalLockstate > 10) _nextLockStateUpdateTs = ts + 10 * 1000;
|
if(_intervalLockstate > 10) _nextLockStateUpdateTs = ts + 10 * 1000;
|
||||||
@@ -301,7 +301,7 @@ void NukiWrapper::update()
|
|||||||
{
|
{
|
||||||
Log->println(F("Lock: Maximum number of retries exceeded, aborting."));
|
Log->println(F("Lock: Maximum number of retries exceeded, aborting."));
|
||||||
_network->publishRetry("failed");
|
_network->publishRetry("failed");
|
||||||
_retryCount = 0;
|
retryCount = 0;
|
||||||
_nextLockAction = (NukiLock::LockAction) 0xff;
|
_nextLockAction = (NukiLock::LockAction) 0xff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -443,20 +443,17 @@ void NukiWrapper::unpair()
|
|||||||
void NukiWrapper::updateKeyTurnerState()
|
void NukiWrapper::updateKeyTurnerState()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
Log->println("Querying lock state");
|
Log->println(F("Querying lock state"));
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(result != Nuki::CmdResult::Success && retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Result (attempt "));
|
Log->print(F("Result (attempt "));
|
||||||
Log->print(_retryCount + 1);
|
Log->print(retryCount + 1);
|
||||||
Log->print("): ");
|
Log->print(F("): "));
|
||||||
result =_nukiLock.requestKeyTurnerState(&_keyTurnerState);
|
result =_nukiLock.requestKeyTurnerState(&_keyTurnerState);
|
||||||
if(result != Nuki::CmdResult::Success) {
|
++retryCount;
|
||||||
++_retryCount;
|
|
||||||
}
|
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char resultStr[15];
|
char resultStr[15];
|
||||||
@@ -519,19 +516,19 @@ void NukiWrapper::updateKeyTurnerState()
|
|||||||
void NukiWrapper::updateBatteryState()
|
void NukiWrapper::updateBatteryState()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
Log->println("Querying lock battery state");
|
Log->println("Querying lock battery state");
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Result (attempt "));
|
Log->print(F("Result (attempt "));
|
||||||
Log->print(_retryCount + 1);
|
Log->print(retryCount + 1);
|
||||||
Log->print("): ");
|
Log->print("): ");
|
||||||
result = _nukiLock.requestBatteryReport(&_batteryReport);
|
result = _nukiLock.requestBatteryReport(&_batteryReport);
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -578,14 +575,14 @@ void NukiWrapper::updateConfig()
|
|||||||
|
|
||||||
if(isPinSet()) {
|
if(isPinSet()) {
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
Log->println(F("Nuki Lock PIN is set"));
|
Log->println(F("Nuki Lock PIN is set"));
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiLock.verifySecurityPin();
|
result = _nukiLock.verifySecurityPin();
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -665,14 +662,14 @@ void NukiWrapper::updateAuthData(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Retrieve log entries: "));
|
Log->print(F("Retrieve log entries: "));
|
||||||
result = _nukiLock.retrieveLogEntries(0, _preferences->getInt(preference_authlog_max_entries, MAX_AUTHLOG), 1, false);
|
result = _nukiLock.retrieveLogEntries(0, _preferences->getInt(preference_authlog_max_entries, MAX_AUTHLOG), 1, false);
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -736,14 +733,14 @@ void NukiWrapper::updateKeypad(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying lock keypad: "));
|
Log->print(F("Querying lock keypad: "));
|
||||||
result = _nukiLock.retrieveKeypadEntries(0, _preferences->getInt(preference_keypad_max_entries, MAX_KEYPAD));
|
result = _nukiLock.retrieveKeypadEntries(0, _preferences->getInt(preference_keypad_max_entries, MAX_KEYPAD));
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -802,14 +799,14 @@ void NukiWrapper::updateTimeControl(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying lock timecontrol: "));
|
Log->print(F("Querying lock timecontrol: "));
|
||||||
result = _nukiLock.retrieveTimeControlEntries();
|
result = _nukiLock.retrieveTimeControlEntries();
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -862,15 +859,15 @@ void NukiWrapper::updateAuth(bool retrieved)
|
|||||||
if(!retrieved)
|
if(!retrieved)
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries)
|
while(retryCount < _nrOfRetries)
|
||||||
{
|
{
|
||||||
Log->print(F("Querying lock authorization: "));
|
Log->print(F("Querying lock authorization: "));
|
||||||
result = _nukiLock.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH));
|
result = _nukiLock.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH));
|
||||||
delay(250);
|
delay(250);
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1289,9 +1286,9 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
if((int)_basicLockConfigaclPrefs[i] == 1)
|
if((int)_basicLockConfigaclPrefs[i] == 1)
|
||||||
{
|
{
|
||||||
cmdResult = Nuki::CmdResult::Error;
|
cmdResult = Nuki::CmdResult::Error;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(basicKeys[i], "name") == 0)
|
if(strcmp(basicKeys[i], "name") == 0)
|
||||||
{
|
{
|
||||||
@@ -1469,7 +1466,7 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(cmdResult != Nuki::CmdResult::Success) {
|
if(cmdResult != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1501,9 +1498,9 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
if((int)_advancedLockConfigaclPrefs[j] == 1)
|
if((int)_advancedLockConfigaclPrefs[j] == 1)
|
||||||
{
|
{
|
||||||
cmdResult = Nuki::CmdResult::Error;
|
cmdResult = Nuki::CmdResult::Error;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(advancedKeys[j], "unlockedPositionOffsetDegrees") == 0)
|
if(strcmp(advancedKeys[j], "unlockedPositionOffsetDegrees") == 0)
|
||||||
{
|
{
|
||||||
@@ -1753,7 +1750,7 @@ void NukiWrapper::onConfigUpdateReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(cmdResult != Nuki::CmdResult::Success) {
|
if(cmdResult != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -1880,9 +1877,9 @@ void NukiWrapper::onKeypadCommandReceived(const char *command, const uint &id, c
|
|||||||
int codeInt = code.toInt();
|
int codeInt = code.toInt();
|
||||||
bool codeValid = codeInt > 100000 && codeInt < 1000000 && (code.indexOf('0') == -1);
|
bool codeValid = codeInt > 100000 && codeInt < 1000000 && (code.indexOf('0') == -1);
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(command, "add") == 0)
|
if(strcmp(command, "add") == 0)
|
||||||
{
|
{
|
||||||
@@ -1971,7 +1968,7 @@ void NukiWrapper::onKeypadCommandReceived(const char *command, const uint &id, c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2065,9 +2062,9 @@ void NukiWrapper::onKeypadJsonCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0) {
|
||||||
if(idExists)
|
if(idExists)
|
||||||
@@ -2417,7 +2414,7 @@ void NukiWrapper::onKeypadJsonCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2504,9 +2501,9 @@ void NukiWrapper::onTimeControlCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0) {
|
||||||
if(idExists)
|
if(idExists)
|
||||||
@@ -2645,7 +2642,7 @@ void NukiWrapper::onTimeControlCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -2739,9 +2736,9 @@ void NukiWrapper::onAuthCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries)
|
while(retryCount < _nrOfRetries)
|
||||||
{
|
{
|
||||||
if(strcmp(action, "delete") == 0) {
|
if(strcmp(action, "delete") == 0) {
|
||||||
if(idExists)
|
if(idExists)
|
||||||
@@ -3106,7 +3103,7 @@ void NukiWrapper::onAuthCommandReceived(const char *value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
@@ -3169,9 +3166,9 @@ void NukiWrapper::notify(Nuki::EventType eventType)
|
|||||||
void NukiWrapper::readConfig()
|
void NukiWrapper::readConfig()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiLock.requestConfig(&_nukiConfig);
|
result = _nukiLock.requestConfig(&_nukiConfig);
|
||||||
_nukiConfigValid = result == Nuki::CmdResult::Success;
|
_nukiConfigValid = result == Nuki::CmdResult::Success;
|
||||||
@@ -3182,7 +3179,7 @@ void NukiWrapper::readConfig()
|
|||||||
Log->println(resultStr);
|
Log->println(resultStr);
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
Log->println("Failed to retrieve lock config, retrying in 1s");
|
Log->println("Failed to retrieve lock config, retrying in 1s");
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
@@ -3193,9 +3190,9 @@ void NukiWrapper::readConfig()
|
|||||||
void NukiWrapper::readAdvancedConfig()
|
void NukiWrapper::readAdvancedConfig()
|
||||||
{
|
{
|
||||||
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
Nuki::CmdResult result = (Nuki::CmdResult)-1;
|
||||||
_retryCount = 0;
|
int retryCount = 0;
|
||||||
|
|
||||||
while(_retryCount < _nrOfRetries + 1)
|
while(retryCount < _nrOfRetries + 1)
|
||||||
{
|
{
|
||||||
result = _nukiLock.requestAdvancedConfig(&_nukiAdvancedConfig);
|
result = _nukiLock.requestAdvancedConfig(&_nukiAdvancedConfig);
|
||||||
_nukiAdvancedConfigValid = result == Nuki::CmdResult::Success;
|
_nukiAdvancedConfigValid = result == Nuki::CmdResult::Success;
|
||||||
@@ -3206,7 +3203,7 @@ void NukiWrapper::readAdvancedConfig()
|
|||||||
Log->println(resultStr);
|
Log->println(resultStr);
|
||||||
|
|
||||||
if(result != Nuki::CmdResult::Success) {
|
if(result != Nuki::CmdResult::Success) {
|
||||||
++_retryCount;
|
++retryCount;
|
||||||
Log->println("Failed to retrieve lock advanced config, retrying in 1s");
|
Log->println("Failed to retrieve lock advanced config, retrying in 1s");
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,7 +130,6 @@ private:
|
|||||||
uint _maxAuthEntryCount = 0;
|
uint _maxAuthEntryCount = 0;
|
||||||
int _nrOfRetries = 0;
|
int _nrOfRetries = 0;
|
||||||
int _retryDelay = 0;
|
int _retryDelay = 0;
|
||||||
int _retryCount = 0;
|
|
||||||
int _retryConfigCount = 0;
|
int _retryConfigCount = 0;
|
||||||
int _retryLockstateCount = 0;
|
int _retryLockstateCount = 0;
|
||||||
int _rssiPublishInterval = 0;
|
int _rssiPublishInterval = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user