allow to pair as app

This commit is contained in:
technyon
2022-09-25 21:56:09 +02:00
parent f6bdf4ce9d
commit 50c0eb57f9
5 changed files with 26 additions and 5 deletions

View File

@@ -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();

View File

@@ -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();

View File

@@ -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"

View File

@@ -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("<h3>Advanced NUKI Configuration</h3>");
response.concat("<table>");
printCheckBox(response, "REGAPP", "Register as app (on: register as app, off: register as bridge; needs re-pairing if changed)", _preferences->getBool(preference_register_as_app));
printInputField(response, "LSTINT", "Query interval lock state (seconds)", _preferences->getInt(preference_query_interval_lockstate), 10);
printInputField(response, "BATINT", "Query interval battery (seconds)", _preferences->getInt(preference_query_interval_battery), 10);
if(_nuki->hasKeypad())