Nuki Lock 5th Gen (Pro/Go) support
This commit is contained in:
@@ -22,13 +22,13 @@ In hybrid mode Nuki Hub will automatically choose the best way to communicate wi
|
||||
When compared to regular/bridge mode this leads to speed increases in getting state changes and pushing state changes (because we can send and receive usefull information directly over MQTT without having to connect over BLE)
|
||||
When compared to the official MQTT implementation this adds many many features that are not available in the official MQTT implementation and would normally require you to use the app or Web API (which has its own issues, downtime and cloud requirement).
|
||||
|
||||
**As the Nuki Smartlock Ultra has no support for the Nuki Bridge it is mandatory to setup Hybrid mode to receive prompt state changes from the lock in Nuki Hub.**
|
||||
**As the Nuki Smartlock Ultra/5th gen Pro has no support for the Nuki Bridge it is mandatory to setup Hybrid mode to receive prompt state changes from the lock in Nuki Hub.**
|
||||
|
||||
### Requirements ###
|
||||
|
||||
- ESP32 running Nuki Hub 9.08 or higher
|
||||
- For WiFi: Nuki lock 3.0 Pro, Nuki Lock 4.0 Pro or Nuki Lock Ultra
|
||||
- For Thread: Nuki Lock 4.0, Nuki Lock 4.0 Pro or Nuki Lock Ultra. Note that you do ***NOT*** need to buy the remote access addon for the Nuki Lock 4.0
|
||||
- For WiFi: Nuki lock 3.0 Pro, Nuki Lock 4.0 Pro, Nuki Lock 5.0 Pro, Nuki Lock Go or Nuki Lock Ultra
|
||||
- For Thread: Nuki Lock 4.0, Nuki Lock 4.0 Pro, Nuki Lock 5.0 Pro, Nuki Lock Go or Nuki Lock Ultra. Note that you do ***NOT*** need to buy the remote access addon for the Nuki Lock 4.0 or Nuki Lock Go
|
||||
- For Thread: The Nuki Lock needs to have network access to the same MQTT server as the one that Nuki Hub is conected to. Depending if the MQTT server is reachable over IPv6 you might need an OpenThread Border router that supports NAT64 and has this enabled. Currently this means an Apple Device or Home Assistant with the Matter server and OpenThread Border Router
|
||||
- The Nuki Opener does not have WiFI or Thread and thus doesn't benefit from the hybrid solutions added speed. You can however use and connect a Nuki Opener as usual which will function over regular BLE and can still connect Nuki Hub as a bridge to an Opener.
|
||||
|
||||
|
||||
24
README.md
24
README.md
@@ -34,6 +34,10 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p
|
||||
- Nuki Keypad 1.0
|
||||
- Nuki Keypad 2.0
|
||||
|
||||
<b>Probably supported Nuki devices (untested):</b>
|
||||
- Nuki Smart Lock 5.0 Pro
|
||||
- Nuki Smart Lock Go
|
||||
|
||||
<b>Supported Ethernet devices:</b><br>
|
||||
As an alternative to Wi-Fi (which is available on any supported ESP32), the following ESP32 modules with built-in wired ethernet are supported:
|
||||
- [Olimex ESP32-POE](https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-source-hardware)
|
||||
@@ -161,21 +165,21 @@ MQTT nodes like lock state and battery level should now reflect the reported val
|
||||
This is not recommended (unless when using [hybrid mode](/HYBRID.md)) and will lead to excessive battery drain and can lead to either device missing updates.
|
||||
Enable "Register as app" before pairing to allow this. Otherwise the Bridge will be unregistered when pairing the Nuki Hub.</b>
|
||||
|
||||
## Pairing with a Nuki Lock Ultra
|
||||
## Pairing with a Nuki Lock Ultra / 5th gen Pro
|
||||
|
||||
Make sure "Bluetooth pairing" is enabled for the Nuki device by enabling this setting in the official Nuki App in "Settings" > "Features & Configuration" > "Button and LED".
|
||||
|
||||
Before enabling pairing mode using the button on the Lock Ultra first setup Nuki Hub as follows:
|
||||
- Enable both "Nuki Smartlock enabled" and "Nuki Smartlock Ultra enabled" settings on the "Basic Nuki Configuration" page and Save. Setting the "Nuki Smartlock Ultra enabled" will change multiple other NukiHub settings.
|
||||
- Input your 6-digit Nuki Lock Ultra PIN on the "Credentials" page and Save
|
||||
Before enabling pairing mode using the button on the Lock Ultra / 5th gen Pro first setup Nuki Hub as follows:
|
||||
- Enable both "Nuki Smartlock enabled" and "Nuki Smartlock Ultra/5th gen enabled" settings on the "Basic Nuki Configuration" page and Save. Setting the "Nuki Smartlock Ultra/5th gen enabled" will change multiple other NukiHub settings.
|
||||
- Input your 6-digit Nuki Lock Ultra/5th gen PIN on the "Credentials" page and Save
|
||||
- Press the button on the Nuki device for a few seconds until the LED ring lights up and remains lit.
|
||||
- It is **strongly** recommended(/mandatory) to setup and enable Hybrid mode over Thread/WiFi + official MQTT as Nuki Hub works best in Hybrid or Bridge mode and the Ultra does not support Bridge mode
|
||||
- It is **strongly** recommended(/mandatory) to setup and enable Hybrid mode over Thread/WiFi + official MQTT as Nuki Hub works best in Hybrid or Bridge mode and the Ultra/5th gen Pro does not support Bridge mode
|
||||
|
||||
When pairing is successful, the web interface should show "Paired: Yes".<br>
|
||||
|
||||
## Hybrid mode
|
||||
|
||||
Hybrid mode allows you to use the official Nuki MQTT implemenation on a Nuki Lock 3.0 Pro, Nuki Lock 4.0, Nuki Lock 4.0 Pro or Nuki Lock Ultra in conjunction with Nuki Hub.<br>
|
||||
Hybrid mode allows you to use the official Nuki MQTT implemenation on a Nuki Lock 3.0 Pro, Nuki Lock 4.0, Nuki Lock 4.0 Pro, Nuki Lock 5.0 Pro, Nuki Lock Go or Nuki Lock Ultra in conjunction with Nuki Hub.<br>
|
||||
See [hybrid mode](/HYBRID.md) for more information.
|
||||
|
||||
## Memory constraints
|
||||
@@ -270,7 +274,7 @@ In a browser navigate to the IP address assigned to the ESP32.
|
||||
#### Basic Nuki Configuration
|
||||
|
||||
- Nuki Smartlock enabled: Enable if you want Nuki Hub to connect to a Nuki Lock (1.0-4.0 and Ultra)
|
||||
- Nuki Smartlock Ultra enabled: Enable if you want Nuki Hub to connect to a Nuki Lock Ultra
|
||||
- Nuki Smartlock Ultra/5th gen enabled: Enable if you want Nuki Hub to connect to a Nuki Lock Ultra/5th gen Pro
|
||||
- Nuki Opener enabled: Enable if you want Nuki Hub to connect to a Nuki Opener
|
||||
- New Nuki Bluetooth connection mode (disable if there are connection issues): Enable to use the latest Nuki BLE connection mode (recommended). Disable if you have issues communicating with the lock/opener
|
||||
|
||||
@@ -345,7 +349,7 @@ Note: All of the following requires the Nuki security code / PIN to be set, see
|
||||
#### Nuki Lock PIN / Nuki Opener PIN
|
||||
|
||||
- PIN Code: Fill with the Nuki Security Code of the Nuki Lock and/or Nuki Opener. Required for functions that require the security code to be sent to the lock/opener such as setting lock permissions/adding keypad codes, viewing the activity log or changing the Nuki device configuration. Set to "#" to remove the security code from the Nuki Hub configuration.
|
||||
- PIN Code Ultra: Fill with the 6-digit Nuki Security Code of the Nuki Lock Ultra. Required for pairing (and many other functions)
|
||||
- PIN Code Ultra/5th gen: Fill with the 6-digit Nuki Security Code of the Nuki Lock Ultra/5th gen Pro. Required for pairing (and many other functions)
|
||||
|
||||
#### Unpair Nuki Lock / Unpair Nuki Opener
|
||||
|
||||
@@ -615,8 +619,8 @@ Changing settings has to enabled first in the configuration portal. Check the se
|
||||
| autoLockEnabled | Whether auto lock is enabled. | 1 = enabled, 0 = disabled |`{ "autoLockEnabled": "1" }` |
|
||||
| immediateAutoLockEnabled | Whether auto lock should be performed immediately after the door has been closed. | 1 = enabled, 0 = disabled |`{ "immediateAutoLockEnabled": "1" }`|
|
||||
| autoUpdateEnabled | Whether automatic firmware updates should be enabled. | 1 = enabled, 0 = disabled |`{ "autoUpdateEnabled": "1" }` |
|
||||
| motorSpeed | The desired motor speed (Ultra only) | "Standard", "Insane", "Gentle" |`{ "motorSpeed": "Standard" }` |
|
||||
| enableSlowSpeedDuringNightMode | Whether the slow speed should be applied during Night Mode (Ultra only) | 1 = enabled, 0 = disabled |`{ "enableSlowSpeedDuringNightMode": "1" }` |
|
||||
| motorSpeed | The desired motor speed (Ultra/5th gen Pro only) | "Standard", "Insane", "Gentle" |`{ "motorSpeed": "Standard" }` |
|
||||
| enableSlowSpeedDuringNightMode | Whether the slow speed should be applied during Night Mode (Ultra/5th gen Pro only) | 1 = enabled, 0 = disabled |`{ "enableSlowSpeedDuringNightMode": "1" }` |
|
||||
| rebootNuki | Reboot the Nuki device immediately | 1 = reboot nuki |`{ "rebootNuki": "1" }` |
|
||||
|
||||
### Nuki Opener Configuration
|
||||
|
||||
@@ -4412,7 +4412,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S
|
||||
{
|
||||
if (_preferences->getBool(preference_lock_gemini_enabled, false))
|
||||
{
|
||||
message = "Nuki Lock Ultra PIN cleared";
|
||||
message = "Nuki Lock Ultra/5th gen PIN cleared";
|
||||
_nuki->setUltraPin(0xffffffff);
|
||||
_preferences->putInt(preference_lock_gemini_pin, 0);
|
||||
}
|
||||
@@ -4431,7 +4431,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S
|
||||
{
|
||||
if(_nuki->getUltraPin() != value.toInt())
|
||||
{
|
||||
message = "Nuki Lock Ultra PIN saved";
|
||||
message = "Nuki Lock Ultra/5th gen PIN saved";
|
||||
_nuki->setUltraPin(value.toInt());
|
||||
_preferences->putInt(preference_lock_gemini_pin, value.toInt());
|
||||
Log->print("Setting changed: ");
|
||||
@@ -5781,7 +5781,7 @@ esp_err_t WebCfgServer::buildNukiConfigHtml(PsychicRequest *request, PsychicResp
|
||||
response.print("<h3>Basic Nuki Configuration</h3>");
|
||||
response.print("<table>");
|
||||
printCheckBox(&response, "LOCKENA", "Nuki Lock enabled", _preferences->getBool(preference_lock_enabled, true), "");
|
||||
printCheckBox(&response, "GEMINIENA", "Nuki Smartlock Ultra enabled", _preferences->getBool(preference_lock_gemini_enabled, false), "");
|
||||
printCheckBox(&response, "GEMINIENA", "Nuki Smartlock Ultra/5th gen enabled", _preferences->getBool(preference_lock_gemini_enabled, false), "");
|
||||
printCheckBox(&response, "OPENA", "Nuki Opener enabled", _preferences->getBool(preference_opener_enabled, false), "");
|
||||
printCheckBox(&response, "CONNMODE", "New Nuki Bluetooth connection mode (disable if there are connection issues)", _preferences->getBool(preference_connect_mode, true), "");
|
||||
response.print("</table><br>");
|
||||
@@ -6268,7 +6268,7 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse*
|
||||
else
|
||||
{
|
||||
response.print("\nLock enabled: Yes");
|
||||
response.print("\nLock Ultra enabled: ");
|
||||
response.print("\nLock Ultra/5th gen enabled: ");
|
||||
response.print(_preferences->getBool(preference_lock_gemini_enabled, false) ? "Yes" : "No");
|
||||
response.print("\nPaired: ");
|
||||
response.print(_nuki->isPaired() ? "Yes" : "No");
|
||||
@@ -6466,7 +6466,7 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse*
|
||||
uint32_t authorizationIdInt = authorizationId[0] + 256U*authorizationId[1] + 65536U*authorizationId[2] + 16777216U*authorizationId[3];
|
||||
response.print("\nAuthorizationId (UINT32_T): ");
|
||||
response.print(authorizationIdInt);
|
||||
response.print("\nPaired to Nuki Lock Ultra: ");
|
||||
response.print("\nPaired to Nuki Lock Ultra/5th gen: ");
|
||||
response.print(nukiBlePref.getBool("isUltra", false) ? "Yes" : "No");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user