Nuki community integration, free and open source

Nuki Smart Lock, Opener and Smart Door: via Bridge, MQTT or Nuki Web.
Control your Nuki devices from Gladys: Smart Lock (all generations, 3.0 Pro, 4th generation, Ultra), Smart Door and Opener — lock, unlock, open the door, follow the batteries, the door sensor and the keypad, and react to every operation in your scenes.
Choose how Gladys talks to your Nuki devices
The integration supports three channels. Configure at least one; you can combine them.
| Channel | Type | Devices | What it brings |
|---|---|---|---|
| Nuki Bridge | Local (HTTP) | Every Smart Lock, Smart Door and Opener | Works without internet, Opener doorbell detection |
| MQTT | Local (real time) | Smart Lock 3.0 Pro, 4th generation, Ultra | Instant updates without polling, who/how of each operation (button, keypad…) |
| Nuki Web | Cloud | Every device linked to your Nuki Web account | Who operated the lock (user name, keypad, fingerprint), activity log |
When several channels reach a device, Gladys uses the local one first (MQTT, then the Bridge) and falls back to the other if it fails. Turn off Prefer the local connection in the configuration screen to use Nuki Web first. The badge on each device card shows the channel in use: Local, Cloud or Unreachable; an orange dot means Gladys had to fall back (for example: Bridge offline, Nuki Web used instead).
Setup
Nuki Bridge (local)
- In the Nuki app, open Manage Bridge and enable the HTTP API.
- In Gladys, open the Nuki integration configuration and click Find my Bridge: the IP address is filled in for you (or type it by hand: it is shown in the Nuki app).
- Click Pair the Bridge, then press the button of the Bridge within 30 seconds: the API token is saved automatically. You can also copy the token shown in the app.
- Keep Send the token hashed enabled (Bridge firmware 1.13 or later): the token never travels in clear on your network.
Give your Bridge a fixed IP address in your router: if it changes, run Find my Bridge again.
MQTT (local, Smart Lock 3.0 Pro / 4.0 / Ultra)
- You need an MQTT broker (Mosquitto…). The one of the Gladys MQTT integration works.
- In the Nuki app, open the lock settings → Features & Configuration → MQTT, enable it and enter the broker IP address, port, user and password.
- In Gladys, fill in MQTT broker URL (e.g.
mqtt://192.168.1.10:1883), user and password. The locks appear within seconds.
Nuki Web (cloud)
- Enable Nuki Web for your devices in the Nuki app.
- On web.nuki.io, open API and generate an API token with at least the rights Smartlock, Smartlock action and Smartlock log.
- Paste it in Nuki Web API token.
Create the devices
Open the Discovery tab of the integration and create the devices you want. If you later pair a door sensor or a keypad, the Discovery tab offers to update the device.
Options
- Refresh interval: how often the Bridge is read (10 s minimum, 30 s by default). Nuki Web is read at most every 30 seconds, and only when needed. MQTT needs no polling.
- When Gladys unlocks: Unlock only (default) or Unlock and open the door (unlatch).
- When Gladys locks: Lock (default) or Full lock (two turns, Smart Lock 3.0 and later; a plain lock on older models).
Devices and features
Smart Lock / Smart Door
| Feature | Description |
|---|---|
| Lock | Switch: 1 = locked, 0 = unlocked (controls the lock) |
| Lock state | Locked / unlocked / moving / error |
| Battery | Charge level in % |
| Battery low | Critical battery alert |
| Charging | Power pack charging (3.0 and later) |
| Door | Open / closed (if a door sensor is paired) |
| Door sensor battery low | (if a door sensor is paired) |
| Keypad battery low | (if a keypad is paired) |
Opener: Ring to Open and Continuous mode switches, Battery low, and Doorbell (ring detection, through the Bridge).
Scenes
Triggers
- Nuki lock operated — a lock was locked, unlocked, opened or used Lock 'n' Go. Filter
on the lock, the operation, how it was operated (app, by hand, button, keypad,
fingerprint, auto lock, Nuki Web, HomeKit, MQTT, Gladys…) and the Nuki user (with
Nuki Web). Variables:
action,trigger,user,device_name. Example: "when Alice unlocks the front door with the keypad, turn off the alarm". - Nuki Opener: doorbell rang — someone rang the intercom (Opener with a Bridge).
- Nuki lock problem — motor blocked, lock uncalibrated, or a command refused.
- Nuki battery critical — the battery of a lock, Opener, keypad or door sensor is low.
Operations started by Gladys itself are reported with the trigger gladys: exclude it in
the filter to avoid a scene reacting to its own actions.
Actions
- Operate a Nuki lock — lock, unlock, open the door, Lock 'n' Go, full lock.
Output:
success. - Operate a Nuki Opener — buzz the door, Ring to Open on/off, continuous mode on/off.
Output:
success. - Read a Nuki device — outputs
locked,state,door_open,battery,battery_critical,reachable, to use in the following actions (e.g. send a message "the door is still unlocked"). - Lock every Nuki lock — outputs
locked_countandfailed_count.
The standard Gladys "device state" trigger also works on every feature (door opened, battery below 20 %…).
Dashboard widgets
- Nuki lock — one lock or Opener: state, live battery, door, accessories, channel, last activity, and Lock / Unlock / Open door buttons (the door opening asks for confirmation). For an Opener: Open and Ring to Open.
- Nuki overview — every Nuki device at a glance and a Lock all button.
- Nuki activity — the latest operations: who, how and when (from Nuki Web when configured, otherwise from what the integration saw).
Troubleshooting
- "Nuki Bridge refused the API token": pair the Bridge again, or turn off Send the token hashed if your Bridge firmware is older than 1.13.
- "Nuki Bridge unreachable": check the IP address, and that the HTTP API is enabled. The Bridge handles one request at a time: avoid other software polling it too often.
- MQTT: no lock appears: check in the Nuki app that MQTT is connected, that the lock uses the broker IP address, and that Gladys uses the same broker.
- No user name in the triggers: user names come from Nuki Web; add an API token.
- The Test the connection button checks every configured channel and tells what works.
Privacy and security
Tokens and passwords are stored by Gladys as secrets and never written to the logs. The Bridge token is sent hashed by default. Nuki Web is only contacted when you configure an API token. The activity history is kept in the integration's own data volume.
Configuration settings
These are the settings Nuki asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Connect your Nuki devices | section | No | Fill in at least one of the three channels below. The Bridge and MQTT are local (fast, work without internet); Nuki Web is the cloud and also tells who operated the lock. You can combine them: Gladys uses the local one first and falls back to the other (see “Prefer the local connection”). |
| Nuki Bridge (local) | section | No | In the Nuki app, open the Bridge settings and enable the HTTP API. Then use “Find my Bridge” and “Pair the Bridge” below (press the Bridge button when asked), or copy the IP address and the API token shown by the app. |
| Bridge IP address | string | No | |
| Bridge port | number | No | |
| Bridge API token | secret | No | Filled in automatically by “Pair the Bridge”. |
| Send the token hashed | boolean | No | Recommended: the token never travels in clear on your network. Turn off only for a Bridge firmware older than 1.13. |
| MQTT (local, real time) | section | No | For the Smart Lock 3.0 Pro, 4th generation and Ultra: in the Nuki app, enable MQTT and point the lock to your broker (use its IP address). Enter the same broker here. Changes arrive instantly, without polling. |
| MQTT broker URL | string | No | |
| MQTT username | string | No | |
| MQTT password | secret | No | |
| Nuki Web (cloud) | section | No | Enable Nuki Web in the Nuki app, then on web.nuki.io open “API” and generate an API token with the smartlock, smartlock action and log permissions. Nuki Web also tells who locked or unlocked (user, keypad, fingerprint...). |
| Nuki Web API token | secret | No | |
| Options | section | No | How often the Bridge and Nuki Web are read (MQTT needs no polling), and what the lock switch of Gladys does. |
| Refresh interval (s) | number | No | Seconds between two reads of the Bridge (10 minimum). Nuki Web is never read more often than every 30 seconds. |
| When Gladys unlocks | select | No | |
| When Gladys locks | select | No |
How to install Nuki in Gladys
- In Gladys, open Integrations: Nuki appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/gboulvin/gladys-nuki:1.0.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/gboulvin/Gladys-Nuki.
Nuki requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
Nuki is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by gboulvin, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation