This module builds an ESPHome lock platform for Nuki Smartlock (nuki_lock) that creates 6 new entities in Home Assistant:
- Lock
- Binary Sensor: Is Paired
- Binary Sensor: Is Connected
- Binary Sensor: Critical Battery
- Sensor: Battery Level
- Binary Sensor: Door Sensor
- Text Sensor: Door Sensor State
The lock entity is updated whenever the look changes state (via Nuki App, HA, or manually) using Nuki BT advertisement mechanism.
Add the following to the ESPHome yaml file:
esphome:
libraries:
- Preferences
- https://github.com/vinmenn/Crc16.git
- https://github.com/uriyacovy/NukiBleEsp32
external_components:
- source: github://uriyacovy/ESPHome_nuki_lock
esp32:
board: "esp32dev" # Or whatever other board you're using
framework:
type: arduino
version: 2.0.3
platform_version: 5.3.0
lock:
# Required:
- platform: nuki_lock
name: Nuki Lock
is_connected:
name: "Nuki Connected"
is_paired:
name: "Nuki Paired"
# Optional:
battery_critical:
name: "Nuki Battery Critical"
battery_level:
name: "Nuki Battery Level"
door_sensor:
name: "Nuki Door Sensor"
door_sensor_state:
name: "Nuki Door Sensor State"
After running ESPHome (esphome run <yamlfile.yaml>), the module will actively try to pair to Nuki. To set Nuki for paring mode, press the button for 5 seconds until the led turns on. Once Nuki is paired, the new ESPHome entities will get the updated state.
To unlatch doors without a handle, call open service from Home Assistant:
service: lock.open
data: {}
target:
entity_id: lock.<NODE_NAME>
To run lock and go, call this service from Home Assistant:
service: esphome.<NODE_NAME>_lock_n_go
data: {}
To unpair Nuki, add the following to ESPHome yaml file below platform: nuki_lock
section and run ESPHome again:
unpair: true
The module depends on the work done by I-Connect, https://github.com/I-Connect/NukiBleEsp32
- ESP32 wroom
- Nuki smart lock v3
- Nuki smart lock v2
- Nuki door sensor