only reboot after missing beacons if device has been detected at least once
This commit is contained in:
@@ -81,7 +81,8 @@ void NukiOpenerWrapper::update()
|
|||||||
Nuki::AuthorizationIdType::App :
|
Nuki::AuthorizationIdType::App :
|
||||||
Nuki::AuthorizationIdType::Bridge;
|
Nuki::AuthorizationIdType::Bridge;
|
||||||
|
|
||||||
if (_nukiOpener.pairNuki(idType) == NukiOpener::PairingResult::Success) {
|
if (_nukiOpener.pairNuki(idType) == NukiOpener::PairingResult::Success)
|
||||||
|
{
|
||||||
Log->println(F("Nuki opener paired"));
|
Log->println(F("Nuki opener paired"));
|
||||||
_paired = true;
|
_paired = true;
|
||||||
_network->publishBleAddress(_nukiOpener.getBleAddress().toString());
|
_network->publishBleAddress(_nukiOpener.getBleAddress().toString());
|
||||||
@@ -93,7 +94,12 @@ void NukiOpenerWrapper::update()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_restartBeaconTimeout > 0 && (millis() - _nukiOpener.getLastReceivedBeaconTs() > _restartBeaconTimeout * 1000))
|
unsigned long ts = millis();
|
||||||
|
unsigned long lastReceivedBeaconTs = _nukiOpener.getLastReceivedBeaconTs();
|
||||||
|
if(_restartBeaconTimeout > 0 &&
|
||||||
|
ts > 60000 &&
|
||||||
|
lastReceivedBeaconTs > 0 &&
|
||||||
|
(ts - lastReceivedBeaconTs > _restartBeaconTimeout * 1000))
|
||||||
{
|
{
|
||||||
Log->print("No BLE beacon received from the opener for ");
|
Log->print("No BLE beacon received from the opener for ");
|
||||||
Log->print((millis() - _nukiOpener.getLastReceivedBeaconTs()) / 1000);
|
Log->print((millis() - _nukiOpener.getLastReceivedBeaconTs()) / 1000);
|
||||||
@@ -104,8 +110,6 @@ void NukiOpenerWrapper::update()
|
|||||||
|
|
||||||
_nukiOpener.updateConnectionState();
|
_nukiOpener.updateConnectionState();
|
||||||
|
|
||||||
unsigned long ts = millis();
|
|
||||||
|
|
||||||
if(_statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs)
|
if(_statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs)
|
||||||
{
|
{
|
||||||
_nextLockStateUpdateTs = ts + _intervalLockstate * 1000;
|
_nextLockStateUpdateTs = ts + _intervalLockstate * 1000;
|
||||||
|
|||||||
@@ -87,10 +87,6 @@ void NukiWrapper::initialize()
|
|||||||
|
|
||||||
void NukiWrapper::update()
|
void NukiWrapper::update()
|
||||||
{
|
{
|
||||||
Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ?
|
|
||||||
Nuki::AuthorizationIdType::App :
|
|
||||||
Nuki::AuthorizationIdType::Bridge;
|
|
||||||
|
|
||||||
if (!_paired)
|
if (!_paired)
|
||||||
{
|
{
|
||||||
Log->println(F("Nuki start pairing"));
|
Log->println(F("Nuki start pairing"));
|
||||||
@@ -100,7 +96,8 @@ void NukiWrapper::update()
|
|||||||
Nuki::AuthorizationIdType::App :
|
Nuki::AuthorizationIdType::App :
|
||||||
Nuki::AuthorizationIdType::Bridge;
|
Nuki::AuthorizationIdType::Bridge;
|
||||||
|
|
||||||
if (_nukiLock.pairNuki(idType) == Nuki::PairingResult::Success) {
|
if (_nukiLock.pairNuki(idType) == Nuki::PairingResult::Success)
|
||||||
|
{
|
||||||
Log->println(F("Nuki paired"));
|
Log->println(F("Nuki paired"));
|
||||||
_paired = true;
|
_paired = true;
|
||||||
_network->publishBleAddress(_nukiLock.getBleAddress().toString());
|
_network->publishBleAddress(_nukiLock.getBleAddress().toString());
|
||||||
@@ -112,7 +109,12 @@ void NukiWrapper::update()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_restartBeaconTimeout > 0 && (millis() - _nukiLock.getLastReceivedBeaconTs() > _restartBeaconTimeout * 1000))
|
unsigned long ts = millis();
|
||||||
|
unsigned long lastReceivedBeaconTs = _nukiLock.getLastReceivedBeaconTs();
|
||||||
|
if(_restartBeaconTimeout > 0 &&
|
||||||
|
ts > 60000 &&
|
||||||
|
lastReceivedBeaconTs > 0 &&
|
||||||
|
(ts - lastReceivedBeaconTs > _restartBeaconTimeout * 1000))
|
||||||
{
|
{
|
||||||
Log->print("No BLE beacon received from the lock for ");
|
Log->print("No BLE beacon received from the lock for ");
|
||||||
Log->print((millis() - _nukiLock.getLastReceivedBeaconTs()) / 1000);
|
Log->print((millis() - _nukiLock.getLastReceivedBeaconTs()) / 1000);
|
||||||
@@ -123,8 +125,6 @@ void NukiWrapper::update()
|
|||||||
|
|
||||||
_nukiLock.updateConnectionState();
|
_nukiLock.updateConnectionState();
|
||||||
|
|
||||||
unsigned long ts = millis();
|
|
||||||
|
|
||||||
if(_statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs)
|
if(_statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs)
|
||||||
{
|
{
|
||||||
_statusUpdated = false;
|
_statusUpdated = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user