diff --git a/NukiOpenerWrapper.cpp b/NukiOpenerWrapper.cpp index 974297b..ef78887 100644 --- a/NukiOpenerWrapper.cpp +++ b/NukiOpenerWrapper.cpp @@ -396,7 +396,6 @@ void NukiOpenerWrapper::updateConfig() readConfig(); readAdvancedConfig(); _configRead = true; - _hasKeypad = _nukiConfig.hasKeypad > 0 || _nukiConfig.hasKeypadV2; if(_nukiConfigValid) { @@ -407,6 +406,7 @@ void NukiOpenerWrapper::updateConfig() if(_preferences->getUInt(preference_nuki_id_opener, 0) == _nukiConfig.nukiId) { + _hasKeypad = _nukiConfig.hasKeypad > 0 || _nukiConfig.hasKeypadV2; _firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]); _hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]); _network->publishConfig(_nukiConfig); diff --git a/NukiWrapper.cpp b/NukiWrapper.cpp index d484f5e..412c345 100644 --- a/NukiWrapper.cpp +++ b/NukiWrapper.cpp @@ -362,7 +362,7 @@ void NukiWrapper::updateConfig() readConfig(); readAdvancedConfig(); _configRead = true; - _hasKeypad = _nukiConfig.hasKeypad > 0 || _nukiConfig.hasKeypadV2; + if(_nukiConfigValid) { if(_preferences->getUInt(preference_nuki_id_lock, 0) == 0) @@ -372,6 +372,7 @@ void NukiWrapper::updateConfig() if(_preferences->getUInt(preference_nuki_id_lock, 0) == _nukiConfig.nukiId) { + _hasKeypad = _nukiConfig.hasKeypad > 0 || _nukiConfig.hasKeypadV2; _firmwareVersion = std::to_string(_nukiConfig.firmwareVersion[0]) + "." + std::to_string(_nukiConfig.firmwareVersion[1]) + "." + std::to_string(_nukiConfig.firmwareVersion[2]); _hardwareVersion = std::to_string(_nukiConfig.hardwareRevision[0]) + "." + std::to_string(_nukiConfig.hardwareRevision[1]); _network->publishConfig(_nukiConfig); @@ -739,12 +740,8 @@ void NukiWrapper::setupHASS() String baseTopic = _preferences->getString(preference_mqtt_lock_path); char uidString[20]; itoa(_nukiConfig.nukiId, uidString, 16); - - bool HASSkeypad = _hasKeypad; - - if(_preferences->getBool(preference_lock_force_keypad)) HASSkeypad = true; - _network->publishHASSConfig("SmartLock", baseTopic.c_str(),(char*)_nukiConfig.name, uidString, hasDoorSensor(), HASSkeypad, _publishAuthData, "lock", "unlock", "unlatch"); + _network->publishHASSConfig("SmartLock", baseTopic.c_str(),(char*)_nukiConfig.name, uidString, hasDoorSensor(), _hasKeypad, _publishAuthData, "lock", "unlock", "unlatch"); _hassSetupCompleted = true; Log->println("HASS setup for lock completed."); @@ -752,8 +749,6 @@ void NukiWrapper::setupHASS() bool NukiWrapper::hasDoorSensor() const { - if(_preferences->getBool(preference_lock_force_doorsensor)) return true; - return _keyTurnerState.doorSensorState == Nuki::DoorSensorState::DoorClosed || _keyTurnerState.doorSensorState == Nuki::DoorSensorState::DoorOpened || _keyTurnerState.doorSensorState == Nuki::DoorSensorState::Calibrating; diff --git a/PreferencesKeys.h b/PreferencesKeys.h index aabfa9a..18edb41 100644 --- a/PreferencesKeys.h +++ b/PreferencesKeys.h @@ -21,9 +21,6 @@ #define preference_check_updates "checkupdates" #define preference_lock_max_keypad_code_count "maxkpad" #define preference_opener_max_keypad_code_count "opmaxkpad" -#define preference_lock_force_keypad "forcekpad" -#define preference_opener_force_keypad "opforcekpad" -#define preference_lock_force_doorsensor "forcedrsnsr" #define preference_mqtt_ca "mqttca" #define preference_mqtt_crt "mqttcrt" #define preference_mqtt_key "mqttkey" @@ -75,8 +72,8 @@ private: { preference_started_before, preference_config_version, preference_device_id_lock, preference_device_id_opener, preference_nuki_id_lock, preference_nuki_id_opener, preference_mqtt_broker, preference_mqtt_broker_port, preference_mqtt_user, preference_mqtt_password, preference_mqtt_log_enabled, preference_check_updates, preference_lock_enabled, preference_mqtt_lock_path, preference_opener_enabled, preference_opener_continuous_mode, preference_mqtt_opener_path, - preference_lock_max_keypad_code_count, preference_opener_max_keypad_code_count, preference_lock_force_keypad, preference_opener_force_keypad, - preference_lock_force_doorsensor, preference_mqtt_ca, preference_mqtt_crt, preference_mqtt_key, preference_mqtt_hass_discovery, preference_mqtt_hass_cu_url, + preference_lock_max_keypad_code_count, preference_opener_max_keypad_code_count, + preference_mqtt_ca, preference_mqtt_crt, preference_mqtt_key, preference_mqtt_hass_discovery, preference_mqtt_hass_cu_url, preference_ip_dhcp_enabled, preference_ip_address, preference_ip_subnet, preference_ip_gateway, preference_ip_dns_server, preference_network_hardware, preference_network_wifi_fallback_disabled, preference_rssi_publish_interval, preference_hostname, preference_network_timeout, preference_restart_on_disconnect, @@ -99,7 +96,7 @@ private: { preference_started_before, preference_mqtt_log_enabled, preference_check_updates, preference_lock_enabled, preference_opener_enabled, preference_opener_continuous_mode, preference_restart_on_disconnect, preference_keypad_control_enabled, preference_admin_enabled, preference_keypad_info_enabled, - preference_lock_force_keypad, preference_opener_force_keypad, preference_lock_force_doorsensor, preference_register_as_app, preference_ip_dhcp_enabled, + preference_register_as_app, preference_ip_dhcp_enabled, preference_publish_authdata, preference_has_mac_saved, preference_publish_debug_info, preference_network_wifi_fallback_disabled }; diff --git a/README.md b/README.md index 3eaa625..f8d13db 100644 --- a/README.md +++ b/README.md @@ -130,11 +130,8 @@ In a browser navigate to the IP address assigned to the ESP32. - Nuki Smartlock enabled: Enable if you want Nuki Hub to connect to a Nuki Lock (1.0-4.0) - MQTT Nuki Smartlock Path (Lock only): Set to the preferred MQTT root topic for the Nuki Lock, defaults to "nuki". Make sure this topic is not the same as the setting for the opener and is unique when using multiple Nuki Hub devices (when using multiple Nuki Locks) -- Force Lock Keypad availability (Lock only): Enable to force availability of a Nuki Keypad connected to the lock. When disabled keypad can be considered not available (for a short period) and lead to removal from Home Assistant discovery in certain cases. -- Force Lock Door Sensor availability (Lock only): Enable to force availability of a Nuki Door Sensor connected to the lock. When disabled door sensor can be considered not available (for a short period) and lead to removal from Home Assistant discovery in certain cases. - Nuki Opener enabled: Enable if you want Nuki Hub to connect to a Nuki Opener - MQTT Nuki Opener Path (Opener only): Set to the preferred MQTT root topic for the Nuki Opener, defaults to "nukiopener". Make sure this topic is not the same as the setting for the lock and is unique when using multiple Nuki Hub devices (when using multiple Nuki Openers) -- Force Opener Keypad availability (Opener only): Enable to force availability of a Nuki Keypad connected to the opener. When disabled keypad can be considered not available (for a short period) and lead to removal from Home Assistant discovery in certain cases. #### Advanced Nuki Configuration diff --git a/WebCfgServer.cpp b/WebCfgServer.cpp index 2dec953..c7c5389 100644 --- a/WebCfgServer.cpp +++ b/WebCfgServer.cpp @@ -568,21 +568,6 @@ bool WebCfgServer::processArgs(String& message) _preferences->putBool(preference_opener_enabled, (value == "1")); configChanged = true; } - else if(key == "LCKFORCEDRSNSR") - { - _preferences->putBool(preference_lock_force_doorsensor, (value == "1")); - configChanged = true; - } - else if(key == "LCKFORCEKPAD") - { - _preferences->putBool(preference_lock_force_keypad, (value == "1")); - configChanged = true; - } - else if(key == "OPFORCEKPAD") - { - _preferences->putBool(preference_opener_force_keypad, (value == "1")); - configChanged = true; - } else if(key == "CREDUSER") { if(value == "#") @@ -954,7 +939,7 @@ void WebCfgServer::buildAccLvlHtml(String &response) response.concat("
| Setting | Enabled |
|---|