PROBLEM DESCRIPTION
A clear and concise description of what the problem is.
Manual lock state changes are not consistently detected by Nuki Hub.
When the lock is operated manually, either by rotating the knob or by pressing the central button, the state displayed in Home Assistant sometimes remains unchanged.
Commands initiated from Home Assistant work correctly. A manual MQTT lock-state query also works correctly and immediately updates the state:
action: mqtt.publish
data:
topic: nukihub/lock/query/lockstate
payload: "1"
retain: false
The periodic lock-state query also works correctly. After changing the query interval to 120 seconds and restarting Nuki Hub, the WebSerial log showed queries exactly 120 seconds apart:
[22:11:39] Querying lock state
[22:13:39] Querying lock state
The BLE connection itself therefore appears to be functional. Nuki Hub continuously receives the lock advertising packets, and direct state queries complete successfully.
The problem appears to be limited to the automatic state-query trigger after some manual lock operations. In the affected cases, the WebSerial log only shows advertising packets and no immediate KeyTurnerStatusUpdated or Querying lock state event.
After restarting Nuki Hub, the automatic event worked at least once:
[22:09:11] KeyTurnerStatusUpdated
[22:09:11] Updating Lock state based on status, timer or query
[22:09:11] Querying lock state
Expected behavior:
Every lock state change, regardless of how it is initiated (Home Assistant, Nuki app, manual knob rotation or button press), should immediately trigger a lock state query and publish the updated state via MQTT.
Actual behavior:
Only actions initiated through Home Assistant (via Nuki Hub) are immediately reflected in Home Assistant.
When the lock is operated outside of Nuki Hub (for example using the Nuki app, by rotating the knob, or by pressing the lock button), Nuki Hub never performs an immediate lock state query.
The state in Home Assistant remains unchanged until either:
-
a manual MQTT query is sent to nukihub/lock/query/lockstate, or
-
the configured periodic lock state query interval expires.
The BLE connection is working correctly, because manual MQTT queries always succeed and the periodic polling also works correctly.
REQUESTED INFORMATION
Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!
------------ NUKI HUB ------------
Device: ESP32-S3
Version: 9.14
Build: 20552619151.19.1
Build type: Release
Build date: 2025-12-28
Uptime (min): 4
Config version: 914
Last restart reason FW: RestartOnDisconnectWatchdog
Last restart reason ESP: ESP_RST_SW: Software reset via esp_restart.
Free internal heap: 149392
Total internal heap: 354604
PSRAM Available: No
Network task stack high watermark: 8144
Nuki task stack high watermark: 4768
------------ SPIFFS ------------
SPIFFS Total Bytes: 233681
SPIFFS Used Bytes: 59236
SPIFFS Free Bytes: 174445
------------ GENERAL SETTINGS ------------
Network task stack size: 12288
Nuki task stack size: 8192
Check for updates: Yes
Latest version: 9.14
Allow update from MQTT: Yes
Update Nuki Hub and Nuki devices time using NTP: No
Web configurator username: Not set
Web configurator password: Not set
Web configurator bypass for proxy IP: Not set
Web configurator authentication: Basic
Session validity (in seconds): 3600
Session validity remember (in hours): 720
Duo Push MFA enabled: No
TOTP MFA enabled: No
Web configurator enabled: Yes
HTTP SSL: Disabled
Advanced menu enabled: Yes
Publish free heap over MQTT: No
Nuki connect debug logging enabled: Yes
Nuki communication debug logging enabled: Yes
Nuki readable data debug logging enabled: Yes
Nuki hex data debug logging enabled: No
Nuki command debug logging enabled: No
MQTT log enabled: No
Webserial enabled: Yes
Bootloop protection enabled: Yes
------------ NETWORK ------------
Network device: Built-in Wi-Fi
Network connected: Yes
Internet connected: Yes
IP Address: REDACTED
SSID: REDACTED
BSSID of AP: REDACTED
ESP32 MAC address: REDACTED
------------ NETWORK SETTINGS ------------
Nuki Hub hostname: Nuki_Hub
DHCP enabled: Yes
RSSI Publish interval (s): 60
Find WiFi AP with strongest signal: Yes
Restart ESP32 on network disconnect enabled: Yes
Disable Network if not connected within 60s: No
MQTT Timeout until restart (s): 60
------------ MQTT ------------
MQTT connected: Yes
MQTT broker address: REDACTED
MQTT broker port: REDACTED
MQTT username: REDACTED
MQTT password: REDACTED
MQTT base topic: nukihub
MQTT SSL: Disabled
------------ BLUETOOTH ------------
Bluetooth TX power (dB): 9
Bluetooth command nr of retries: 3
Bluetooth command retry delay (ms): 100
Seconds until reboot when no BLE beacons received: 180
------------ QUERY / PUBLISH SETTINGS ------------
Lock/Opener state query interval (s): 120
Publish Nuki device authorization log: No
Max authorization log entries to retrieve: 5
Battery state query interval (s): 1800
Most non-JSON MQTT topics disabled: No
Publish Nuki device config: Yes
Config query interval (s): 3600
Publish Keypad info: No
Keypad query interval (s): 1800
Enable Keypad control: Yes
Publish Keypad topic per entry: No
Publish Keypad codes: No
Allow checking Keypad codes: No
Max keypad entries to retrieve: 10
Publish timecontrol info: No
Enable timecontrol control: No
Publish timecontrol topic per entry: No
Max timecontrol entries to retrieve: 10
Enable authorization control: No
Publish authorization topic per entry: No
Max authorization entries to retrieve: 5
------------ HOME ASSISTANT ------------
Home Assistant auto discovery enabled: Yes
Home Assistant auto discovery topic: homeassistant/
Nuki Hub configuration URL for HA: REDACTED
Nuki Hub ID: REDACTED
------------ NUKI LOCK ------------
Lock enabled: Yes
Lock Ultra/Go/5th gen enabled: No
Paired: Yes
Nuki Hub device ID: REDACTED
Nuki device ID: REDACTED
Firmware version: 3.10.7
Hardware version: 4.10
Valid PIN set: Yes
Has door sensor: No
Has keypad: No
Timecontrol highest entries count: 0
Authorizations highest entries count: 0
Register as: Bridge
Force Lock ID: No
Force Lock Keypad: No
Force Lock Doorsensor: No
------------ HYBRID MODE ------------
Hybrid mode enabled: No
------------ NUKI LOCK ACL ------------
Lock: Allowed
Unlock: Allowed
Unlatch: Allowed
Lock N Go: Allowed
Lock N Go Unlatch: Allowed
Full Lock: Allowed
Fob Action 1: Disallowed
Fob Action 2: Disallowed
Fob Action 3: Disallowed
------------ NUKI OPENER ------------
Opener enabled: No
------------ GPIO ------------
Retain Input GPIO MQTT state: No
TO REPRODUCE
Steps to reproduce the behavior:
- Pair Nuki Hub with the lock using Bridge registration mode.
- Connect Nuki Hub to Home Assistant through MQTT discovery.
- Confirm that MQTT is connected and that commands from Home Assistant work.
- Confirm that the lock state is initially correct in Home Assistant.
- Manually lock or unlock the device by rotating the knob or pressing the central button.
- Observe the WebSerial output.
- In the affected cases, advertising packets are received, but no immediate state query follows:
Nuki Advertising: Name: , Address: XX:XX:XX:XX:XX:XX
iBeacon ID: 004C Major: 12503 Minor: 24828
- Observe that the state in Home Assistant remains unchanged.
- Manually publish the following MQTT message:
Topic: nukihub/lock/query/lockstate
Payload: 1
Retain: false
- Observe that Nuki Hub immediately queries the lock and Home Assistant is updated:
Updating Lock state based on status, timer or query
Querying lock state
Connected to: XX:XX:XX:XX:XX:XX RSSI: -65
CRC CHECK OK
lockState: 3
unlocked
Done querying lock state
- Set the lock state query interval to 120 seconds and restart Nuki Hub.
- Observe that the periodic polling works correctly:
[22:11:39] Querying lock state
[22:13:39] Querying lock state
This indicates that MQTT, BLE state queries and periodic polling work correctly, while the immediate trigger following manual operations is intermittent.
PROBLEM DESCRIPTION
A clear and concise description of what the problem is.
Manual lock state changes are not consistently detected by Nuki Hub.
When the lock is operated manually, either by rotating the knob or by pressing the central button, the state displayed in Home Assistant sometimes remains unchanged.
Commands initiated from Home Assistant work correctly. A manual MQTT lock-state query also works correctly and immediately updates the state:
The periodic lock-state query also works correctly. After changing the query interval to 120 seconds and restarting Nuki Hub, the WebSerial log showed queries exactly 120 seconds apart:
The BLE connection itself therefore appears to be functional. Nuki Hub continuously receives the lock advertising packets, and direct state queries complete successfully.
The problem appears to be limited to the automatic state-query trigger after some manual lock operations. In the affected cases, the WebSerial log only shows advertising packets and no immediate
KeyTurnerStatusUpdatedorQuerying lock stateevent.After restarting Nuki Hub, the automatic event worked at least once:
Expected behavior:
Every lock state change, regardless of how it is initiated (Home Assistant, Nuki app, manual knob rotation or button press), should immediately trigger a lock state query and publish the updated state via MQTT.
Actual behavior:
Only actions initiated through Home Assistant (via Nuki Hub) are immediately reflected in Home Assistant.
When the lock is operated outside of Nuki Hub (for example using the Nuki app, by rotating the knob, or by pressing the lock button), Nuki Hub never performs an immediate lock state query.
The state in Home Assistant remains unchanged until either:
a manual MQTT query is sent to
nukihub/lock/query/lockstate, orthe configured periodic lock state query interval expires.
The BLE connection is working correctly, because manual MQTT queries always succeed and the periodic polling also works correctly.
REQUESTED INFORMATION
Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!
TO REPRODUCE
Steps to reproduce the behavior:
This indicates that MQTT, BLE state queries and periodic polling work correctly, while the immediate trigger following manual operations is intermittent.