From 11e11ab9359fa5eb05e1c42625cdbfe457f293c0 Mon Sep 17 00:00:00 2001 From: technyon Date: Sat, 22 Apr 2023 10:33:23 +0200 Subject: [PATCH] seperate lock and opner device ids --- PreferencesKeys.h | 5 +++-- lib/nuki_ble | 2 +- main.cpp | 34 +++++++++++++++++++++------------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/PreferencesKeys.h b/PreferencesKeys.h index d001983..d57f3f3 100644 --- a/PreferencesKeys.h +++ b/PreferencesKeys.h @@ -3,7 +3,8 @@ #include #define preference_started_before "run" -#define preference_deviceId "deviceId" +#define preference_device_id_lock "deviceId" +#define preference_device_id_opener "deviceIdOp" #define preference_mqtt_broker "mqttbroker" #define preference_mqtt_broker_port "mqttport" #define preference_mqtt_user "mqttuser" @@ -57,7 +58,7 @@ class DebugPreferences private: std::vector _keys = { - preference_started_before, preference_deviceId, preference_mqtt_broker, preference_mqtt_broker_port, + preference_started_before, preference_device_id_lock, preference_device_id_opener, preference_mqtt_broker, preference_mqtt_broker_port, preference_mqtt_user, preference_mqtt_password, preference_mqtt_log_enabled, preference_lock_enabled, preference_mqtt_lock_path, preference_opener_enabled, preference_mqtt_opener_path, preference_lock_max_keypad_code_count, preference_opener_max_keypad_code_count, preference_mqtt_ca, diff --git a/lib/nuki_ble b/lib/nuki_ble index 1de6290..d23f6d7 160000 --- a/lib/nuki_ble +++ b/lib/nuki_ble @@ -1 +1 @@ -Subproject commit 1de629002a03e6fffc9acd8b746baf498b50f77b +Subproject commit d23f6d794ab0cfffeb838af3eea197197287b984 diff --git a/main.cpp b/main.cpp index f0cf906..844f09b 100644 --- a/main.cpp +++ b/main.cpp @@ -190,11 +190,26 @@ void setup() networkOpener->initialize(); } - uint32_t deviceId = preferences->getUInt(preference_deviceId); - if(deviceId == 0) + uint32_t deviceIdLock = preferences->getUInt(preference_device_id_lock); + uint32_t deviceIdOpener = preferences->getUInt(preference_device_id_opener); + + delay(1000); + Serial.print("### "); + Serial.print(deviceIdLock); + Serial.print(" | "); + Serial.println(deviceIdOpener); + + if(deviceIdLock == 0 && deviceIdOpener == 0) { - deviceId = getRandomId(); - preferences->putUInt(preference_deviceId, deviceId); + deviceIdLock = getRandomId(); + preferences->putUInt(preference_device_id_lock, deviceIdLock); + deviceIdOpener = getRandomId(); + preferences->putUInt(preference_device_id_opener, deviceIdOpener); + } + else if(deviceIdLock != 0 && deviceIdOpener == 0) + { + deviceIdOpener = deviceIdLock; + preferences->putUInt(preference_device_id_opener, deviceIdOpener); } initEthServer(network->networkDeviceType()); @@ -211,21 +226,14 @@ void setup() Log->println(lockEnabled ? F("NUKI Lock enabled") : F("NUKI Lock disabled")); if(lockEnabled) { - nuki = new NukiWrapper("NukiHub", deviceId, bleScanner, networkLock, gpio, preferences); + nuki = new NukiWrapper("NukiHub", deviceIdLock, bleScanner, networkLock, gpio, preferences); nuki->initialize(firstStart); - - - -// if(preferences->getBool(preference_gpio_locking_enabled)) -// { -// Gpio::init(nuki); -// } } Log->println(openerEnabled ? F("NUKI Opener enabled") : F("NUKI Opener disabled")); if(openerEnabled) { - nukiOpener = new NukiOpenerWrapper("NukiHub", deviceId, bleScanner, networkOpener, gpio, preferences); + nukiOpener = new NukiOpenerWrapper("NukiHub", deviceIdOpener, bleScanner, networkOpener, gpio, preferences); nukiOpener->initialize(); }