I have a Kwikset 916 Smart lock that I’m trying to pair with home assistant. I am able to pair it however it immediately disconnects.
Setup:
- Smart Lock: Kwikset 916 zigbee
- Running on Raspberry Pi 5
- SONOFF Zigbee 3.0 USB Dongle Plus-E Gateway: Flashed on the official website
Here are the relevant logs. If I fiddle with the lock the smart lock successfully sends a command back to Zigbee2MQTT
[1/1/2026, 8:55:14 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/permit_join', payload '{"data":{"time":254},"status":"ok","transaction":"o89aq-2"}'
[1/1/2026, 8:55:35 AM] zh:controller: Interview for '0x002446fffd08792e' started
[1/1/2026, 8:55:35 AM] z2m: Device '0x002446fffd08792e' joined
[1/1/2026, 8:55:35 AM] z2m: Starting interview of '0x002446fffd08792e'
[1/1/2026, 8:55:35 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x002446fffd08792e","ieee_address":"0x002446fffd08792e"},"type":"device_joined"}'
[1/1/2026, 8:55:35 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x002446fffd08792e","ieee_address":"0x002446fffd08792e","status":"started"},"type":"device_interview"}'
[1/1/2026, 8:55:35 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x002446fffd08792e","ieee_address":"0x002446fffd08792e"},"type":"device_announce"}'
[1/1/2026, 8:55:36 AM] zh:controller: Succesfully interviewed '0x002446fffd08792e'
[1/1/2026, 8:55:36 AM] z2m: Successfully interviewed '0x002446fffd08792e', device has successfully been paired
[1/1/2026, 8:55:36 AM] z2m: Device '0x002446fffd08792e' is supported, identified as: Weiser SmartCode 10 Touch (9GED21500-005)
[1/1/2026, 8:55:36 AM] z2m: Configuring '0x002446fffd08792e'
[1/1/2026, 8:55:36 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"SmartCode 10 Touch","exposes":[{"features":[{"access":7,"description":"State of the lock","label":"State","name":"state","property":"state","type":"binary","value_off":"UNLOCK","value_on":"LOCK"},{"access":1,"description":"Actual state of the lock","label":"Lock state","name":"lock_state","property":"lock_state","type":"enum","values":["not_fully_locked","locked","unlocked"]}],"type":"lock"},{"access":7,"features":[{"access":2,"description":"User ID to set or clear the pincode for","label":"User","name":"user","property":"user","type":"numeric"},{"access":2,"description":"Type of user, unrestricted: owner (default), (year|week)_day_schedule: user has ability to open lock based on specific time period, master: user has ability to both program and operate the door lock, non_access: user is recognized by the lock but does not have the ability to open the lock","label":"User type","name":"user_type","property":"user_type","type":"enum","values":["unrestricted","year_day_schedule","week_day_schedule","master","non_access"]},{"access":2,"description":"Whether the user is enabled/disabled","label":"User enabled","name":"user_enabled","property":"user_enabled","type":"binary","value_off":false,"value_on":true},{"access":2,"description":"Pincode to set, set pincode to null to clear","label":"PIN code","name":"pin_code","property":"pin_code","type":"numeric"}],"label":"Pin code","name":"pin_code","property":"pin_code","type":"composite"},{"access":1,"description":"Source of the triggered action on the lock","label":"Action source name","name":"action_source_name","property":"action_source_name","type":"enum","values":["keypad","rfid","manual","rf"]},{"access":1,"description":"ID of user that triggered the action on the lock","label":"Action user","name":"action_user","property":"action_user","type":"numeric"},{"access":7,"description":"The number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled","label":"Auto relock time","name":"auto_relock_time","property":"auto_relock_time","type":"numeric","unit":"s","value_max":3600,"value_min":0},{"access":7,"description":"Sound volume of the lock","label":"Sound volume","name":"sound_volume","property":"sound_volume","type":"enum","values":["silent_mode","low_volume","high_volume"]},{"access":5,"category":"diagnostic","description":"Remaining battery in %","label":"Battery","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"category":"diagnostic","description":"Triggered action (e.g. a button click)","label":"Action","name":"action","property":"action","type":"enum","values":["unknown","lock","unlock","lock_failure_invalid_pin_or_id","lock_failure_invalid_schedule","unlock_failure_invalid_pin_or_id","unlock_failure_invalid_schedule","one_touch_lock","key_lock","key_unlock","auto_lock","schedule_lock","schedule_unlock","manual_lock","manual_unlock","non_access_user_operational_event"]},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"9GED21500-005","options":[{"access":2,"description":"Expose pin of this lock in the published payload (default false).","label":"Expose PIN","name":"expose_pin","property":"expose_pin","type":"binary","value_off":false,"value_on":true}],"source":"native","supports_ota":false,"vendor":"Weiser"},"friendly_name":"0x002446fffd08792e","ieee_address":"0x002446fffd08792e","status":"successful","supported":true},"type":"device_interview"}'
[1/1/2026, 8:55:36 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x002446fffd08792e', payload '{"action_source_name":null,"action_user":null,"auto_relock_time":null,"battery":100,"linkquality":192,"lock_state":"locked","pin_code":null,"sound_volume":null,"state":"LOCK"}'
[1/1/2026, 8:55:37 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x002446fffd08792e', payload '{"action_source_name":null,"action_user":null,"auto_relock_time":null,"battery":100,"linkquality":184,"lock_state":"locked","pin_code":null,"sound_volume":null,"state":"LOCK"}'
[1/1/2026, 8:55:37 AM] z2m: Successfully configured '0x002446fffd08792e'
[1/1/2026, 8:55:40 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x002446fffd08792e', payload '{"action":"manual_unlock","action_source":2,"action_source_name":"manual","action_user":null,"auto_relock_time":null,"battery":100,"linkquality":180,"lock_state":"locked","pin_code":null,"sound_volume":null,"state":"LOCK"}'
[1/1/2026, 8:55:40 AM] z2m:mqtt: MQTT publish: topic 'homeassistant/device_automation/0x002446fffd08792e/action_manual_unlock/config', payload '{"automation_type":"trigger","device":{"hw_version":101,"identifiers":["zigbee2mqtt_0x002446fffd08792e"],"manufacturer":"Weiser","model":"SmartCode 10 Touch","model_id":"9GED21500-005","name":"0x002446fffd08792e","via_device":"zigbee2mqtt_bridge_0x08b95ffffed92ac5"},"origin":{"name":"Zigbee2MQTT","sw":"2.7.1","url":"https://www.zigbee2mqtt.io"},"payload":"manual_unlock","subtype":"manual_unlock","topic":"zigbee2mqtt/0x002446fffd08792e/action","type":"action"}'
[1/1/2026, 8:55:40 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x002446fffd08792e/action', payload 'manual_unlock'
[1/1/2026, 8:55:41 AM] z2m: Device '0x002446fffd08792e' left the network
[1/1/2026, 8:55:41 AM] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x002446fffd08792e","ieee_address":"0x002446fffd08792e"},"type":"device_leave"}'
Things I’ve already tried
- Using ZHA (And disconnecting and removing)
- Setting up Zigbee2MQTT and Mosquito
- Using a USB extender to remove interference
- Using fresh batteries
- Pressing the B button 9 times to reset the network settings
- Pressing and holding the program and reinserting the batteries and continuing to hold for 30s
- Calling Kwikset customer support but the tech wasn’t aware of home assistant really
Anything else for me to try?
