Connection Nuki Ultra to HA over Matter

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:

  • Nuki App: Push activation button in Smart Home/Matter → ‘scan code’ message appears
  • HA App: Add new device/Matter in devices / devices and services → pushing ‘No. New device’ → scanning QR code from the card.

Then the Nuki lock blinks for a while. Afterward, an error appears stating that a Matter bridge is needed.

I have no idea what could be wrong. Any clues?

1 Like

OTRB

[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.
1 Like

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:

2 Likes

I don’t use any other thread devices like Nest Hub. I have only HA and NUC, no other thread network. Only Zigbee over second Sonoff Zigbee Dongle-E.


I’ve downgraded the firmware to ot-rcp-v2.4.5.0-zbdonglee-460800.gbl in the hope that it would solve the problem, but it didn’t help.

Could it be something wiht credational (thread_credentials_set": false), debug log Matter.

  "data": {
    "server": {
      "info": {
        "fabric_id": 2,
        "compressed_fabric_id": 
        "schema_version": 11,
        "min_supported_schema_version": 9,
        "sdk_version": "2024.11.4",
        "wifi_credentials_set": false,
        "thread_credentials_set": false,
        "bluetooth_enabled": false
      },
      "nodes": [],
      "events": []

I’ve just discovered following in the log of OTBR:

[18:13:32] 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:27.218 [N] Mle-----------: RLOC16 4800 -> fffe
00:00:27.817 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:34.317 [N] RouterTable---: Allocate router id 18
00:00:34.317 [N] Mle-----------: RLOC16 fffe -> 4800
00:00:34.320 [N] Mle-----------: Role detached -> leader
00:00:34.320 [N] Mle-----------: Partition ID 0x3ad23f1b
[NOTE]-BBA-----: BackboneAgent: Backbone Router becomes Primary!
00:00:36.605 [W] DuaManager----: Failed to perform next registration: NotFound
00:46:19.930 [N] Mle-----------: Role leader -> detached
00:46:19.931 [N] Mle-----------: Role detached -> disabled
00:46:19.934 [N] P-Netif-------: Changing interface state to down.
[NOTE]-BBA-----: BackboneAgent: Backbone Router resigns Primary to Secondary!
write: Input/output error
00:46:19.946 [W] P-Netif-------: Failed to receive, error:Failed
00:46:19.968 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.035 [N] RoutingManager: No valid /48 BR ULA prefix found in settings, generating new one
00:00:00.038 [N] RoutingManager: BR ULA prefix: fdc6:3ae:efee::/48 (generated)
00:00:00.038 [N] RoutingManager: Local on-link prefix: fdde:ad00:beef:cafe::/64
00:00:00.059 [W] P-Netif-------: Failed to process request#24: No such process
00:00:00.074 [N] RoutingManager: Local on-link prefix: fd44:c5c4:20cb:614a::/64
00:00:00.082 [N] Mle-----------: Role disabled -> detached
00:00:00.088 [N] P-Netif-------: Changing interface state to up.
00:00:00.103 [W] P-Netif-------: Failed to process request#27: No such process
00:00:00.637 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:07.137 [N] RouterTable---: Allocate router id 3
00:00:07.137 [N] Mle-----------: RLOC16 fffe -> 0c00
00:00:07.140 [N] Mle-----------: Role detached -> leader
00:00:07.140 [N] Mle-----------: Partition ID 0x659d05e5
00:00:18.246 [N] Mle-----------: Role leader -> detached
00:00:18.247 [N] Mle-----------: Role detached -> disabled
00:00:18.250 [N] P-Netif-------: Changing interface state to down.
write: Input/output error
00:00:18.267 [W] P-Netif-------: Failed to receive, error:Failed
00:00:18.278 [N] RoutingManager: Local on-link prefix: fd69:f948:dd94:2f03::/64
00:00:18.289 [N] Mle-----------: Role disabled -> detached
00:00:18.289 [N] P-Netif-------: Changing interface state to up.
00:00:18.313 [W] P-Netif-------: Host netif state notification is unexpected (ignore)
00:00:18.315 [W] P-Netif-------: Failed to process request#36: No such process
00:00:18.316 [W] P-Netif-------: Failed to process request#37: Cannot assign requested address
00:00:18.316 [W] P-Netif-------: Failed to process request#42: No such process
00:00:44.825 [N] Mle-----------: RLOC16 0c00 -> fffe
00:00:45.128 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:51.628 [N] RouterTable---: Allocate router id 3
00:00:51.628 [N] Mle-----------: RLOC16 fffe -> 0c00
00:00:51.632 [N] Mle-----------: Role detached -> leader
00:00:51.632 [N] Mle-----------: Partition ID 0x5d0d0938
00:00:51.651 [W] P-Netif-------: Failed to process request#47: Cannot assign requested address
00:01:26.218 [N] Mle-----------: Role leader -> detached
00:01:26.218 [N] Mle-----------: Role detached -> disabled
00:01:26.221 [N] P-Netif-------: Changing interface state to down.
00:01:26.255 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.035 [N] RoutingManager: No valid /48 BR ULA prefix found in settings, generating new one
00:00:00.038 [N] RoutingManager: BR ULA prefix: fdf3:63f9:1832::/48 (generated)
00:00:00.038 [N] RoutingManager: Local on-link prefix: fdde:ad00:beef:cafe::/64
00:00:00.058 [W] P-Netif-------: Failed to process request#58: No such process
00:00:00.073 [N] RoutingManager: Local on-link prefix: fd7f:b0e0:1286:22ab::/64
00:00:00.081 [N] Mle-----------: Role disabled -> detached
00:00:00.090 [N] P-Netif-------: Changing interface state to up.
00:00:00.103 [W] P-Netif-------: Failed to process request#61: No such process
00:00:00.295 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:06.795 [N] RouterTable---: Allocate router id 26
00:00:06.795 [N] Mle-----------: RLOC16 fffe -> 6800
00:00:06.798 [N] Mle-----------: Role detached -> leader
00:00:06.798 [N] Mle-----------: Partition ID 0xe3407de
00:00:08.790 [N] Mle-----------: Role leader -> detached
00:00:08.791 [N] Mle-----------: Role detached -> disabled
00:00:08.795 [N] P-Netif-------: Changing interface state to down.
00:00:08.819 [N] RoutingManager: Local on-link prefix: fd69:f948:dd94:2f03::/64
00:00:08.825 [N] Mle-----------: Role disabled -> detached
00:00:08.825 [N] P-Netif-------: Changing interface state to up.
00:00:08.839 [W] P-Netif-------: Host netif state notification is unexpected (ignore)
00:00:08.840 [W] P-Netif-------: Failed to process request#69: No such process
00:00:08.841 [W] P-Netif-------: Failed to process request#73: No such process
00:00:35.651 [N] Mle-----------: RLOC16 6800 -> fffe
00:00:35.939 [N] Mle-----------: Attach attempt 1, AnyPartition reattaching with Active Dataset
00:00:42.439 [N] RouterTable---: Allocate router id 26
00:00:42.439 [N] Mle-----------: RLOC16 fffe -> 6800
00:00:42.442 [N] Mle-----------: Role detached -> leader
00:00:42.443 [N] Mle-----------: Partition ID 0x7545e957
00:00:42.464 [W] P-Netif-------: Failed to process request#77: Cannot assign requested address
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
Default: mDNSPlatformSendUDP got error 99 (Cannot assign requested address) sending packet to ff02::fb on interface fe80::fcff:3bff:fe09:3b0c/veth99f69c9/96
1 Like

I just compared it to my config and

is false there as well.

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.

I read something interesting in here. No phone, no bluetooth, but WebSocket in Chrome…
https://developer.nuki.io/t/smart-lock-4th-generation-set-up-home-assistant-for-remote-access-via-thread/25181/83

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?

1 Like

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%.

1 Like

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. :grimacing:

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.

1 Like

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.

No, the Smart Locks internal WiFi is not used for Matter at all.

I succeeded in activation of Matter. :metal: 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

{
“message_id”: “1”,
“command”: “set_wifi_credentials”,
“args”: {
“ssid”: “[your WiFi SSID]”,
“credentials”: “[your WiFi password]”
}
}

Thread dataset

{
“message_id”: “2”,
“command”: “set_thread_dataset”,
“args”: {
“dataset”: “[Active dataset TLVs of preferred network shown in Thread integration]”
}
}

Commissioning

{
“message_id”: “3”,
“command”: “commission_with_code”,
“args”: {
“code”: “[your Matter code without hyphen]”
}
}

Instead of using WebSockets it seems possible to commission in the Matter Server UI what I saw too late (read the linked post of step 1. till the end)

The Matter activation is also shown in the Nuki app although not performed (more precisely “not completed”) in there.

1 Like

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.