diff --git a/NukiOpenerWrapper.cpp b/NukiOpenerWrapper.cpp index 01820ad..3917353 100644 --- a/NukiOpenerWrapper.cpp +++ b/NukiOpenerWrapper.cpp @@ -69,10 +69,15 @@ void NukiOpenerWrapper::initialize() void NukiOpenerWrapper::update() { - if (!_paired) { + if (!_paired) + { Serial.println(F("Nuki opener start pairing")); - if (_nukiOpener.pairNuki() == NukiOpener::PairingResult::Success) { + Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ? + Nuki::AuthorizationIdType::App : + Nuki::AuthorizationIdType::Bridge; + + if (_nukiOpener.pairNuki(idType) == NukiOpener::PairingResult::Success) { Serial.println(F("Nuki opener paired")); _paired = true; setupHASS(); diff --git a/NukiWrapper.cpp b/NukiWrapper.cpp index eb15c0b..fad4ebc 100644 --- a/NukiWrapper.cpp +++ b/NukiWrapper.cpp @@ -79,10 +79,19 @@ void NukiWrapper::initialize() void NukiWrapper::update() { - if (!_paired) { + Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ? + Nuki::AuthorizationIdType::App : + Nuki::AuthorizationIdType::Bridge; + + if (!_paired) + { Serial.println(F("Nuki start pairing")); - if (_nukiLock.pairNuki() == Nuki::PairingResult::Success) { + Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ? + Nuki::AuthorizationIdType::App : + Nuki::AuthorizationIdType::Bridge; + + if (_nukiLock.pairNuki(idType) == Nuki::PairingResult::Success) { Serial.println(F("Nuki paired")); _paired = true; setupHASS(); diff --git a/PreferencesKeys.h b/PreferencesKeys.h index 1f00e7c..1541ad4 100644 --- a/PreferencesKeys.h +++ b/PreferencesKeys.h @@ -23,6 +23,7 @@ #define preference_query_interval_battery "batInterval" #define preference_query_interval_keypad "kpInterval" #define preference_keypad_control_enabled "kpEnabled" +#define preference_register_as_app "regAsApp" // true = register as hub; false = register as app #define preference_cred_user "crdusr" #define preference_cred_password "crdpass" #define preference_publish_authdata "pubauth" diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index 1fa0595..943ee78 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -311,6 +311,11 @@ bool WebCfgServer::processArgs(String& message) _preferences->putBool(preference_gpio_locking_enabled, (value == "1")); configChanged = true; } + else if(key == "REGAPP") + { + _preferences->putBool(preference_register_as_app, (value == "1")); + configChanged = true; + } else if(key == "LOCKENA") { _preferences->putBool(preference_lock_enabled, (value == "1")); @@ -606,6 +611,7 @@ void WebCfgServer::buildNukiConfigHtml(String &response) response.concat("