Add extra checks and auto retries
This commit is contained in:
@@ -396,10 +396,11 @@ void NukiOpenerWrapper::updateConfig()
|
|||||||
readConfig();
|
readConfig();
|
||||||
readAdvancedConfig();
|
readAdvancedConfig();
|
||||||
_configRead = true;
|
_configRead = true;
|
||||||
|
bool expectedConfig = true;
|
||||||
|
|
||||||
if(_nukiConfigValid)
|
if(_nukiConfigValid)
|
||||||
{
|
{
|
||||||
if(_preferences->getUInt(preference_nuki_id_opener, 0) == 0)
|
if(_preferences->getUInt(preference_nuki_id_opener, 0) == 0 || _retryConfigCount == 10)
|
||||||
{
|
{
|
||||||
_preferences->putUInt(preference_nuki_id_opener, _nukiConfig.nukiId);
|
_preferences->putUInt(preference_nuki_id_opener, _nukiConfig.nukiId);
|
||||||
}
|
}
|
||||||
@@ -410,11 +411,33 @@ void NukiOpenerWrapper::updateConfig()
|
|||||||
_firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]);
|
_firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]);
|
||||||
_hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]);
|
_hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]);
|
||||||
_network->publishConfig(_nukiConfig);
|
_network->publishConfig(_nukiConfig);
|
||||||
|
_retryConfigCount = 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
}
|
}
|
||||||
if(_nukiAdvancedConfigValid && _preferences->getUInt(preference_nuki_id_opener, 0) == _nukiConfig.nukiId)
|
if(_nukiAdvancedConfigValid && _preferences->getUInt(preference_nuki_id_opener, 0) == _nukiConfig.nukiId)
|
||||||
{
|
{
|
||||||
_network->publishAdvancedConfig(_nukiAdvancedConfig);
|
_network->publishAdvancedConfig(_nukiAdvancedConfig);
|
||||||
|
_retryConfigCount = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
|
}
|
||||||
|
if(!expectedConfig && _retryConfigCount < 11)
|
||||||
|
{
|
||||||
|
unsigned long ts = millis();
|
||||||
|
_nextConfigUpdateTs = ts + 60000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ private:
|
|||||||
int _nrOfRetries = 0;
|
int _nrOfRetries = 0;
|
||||||
int _retryDelay = 0;
|
int _retryDelay = 0;
|
||||||
int _retryCount = 0;
|
int _retryCount = 0;
|
||||||
|
int _retryConfigCount = 0;
|
||||||
int _retryLockstateCount = 0;
|
int _retryLockstateCount = 0;
|
||||||
unsigned long _nextRetryTs = 0;
|
unsigned long _nextRetryTs = 0;
|
||||||
std::vector<uint16_t> _keypadCodeIds;
|
std::vector<uint16_t> _keypadCodeIds;
|
||||||
|
|||||||
@@ -362,10 +362,11 @@ void NukiWrapper::updateConfig()
|
|||||||
readConfig();
|
readConfig();
|
||||||
readAdvancedConfig();
|
readAdvancedConfig();
|
||||||
_configRead = true;
|
_configRead = true;
|
||||||
|
bool expectedConfig = true;
|
||||||
|
|
||||||
if(_nukiConfigValid)
|
if(_nukiConfigValid)
|
||||||
{
|
{
|
||||||
if(_preferences->getUInt(preference_nuki_id_lock, 0) == 0)
|
if(_preferences->getUInt(preference_nuki_id_lock, 0) == 0 || _retryConfigCount == 10)
|
||||||
{
|
{
|
||||||
_preferences->putUInt(preference_nuki_id_lock, _nukiConfig.nukiId);
|
_preferences->putUInt(preference_nuki_id_lock, _nukiConfig.nukiId);
|
||||||
}
|
}
|
||||||
@@ -376,11 +377,33 @@ void NukiWrapper::updateConfig()
|
|||||||
_firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]);
|
_firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]);
|
||||||
_hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]);
|
_hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]);
|
||||||
_network->publishConfig(_nukiConfig);
|
_network->publishConfig(_nukiConfig);
|
||||||
|
_retryConfigCount = 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
}
|
}
|
||||||
if(_nukiAdvancedConfigValid && _preferences->getUInt(preference_nuki_id_lock, 0) == _nukiConfig.nukiId)
|
if(_nukiAdvancedConfigValid && _preferences->getUInt(preference_nuki_id_lock, 0) == _nukiConfig.nukiId)
|
||||||
{
|
{
|
||||||
_network->publishAdvancedConfig(_nukiAdvancedConfig);
|
_network->publishAdvancedConfig(_nukiAdvancedConfig);
|
||||||
|
_retryConfigCount = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
expectedConfig = false;
|
||||||
|
++_retryConfigCount;
|
||||||
|
}
|
||||||
|
if(!expectedConfig && _retryConfigCount < 11)
|
||||||
|
{
|
||||||
|
unsigned long ts = millis();
|
||||||
|
_nextConfigUpdateTs = ts + 60000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ private:
|
|||||||
int _nrOfRetries = 0;
|
int _nrOfRetries = 0;
|
||||||
int _retryDelay = 0;
|
int _retryDelay = 0;
|
||||||
int _retryCount = 0;
|
int _retryCount = 0;
|
||||||
|
int _retryConfigCount = 0;
|
||||||
int _retryLockstateCount = 0;
|
int _retryLockstateCount = 0;
|
||||||
long _rssiPublishInterval = 0;
|
long _rssiPublishInterval = 0;
|
||||||
unsigned long _nextRetryTs = 0;
|
unsigned long _nextRetryTs = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user