Manage Keypad Authorizations via API (MQTT/Local HTTP)
Product name
Nuki Smart Lock Pro (Gen 4) / Nuki Keypad
Summary
Allow the activation, deactivation, and management of Nuki Keypad entry codes via the local API (specifically MQTT and Local HTTP API) to enable dynamic access control through Smart Home systems like Home Assistant.
Features
- Toggle Authorization State: Ability to enable or disable a specific Keypad
code-idvia an MQTT topic (e.g.,nuki/deviceID/keypad/codeID/enabled). - Dynamic Code Management: Support for creating, updating, or deleting Keypad codes via the Local API without needing the Nuki Cloud or manual App interaction.
- Status Feedback: MQTT state updates that reflect whether a specific authorization is currently active or inactive.
Reason
Currently, the Nuki Keypad only supports static timeframes (e.g., “Mondays from 9:00 to 12:00”). However, real-world schedules are often dynamic. By exposing the keypad authorizations to the local API, users can sync their door access with external calendars, booking systems, or presence-based triggers.
Using the Cloud API for this is often slower and introduces an external dependency, whereas MQTT offers a low-latency, local-only solution that fits perfectly into the “Pro” lineup’s philosophy.
Examples
- Calendar-Sync for Services: Automatically activate a cleaning service’s keypad code only when a Google Calendar or iCloud event exists. If the cleaner reschedules, the code follows the calendar entry automatically.
- Short-Term Rentals: For users not using the official Airbnb integration (e.g., direct bookings), a Home Assistant automation could activate a specific code at check-in time and deactivate it exactly at check-out.
- One-Time Emergency Access: Remotely enable a “Maintenance” code for a specific one-hour window via a dashboard button in Home Assistant when a technician arrives unexpectedly.
- Presence-Based Security: Automatically disable all guest keypad codes when the “Vacation Mode” is toggled on in the smart home system, regardless of their pre-set schedules.
Best regards, Bastian