initialize retry parameters on first start

This commit is contained in:
technyon
2023-01-14 21:34:28 +01:00
parent 3cd57fb032
commit a5c3e82cae
4 changed files with 17 additions and 8 deletions

View File

@@ -34,7 +34,7 @@ NukiWrapper::~NukiWrapper()
}
void NukiWrapper::initialize()
void NukiWrapper::initialize(const bool& firstStart)
{
_nukiLock.initialize();
@@ -51,6 +51,11 @@ void NukiWrapper::initialize()
_nrOfRetries = _preferences->getInt(preference_command_nr_of_retries);
_retryDelay = _preferences->getInt(preference_command_retry_delay);
if(firstStart)
{
_preferences->putInt(preference_command_nr_of_retries, 3);
_preferences->putInt(preference_command_retry_delay, 1000);
}
if(_retryDelay <= 100)
{
_retryDelay = 100;

View File

@@ -12,7 +12,7 @@ public:
NukiWrapper(const std::string& deviceName, uint32_t id, BleScanner::Scanner* scanner, NetworkLock* network, Preferences* preferences);
virtual ~NukiWrapper();
void initialize();
void initialize(const bool& firstStart);
void update();
void lock();

View File

@@ -1,6 +1,6 @@
#pragma once
#define preference_started_befores "run"
#define preference_started_before "run"
#define preference_deviceId "deviceId"
#define preference_mqtt_broker "mqttbroker"
#define preference_mqtt_broker_port "mqttport"

View File

@@ -140,14 +140,16 @@ void initEthServer(const NetworkDeviceType device)
}
}
void initPreferences()
bool initPreferences()
{
preferences = new Preferences();
preferences->begin("nukihub", false);
if(!preferences->getBool(preference_started_befores))
bool firstStart = !preferences->getBool(preference_started_before);
if(firstStart)
{
preferences->putBool(preference_started_befores, true);
preferences->putBool(preference_started_before, true);
preferences->putBool(preference_lock_enabled, true);
}
@@ -155,6 +157,8 @@ void initPreferences()
{
preferences->putInt(preference_restart_timer, -1);
}
return firstStart;
}
void setup()
@@ -163,7 +167,7 @@ void setup()
Serial.begin(115200);
Log = &Serial;
initPreferences();
bool firstStart = initPreferences();
if(preferences->getInt(preference_restart_timer) > 0)
{
@@ -196,7 +200,7 @@ void setup()
if(lockEnabled)
{
nuki = new NukiWrapper("NukiHub", deviceId, bleScanner, networkLock, preferences);
nuki->initialize();
nuki->initialize(firstStart);
if(preferences->getBool(preference_gpio_locking_enabled))
{