Use an ESP32 as a Hub between a NUKI Lock and your smarthome.
Use an ESP32 as a Hub between a NUKI Lock and your smarthome.
The scope of Nuki Hub is to have an efficient way to integrate Nuki devices in a local Home Automation platform.
The Nuki Hub software runs on a ESP32 module and acts as a bridge between Nuki devices and a Home Automation platform.
It communicates with a Nuki Lock and/or Opener through Bluetooth (BLE) and uses MQTT to integrate with other systems.
It exposes the lock state (and much more) through MQTT and allows executing commands like locking and unlocking as well as changing the Nuki Lock/Opener configuration through MQTT.
Nuki Hub does not integrate with the Nuki mobile app, it can't register itself as a bridge in the official Nuki mobile app.
Feel free to join us on Discord: https://discord.gg/9nPq85bP4p
Supported ESP32 devices:
Not supported ESP32 devices:
Supported Nuki devices:
Supported Ethernet devices:
As an alternative to Wi-Fi (which is available on any supported ESP32), the following ESP32 modules with built-in wired ethernet are supported:
In principle all ESP32 (and variants) devices with built-in ethernet port are supported, but might require additional setup using the "Custom LAN setup" option. See the "Connecting via Ethernet" section for more information.
We don't recommend using the original ESP32 or ESP32-Solo1 devices because these devices experience unexpected crashes related to the (closed-source) BLE controller.
In newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-C61, ESP32-H2) these unexpected crashed are seen a lot less.
When buying a new device in 2025 we recommend the ESP32-P4 or ESP32-S3 with PSRAM (look for an ESP32-S3 with the designation N>=4 and R>=2 such as an ESP32-S3 N16R8).
The ESP32-P4 with ESP32-C6 or ESP32-C5 module for BLE/WiFi is the most powerfull ESP32 in 2025. It supports anything the ESP32 range has to offer with the highest CPU clocks, largest flash and PSRAM, Ethernet, PoE and WiFi6 (and 5 GHZ WiFi with the C5 as co-processor).
The ESP32-S3 is a dual-core CPU with many GPIO's, ability to enlarge RAM using PSRAM, ability to connect Ethernet modules over SPI and optionally power the device with a PoE splitter.
The only functions missing from the ESP32-S3 as compared to other ESP devices is the ability to use some Ethernet modules only supported by the original ESP32 (and ESP32-P4) and the ability to connect over WIFI6 (C5, C6 or ESP32-P4 with C6/C5 module)
The ESP32-C5 with PSRAM is a good option providing higher clockspeeds than the C6 and adding PSRAM and WIFI 6 on the 5 Ghz band support. The ESP32-C61 with PSRAM adds PSRAM compared to the C6.
Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs better on dual-core devices.
Other considerations:
Recommended devices ranked best-to-worst:
Not recommended devices ranked least-worst-to-worst:
| Feature | Nuki Hub | Nuki Bridge |
|---|---|---|
| Smart Lock/Opener (remote) control | :white_check_mark: | :white_check_mark: |
| MQTT | :white_check_mark: | :no_entry: |
| Wired LAN support, optionally with Power over Ethernet (PoE) | :white_check_mark: | :no_entry: |
| Smart Home (e.g. Home Assistant) integration | :white_check_mark: | :white_check_mark: (limited) |
| Cloud support | :white_check_mark: (optional through smarthome solution) | :white_check_mark: |
| Cloud-less operation | :white_check_mark: | :white_check_mark: |
| Nuki Keypad (1.0 and 2.0) support | :white_check_mark: | :white_check_mark: |
| Control via GPIO | :white_check_mark: | :no_entry: |
| Hybrid mode for WiFI and Thread connected locks | :white_check_mark: | :no_entry: |
| Feature | Nuki Hub | Nuki official MQTT API |
|---|---|---|
| Smart Lock (remote) control | :white_check_mark: | :white_check_mark: |
| Opener support | :white_check_mark: | :no_entry: |
| Optional MQTT SSL support | :white_check_mark: | :no_entry: |
| Wired LAN support, optionally with Power over Ethernet (PoE) | :white_check_mark: | :no_entry: |
| Smart Home (e.g. Home Assistant) integration | :white_check_mark: | :white_check_mark: (limited) |
| Cloud support | :white_check_mark: (optional through smarthome solution) | :white_check_mark: (optional through smarthome solution) |
| Cloud-less operation | :white_check_mark: | :white_check_mark: (limited) |
| Nuki Keypad (1.0 and 2.0) support | :white_check_mark: | :white_check_mark: (limited) |
| Control via GPIO | :white_check_mark: | :no_entry: |
| Hybrid mode combining Bluetooth and WiFi/Thread | :white_check_mark: | :no_entry: |
| Feature parity with the Nuki app (e.g. changing device settings, keypad codes, authorizations etc.) | :white_check_mark: | :no_entry: |
This project is free to use for everyone. However if you feel like donating, you can buy me a coffee at ko-fi.com: If you plan to buy NUKI hardware, you can use my referral code to earn a 10% discount. It allows the project to team to buy further NUKI hardware for testing:
REF-jrQ31VPE6O
Flash the firmware to an ESP32. The easiest way to install is to use the web installer using a compatible browser like Chrome/Opera/Edge:
https://technyon.github.io/nuki_hub/
Alternatively download the latest release for your ESP32 model from https://github.com/technyon/nuki_hub/releases
Unpack the zip archive and read the included how-to-flash.txt for installation instructions for either "Espressif Flash Download Tools" or "esptool".
Power up the ESP32 and a new Wi-Fi access point named "NukiHub" should appear.
The password of the access point is "NukiHubESP32".
Connect a client device to this access point and in a browser navigate to "http://192.168.4.1".
Use the web interface to connect the ESP to your preferred Wi-Fi network.
After configuring Wi-Fi, the ESP should automatically connect to your network.
To configure the connection to the MQTT broker, first connect your client device to the same Wi-Fi network the ESP32 is connected to.
In a browser navigate to the IP address assigned to the ESP32 via DHCP (often found in the web interface of your internet router) or static IP.
Next click on "MQTT Configuration" and enter the address and port (usually 1883) of your MQTT broker and a username and password if required by your MQTT broker.
The firmware supports SSL encryption for MQTT.
See the "MQTT Encryption" section of this README.
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". After enabling the setting press the button on the Nuki device for a few seconds.
Pairing should be automatic whenever the ESP32 is powered on and no lock is paired.
To pair with an opener you need to first enable the opener on the "Nuki configuration" page of Nuki Hub.
When pairing is successful, the web interface should show "Paired: Yes".
MQTT nodes like lock state and battery level should now reflect the reported values from the lock.
Note: It is possible to run Nuki Hub alongside a Nuki Bridge. This is not recommended (unless when using hybrid mode) 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.
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 Nuki Lock Ultra / Nuki Lock Go / Nuki Lock 5th gen Pro first setup Nuki Hub as follows:
When pairing is successful, the web interface should show "Paired: Yes".
Hybrid mode allows you to use the official Nuki MQTT implementation 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.
See hybrid mode
No open issues yet, or sync has not completed.