I need help troubleshooting why my Level Bolt locks won't integrated into my Home Assistant setup.
I purchased two Level Bolt locks and previously had them integrated into my Matter network via Thread. I had to reset my Matter & Thread setup, but now I cannot get the locks to pair. I called Level for support and they weren't helpful - they basically said they don't support Home Assistant and couldn't provide me any guidance.
Here are additional details that might be helpful:
- I am running HA on a Dell Optiplex miniPC. I do not have Bluetooth on the PC, but have an ESP32 device in the garage where the locks are located. I am using the Home Assistant Connect ZBT-2 as my Thread Boarder Router.
- I tried to pair the locks using my iPhone (scanning the QR code and entering the code manually) and through the Bluetooth proxy via Matter WebUI. Both failed.
- I did factory reset the locks (including removing them from the Level app) before trying to recommission them (and pulled the battery to ensure the device was awake/in pairing mode.)
- I get an "Unable to Add Accessory" message when trying to add the locks.
- My home network has multiple VLANs with firewall rules. However, I was on the same VLAN on my phone as my Home Assistant server.
- I have one other device (an Eve Plug) already on my Matter network. (I ran into several failures when trying to commission it, but it eventually worked.)
- I do not have an Apple HomePod, Apple TV, any Google devices, etc. I do not have any other Thread networks setup; the ZBT-2 is the only one.
I fed the logs into Claude, which said the lock is not advertising as a Matter commissionable device. As noted above, I factory reset the locks and pulled the battery just prior to the commissioning, so it should still have been in pairing mode. I also tried to commissioning after setting it up in the Level app (using the "integrate with other platform." The locks work fine in the Level app.)
Here is the Matter Server log from when I was trying to commission the lock (Note: node @1:2 is the Eve Plug):
2026-06-08 19:46:16.845 INFO WebSocketC~erHandler [21] WebSocket connection established
2026-06-08 19:46:16.855 INFO WebSocketC~erHandler WebSocket server start_listening
2026-06-08 19:46:16.855 INFO WebSocketC~erHandler WebSocket server start_listening. Returned 1 nodes
2026-06-08 19:46:41.816 INFO ConfigStorage Set config key nextNodeId to 5
2026-06-08 19:46:42.206 INFO Discovery Initiating discovery of node with discriminator 13
2026-06-08 19:47:41.815 INFO WebSocketC~erHandler [21] WebSocket connection closed
2026-06-08 19:47:46.991 INFO WebSocketC~erHandler [22] WebSocket connection established
2026-06-08 19:47:47.000 INFO WebSocketC~erHandler WebSocket server start_listening
2026-06-08 19:47:47.001 INFO WebSocketC~erHandler WebSocket server start_listening. Returned 1 nodes
2026-06-08 19:48:15.041 INFO WebSocketC~erHandler [22] WebSocket connection closed
2026-06-08 19:49:42.211 ERROR WebSocketC~erHandler [21] WebSocket error response (commission_with_code) 806560861 Commission failed: discovery of node with discriminator 13 failed: No commissionable device was discovered
at Function.nodeCommissionFailed (/opt/matterjs/node_modules/@matter-server/ws-controller/src/types/WebSocketMessageTypes.ts:100:16)
at ControllerCommandHandler.commissionNode (/opt/matterjs/node_modules/@matter-server/ws-controller/src/controller/ControllerCommandHandler.ts:964:31)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async WebSocketControllerHandler.#handleCommissionWithCode (/opt/matterjs/node_modules/@matter-server/ws-controller/src/server/WebSocketControllerHandler.ts:699:28)
at async WebSocketControllerHandler.#handleWebSocketRequest (/opt/matterjs/node_modules/@matter-server/ws-controller/src/server/WebSocketControllerHandler.ts:472:30)
Caused by: [discovery] discovery of node with discriminator 13 failed: No commissionable device was discovered
at CommissioningDiscovery.onComplete (/opt/matterjs/node_modules/@matter/node/src/behavior/system/controller/discovery/ParallelPaseDiscovery.ts:182:19)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
2026-06-08 19:54:46.204 INFO ClientInteraction Invoke » @1:2•1c7e⇵b8c0 1.onOff.off with (no payload)
2026-06-08 19:54:46.793 INFO ClientInteraction Invoke « @1:2•1c7e⇵b8c0 1.onOff.off status: Success (0)
2026-06-08 19:55:42.224 INFO ClientInteraction Invoke » @1:2•1c7e⇵b8c1 1.onOff.off with (no payload)
2026-06-08 19:55:43.787 INFO ClientInteraction Invoke « @1:2•1c7e⇵b8c1 1.onOff.off status: Success (0)
Here is my Open Thread Boarder Router log from the same time:
21:40:02.134 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
21:40:02.567 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:105, chksum:8ca6, ecn:no, to:a67ad46bef84e133, sec:no, error:NoAck, prio:net, radio:all
21:40:02.567 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:02.567 [N] MeshForwarder-: dst:[fe80:0:0:0:a47a:d46b:ef84:e133]:19788
21:40:03.402 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:105, chksum:757b, ecn:no, to:a67ad46bef84e133, sec:no, error:NoAck, prio:net, radio:all
21:40:03.402 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:03.402 [N] MeshForwarder-: dst:[fe80:0:0:0:a47a:d46b:ef84:e133]:19788
21:40:19.484 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:426, chksum:62b0, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:low, radio:all
21:40:19.484 [N] MeshForwarder-: src:[fd9a:de03:e32c:e765:96:3672:7a3c:98bd]:64761
21:40:19.484 [N] MeshForwarder-: dst:[fde7:217a:a3eb:1:6b8e:9285:2e02:b198]:5540
21:40:33.999 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:90, chksum:6234, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:33.999 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:33.999 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:34.761 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:fd4c, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:34.762 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:34.762 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:36.386 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:e371, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:36.386 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:36.386 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:37.299 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:f78a, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:37.299 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:37.299 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:37.984 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:2e99, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:37.984 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:37.984 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:39.944 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:3c6f, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:40:39.944 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:40:39.944 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:40:41.576 [W] SrpServer-----: Failed to handle DNS message: Drop
21:40:44.156 [W] SrpServer-----: Failed to handle DNS message: Drop
21:40:49.475 [W] SrpServer-----: Failed to handle DNS message: Drop
21:41:28.568 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:7599, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:41:28.568 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:41:28.568 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:41:29.636 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:7598, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:41:29.636 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:41:29.636 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:44:33.432 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:108, chksum:d78f, ecn:no, to:a67ad46bef84e133, sec:no, error:NoAck, prio:net, radio:all
21:44:33.432 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:44:33.432 [N] MeshForwarder-: dst:[fe80:0:0:0:a47a:d46b:ef84:e133]:19788
21:44:35.641 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:7599, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:44:35.641 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:44:35.641 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:44:37.668 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
21:44:38.553 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:557b, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:44:38.553 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:44:38.553 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:44:40.565 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:557a, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:44:40.565 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:44:40.565 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:44:55.458 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:133, chksum:2404, ecn:no, to:9e1b0e9312382dd3, sec:no, error:NoAck, prio:net, radio:15.4
21:44:55.458 [N] MeshForwarder-: src:[fe80:0:0:0:8850:f4cd:ccd3:f46]:19788
21:44:55.458 [N] MeshForwarder-: dst:[fe80:0:0:0:9c1b:e93:1238:2dd3]:19788
21:44:56.936 [W] SrpServer-----: Failed to handle DNS message: Drop
21:45:00.775 [W] SrpServer-----: Failed to handle DNS message: Drop
21:45:04.900 [W] SrpServer-----: Failed to handle DNS message: Drop
21:46:57.366 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
21:46:57.475 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:7599, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:46:57.475 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:46:57.475 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
21:47:01.029 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:83, chksum:557b, ecn:no, to:0x0825, sec:yes, error:NoAck, prio:normal, radio:all
21:47:01.029 [N] MeshForwarder-: src:[fdfa:8fff:b063:3cc9:531:e104:903f:50ea]:53536
21:47:01.029 [N] MeshForwarder-: dst:[fdfa:8fff:b063:3cc9:30aa:8331:c78d:5db]:49154
I've searched the web, HA community discussion and Discord and cannot find any solutions. I'm at a standstill and looking for any help that can be provided.