allow to enable publishing auth data in web interface

This commit is contained in:
technyon
2022-05-06 22:40:09 +02:00
parent b14c83384e
commit 8a1d7e7523
5 changed files with 63 additions and 23 deletions

View File

@@ -42,6 +42,7 @@ void NukiWrapper::initialize()
_intervalLockstate = _preferences->getInt(preference_query_interval_lockstate);
_intervalBattery = _preferences->getInt(preference_query_interval_battery);
_publishAuthData = _preferences->getBool(preference_publish_authdata);
if(_intervalLockstate == 0)
{
@@ -59,7 +60,14 @@ void NukiWrapper::initialize()
Serial.print(F("Lock state interval: "));
Serial.print(_intervalLockstate);
Serial.print(F(" | Battery interval: "));
Serial.println(_intervalBattery);
Serial.print(_intervalBattery);
Serial.print(F(" | Publish auth data: "));
Serial.println(_publishAuthData ? "yes" : "no");
if(!_publishAuthData)
{
_clearAuthData = true;
}
}
void NukiWrapper::update()
@@ -101,11 +109,6 @@ void NukiWrapper::update()
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
updateConfig();
}
if(_nextLogUpdateTs == 0 || ts > _nextLogUpdateTs)
{
_nextLogUpdateTs = ts + 10 * 1000;
updateAuthInfo();
}
if(_nextLockAction != (Nuki::LockAction)0xff)
{
@@ -126,6 +129,12 @@ void NukiWrapper::update()
}
}
if(_clearAuthData)
{
_network->publishAuthorizationInfo(0, "");
_clearAuthData = false;
}
memcpy(&_lastKeyTurnerState, &_keyTurnerState, sizeof(Nuki::KeyTurnerState));
}
@@ -147,22 +156,15 @@ void NukiWrapper::updateKeyTurnerState()
Serial.println(lockStateStr);
}
updateAuthInfo();
if(_publishAuthData)
{
updateAuthData();
}
}
void NukiWrapper::updateBatteryState()
{
_nukiBle.requestBatteryReport(&_batteryReport);
/*
Serial.print(F("Voltage: ")); Serial.println(_batteryReport.batteryVoltage);
Serial.print(F("Drain: ")); Serial.println(_batteryReport.batteryDrain);
Serial.print(F("Resistance: ")); Serial.println(_batteryReport.batteryResistance);
Serial.print(F("Max Current: ")); Serial.println(_batteryReport.maxTurnCurrent);
Serial.print(F("Crit. State: ")); Serial.println(_batteryReport.criticalBatteryState);
Serial.print(F("Lock Dist: ")); Serial.println(_batteryReport.lockDistance);
*/
_network->publishBatteryReport(_batteryReport);
}
@@ -174,13 +176,12 @@ void NukiWrapper::updateConfig()
_network->publishAdvancedConfig(_nukiAdvancedConfig);
}
void NukiWrapper::updateAuthInfo()
void NukiWrapper::updateAuthData()
{
return;
Nuki::CmdResult result = _nukiBle.retrieveLogEntries(0, 0, 0, true);
if(result != Nuki::CmdResult::Success)
{
_network->publishAuthorizationInfo(0, "");
return;
}
vTaskDelay( 100 / portTICK_PERIOD_MS);
@@ -188,6 +189,7 @@ void NukiWrapper::updateAuthInfo()
result = _nukiBle.retrieveLogEntries(_nukiBle.getLogEntryCount() - 2, 1, 0, false);
if(result != Nuki::CmdResult::Success)
{
_network->publishAuthorizationInfo(0, "");
return;
}
vTaskDelay( 200 / portTICK_PERIOD_MS);
@@ -206,6 +208,10 @@ void NukiWrapper::updateAuthInfo()
_lastAuthId = entry.authId;
}
}
else
{
_network->publishAuthorizationInfo(0, "");
}
}
//struct __attribute__((packed)) LogEntry {