Hi, I’m trying to get a connection from Nuki over Matter to Home Assistant. The Home Assistant is installed on a NUC in a Proxmox VM. The Thread network is established over a Sonoff Zigbee Dongle-E with the newest Thread firmware (darkxst). The OTBR with activated NAT64/deactivated hardware flow control and Matter Server are running without errors, or at least I don’t see any critical errors.
My device registration chain:
[21:02:28] INFO: otbr-agent exited with code 0 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target prot opt source destination
DROP all -- anywhere anywhere PKTTYPE = unicast
DROP all -- anywhere anywhere match-set otbr-ingress-deny-src src
ACCEPT all -- anywhere anywhere match-set otbr-ingress-allow-dst dst
DROP all -- anywhere anywhere PKTTYPE = unicast
ACCEPT all -- anywhere anywhere
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
Chain OTBR_FORWARD_EGRESS (0 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
[21:02:28] INFO: OTBR firewall teardown completed.
s6-rc: info: service otbr-agent successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service universal-silabs-flasher: stopping
s6-rc: info: service mdns: stopping
Default: mDNSResponder (Engineering Build) (Jan 14 2025 21:04:03) stopping
s6-rc: info: service universal-silabs-flasher successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
[21:02:28] INFO: mDNS ended with exit code 4 (signal 0)...
s6-rc: info: service mdns successfully stopped
[21:02:32] INFO: The otbr-web is disabled.
s6-rc: info: service mdns: starting
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service mdns successfully started
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service banner: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
[21:02:32] INFO: Starting mDNS Responder...
Default: mDNSResponder (Engineering Build) (Jan 14 2025 21:04:03) starting
-----------------------------------------------------------
Add-on: OpenThread Border Router
OpenThread Border Router add-on
-----------------------------------------------------------
Add-on version: 2.13.0
You are running the latest version of this add-on.
System: Home Assistant OS 14.2 (amd64 / qemux86-64)
Home Assistant Core: 2025.1.4
Home Assistant Supervisor: 2024.12.3
-----------------------------------------------------------
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service universal-silabs-flasher: starting
[21:02:33] INFO: Flashing firmware is disabled
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service otbr-agent: starting
[21:02:33] INFO: Setup OTBR firewall...
[21:02:33] INFO: Starting otbr-agent...
[NOTE]-AGENT---: Running 0.3.0-b067e5ac-dirty
[NOTE]-AGENT---: Thread version: 1.3.0
[NOTE]-AGENT---: Thread interface: wpan0
[NOTE]-AGENT---: Radio URL: spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=460800&uart-init-deassert
[NOTE]-AGENT---: Radio URL: trel://enp0s18
[NOTE]-ILS-----: Infra link selected: enp0s18
49d.19:59:43.112 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.051 [N] RoutingManager: BR ULA prefix: fd3e:67df:7d6f::/48 (loaded)
00:00:00.051 [N] RoutingManager: Local on-link prefix: fd69:f948:dd94:2f03::/64
00:00:00.092 [N] Mle-----------: Role disabled -> detached
00:00:00.107 [N] P-Netif-------: Changing interface state to up.
00:00:00.118 [W] P-Netif-------: Failed to process request#2: No such process
00:00:00.119 [W] P-Netif-------: Failed to process request#6: No such process
s6-rc: info: service otbr-agent successfully started
s6-rc: info: service otbr-agent-configure: starting
[21:02:34] INFO: Enabling NAT64.
00:00:00.360 [W] P-Netif-------: Failed to process request#7: No such process
Done
Done
00:00:00.368 [W] P-Daemon------: Failed to write CLI output: Broken pipe
Done
00:00:00.374 [W] P-Daemon------: Failed to write CLI output: Broken pipe
s6-rc: info: service otbr-agent-configure successfully started
s6-rc: info: service otbr-agent-rest-discovery: starting
[21:02:34] INFO: Successfully sent discovery information to Home Assistant.
s6-rc: info: service otbr-agent-rest-discovery successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
00:00:26.659 [N] Mle-----------: RLOC16 4800 -> fffe
00:00:26.936 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:33.436 [N] RouterTable---: Allocate router id 18
00:00:33.436 [N] Mle-----------: RLOC16 fffe -> 4800
00:00:33.439 [N] Mle-----------: Role detached -> leader
00:00:33.440 [N] Mle-----------: Partition ID 0x4e5cc627
[NOTE]-BBA-----: BackboneAgent: Backbone Router becomes Primary!
00:00:34.765 [W] DuaManager----: Failed to perform next registration: NotFound
Matter Server
s6-rc: info: service matter-server successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service banner: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
-----------------------------------------------------------
Add-on: Matter Server
Matter WebSocket Server for Home Assistant Matter support.
-----------------------------------------------------------
Add-on version: 7.0.0
You are running the latest version of this add-on.
System: Home Assistant OS 14.2 (amd64 / qemux86-64)
Home Assistant Core: 2025.1.4
Home Assistant Supervisor: 2024.12.3
-----------------------------------------------------------
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service banner successfully started
s6-rc: info: service matter-server: starting
s6-rc: info: service matter-server successfully started
s6-rc: info: service legacy-services: starting
[21:06:30] INFO: Starting Matter Server...
s6-rc: info: service legacy-services successfully started
[21:06:31] INFO: Using 'enp0s18' as primary network interface.
[21:06:31] INFO: Successfully send discovery information to Home Assistant.
2025-02-04 21:06:34.423 (MainThread) INFO [matter_server.server.stack] Initializing CHIP/Matter Logging...
2025-02-04 21:06:34.423 (MainThread) INFO [matter_server.server.stack] Initializing CHIP/Matter Controller Stack...
[1738699594.460502][117:117] CHIP:CTL: Setting attestation nonce to random value
[1738699594.460924][117:117] CHIP:CTL: Setting CSR nonce to random value
[1738699594.462151][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1738699594.466133][117:117] CHIP:DL: Wrote settings to /tmp/chip_kvs
[1738699594.466464][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_factory.ini
[1738699594.466611][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_config.ini
[1738699594.466659][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_counters.ini
[1738699594.470330][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1738699594.470387][117:117] CHIP:DL: NVS set: chip-counters/reboot-count = 4 (0x4)
[1738699594.470797][117:117] CHIP:DL: Got Ethernet interface: enp0s18
[1738699594.471089][117:117] CHIP:DL: Found the primary Ethernet interface:enp0s18
[1738699594.471788][117:117] CHIP:DL: Failed to get WiFi interface
[1738699594.471825][117:117] CHIP:DL: Failed to reset WiFi statistic counts
2025-02-04 21:06:34.472 (MainThread) INFO [chip.storage] Initializing persistent storage from file: /data/chip.json
2025-02-04 21:06:34.472 (MainThread) INFO [chip.storage] Loading configuration from /data/chip.json...
2025-02-04 21:06:34.600 (MainThread) INFO [chip.CertificateAuthority] Loading certificate authorities from storage...
2025-02-04 21:06:34.600 (MainThread) INFO [chip.CertificateAuthority] New CertificateAuthority at index 1
2025-02-04 21:06:34.602 (MainThread) INFO [chip.CertificateAuthority] Loading fabric admins from storage...
2025-02-04 21:06:34.602 (MainThread) INFO [chip.FabricAdmin] New FabricAdmin: FabricId: 0x0000000000000002, VendorId = 0x134B
2025-02-04 21:06:34.603 (MainThread) INFO [matter_server.server.stack] CHIP Controller Stack initialized.
2025-02-04 21:06:34.603 (MainThread) INFO [matter_server.server.server] Starting the Matter Server...
2025-02-04 21:06:34.608 (MainThread) INFO [matter_server.server.helpers.paa_certificates] Skip fetching certificates (already fetched within the last 24h).
2025-02-04 21:06:34.608 (MainThread) INFO [chip.FabricAdmin] Allocating new controller with CaIndex: 1, FabricId: 0x0000000000000002, NodeId: 0x000000000001B669, CatTags: []
2025-02-04 21:06:34.700 (MainThread) INFO [matter_server.server.vendor_info] Loading vendor info from storage.
2025-02-04 21:06:34.734 (MainThread) INFO [matter_server.server.vendor_info] Loaded 282 vendors from storage.
2025-02-04 21:06:34.734 (MainThread) INFO [matter_server.server.vendor_info] Fetching the latest vendor info from DCL.
2025-02-04 21:06:35.022 (MainThread) INFO [matter_server.server.vendor_info] Fetched 281 vendors from DCL.
2025-02-04 21:06:35.022 (MainThread) INFO [matter_server.server.vendor_info] Saving vendor info to storage.
2025-02-04 21:06:35.030 (MainThread) INFO [matter_server.server.device_controller] Loaded 0 nodes from stored configuration
2025-02-04 21:06:35.041 (MainThread) INFO [matter_server.server.server] Matter Server successfully initialized.
If you use the HA app on Android make sure the correct Thread network is used by it.
In occasions where e.g. also a Google Nest Hub is also in the same network the app tends to use other credentials.
You can also check the Thread view inside HA to see if there are other Thread networks as shown in the screenshots here:
In my logs I also see the “Failed to process request#xx: No such process” errors but the other errors seem not to be present in my OTBR logs.
But I’m using the integrated Thread Radio of the Home Assistant Yellow so might be a bit different.
Best thing to do would be probably to ask around in the Home Assistants forums in how to further debug this.
Want to connect my NUKI Smart Lock Ultra to HA over Matter/Thread as well. HA is running on RPi 5 with ZBT-1 (flashed with OpenThread RCP 2.4.4.0 firmware). Addons Matter Server and OpenThread Border router are installed and running. The HA OpenThread Border Router is set as my preferred network.
I’m struggling getting the connection done via an Android device while activating Matter in the Nuki app. It breaks saying it cannot connect the device and I should check if my phone is connected to the WiFi. However my phone is connected to the WiFi!!! I’ve already raised a ticket at the Nuki support.
Though I’m asking here for some advice because I’m reading it’s quite challenging to manage the commissioning when you have Nest hubs at home and you want to synchronize the thread credentials on the Android phone.
That’s what I try but it fails as well. The Matter Server log says
2025-05-30 17:47:07.003 (MainThread) ERROR [matter_server.server.client_handler] [548415136464] Error while handling: commission_with_code: Bluetooth commissioning is not available.
But it’s bluetooth and I understood it should work without bluetooth. Any idea how I succeed? Do I need to setup WiFi via the Nuki app before?
From personal experience Matter commissioning via HA companion app mostly fails due to wrong Thread credentials being sent to the Smart Lock.
And this mostly happens if you have either multiple Thread networks (Nest Hub, …) or multiple HA instances managed with the HA companion app that have different Thread credentials.
Even after syncing the Thread credentials sometimes the wrong credentials are used.
In some cases a reboot of the phone (after syncing) helps but not always.
What always helped is to clear the app data of the “Google Play Services” but be careful with this as you will lose other things as well (payment cards on Google Wallet e.g.).
During Matter commissioning the Matter device (Smart Lock in our case) receives the Thread credentials to connect to.
Afterwards the app tries to reach the Matter device via the IP network and if it doesn’t reach the device, it shows the message to connect to the correct WiFi which might be a bit misleading. But the message origins from the Google APIs not HA or Nuki.
Matter commissioning is (initially) always done via Bluetooth.
Even with the WebSocket flow. In this case Bluetooth of the RPi is used.
I’m currently using a spare phone to do the Matter commissioning with HA.
I’ve set up this phone from scratch and directly installed HA companion app, synced Thread credentials and use this phone since then. Success rate is 99%.
There’s just one HA instance in my case but a couple of active Nest Hubs. I tried before with clearing the Google Play Services app data and syncing the Thread credentials between HA and my Android phone again. However I didn’t succeed - I suppose the Thread network of the Nest Hubs gets registered automatically too quick again. I have heard about also uninstalling the Google Home app - but come on… what else to delete and clean and setting up again for having tried with a chance to fail again.
So that possibly fails in my case…
Are there any special settings required in my AVM FritzBox? IPv6 support is enabled.
Or is it rather a consequence of the (probably) wrong Thread credentials?
Good idea. I’ll have a look for unused alternative phones in my drawers…
That was my understanding, too. I thought to give it a try because of being independent at least from an “unspoiled” phone. Luckily RPi 5 has Bluetooth and so it’s just a question of the range to be close enough to the Nuki Smart Lock…
How to get the Nuki Smart Lock in commissioning mode by commissioning via WebSocket? Or to establish the Bluetooth connection between my HA with the Matter Server/WebSocket Service?
You don’t need to enable anything special. I have two environments with two different Fritz!Box models and both work.
But I can’t speak for anything you might have actively disabled on the routers.
Same as with commissioning via app. You need to activate Matter via the Nuki app and as long as the LEDs on the Smart Lock are lighting up the commissioning window is open.
Yes, sometimes it is really frustrating. It would help if the UI would at least show you the network it is trying to connect to. In some occasions it even does but not in all.
It helps that HA now adds some random chars to it’s network names, in the past all networks were just called “home-assistant”. But it only helps if you see the network name on failure.
Maybe it helps if you unplug all Nest Hubs, remove their networks from the Thread network overview inside HA, sync credentials again with companion app and then try commissioning.
Yes, that’s right. To use WebSocket and Chrome, the Nuki must be connected via WiFi.
This method comes from the time when the HA Companion App did not yet offer Thread Support Keyshare with the iPhone, but it works really well now, just like with Apple Home etc. You just have to have your Border Router stored under Thread in the Companion App, then you can scan the QR code as normal and add the Nuki.
I succeeded in activation of Matter. Using WebSockets in Chrome. Using Bluetooth. No phone (no trouble with syncing Thread credentials). No setup of WiFi in Nuki Smart Lock.
There are a couple of things besides installing addons / integrations and setting up a Thread network in HA…
Please note: It’s experimental, but it worked.
You need to disable the HA Core Bluetooth integration. In Matter Server configuration you need to insert the Bluetooth adapter ID. Check this…
It needs to bring Nuki Smart Lock into readiness for commissioning. Thanks for the hint, Marc.
The WebSocket commands (I had used Chrome addon “Quick WebSocket Client”).
WebSocket connect
ws://[your HA IP]:[your Matter Server WebSocket port]/ws
WiFi credentials - I used this command however I suppose it’s not necessary