Matter/Thread device not pairing using HAOS

Hi, I have recreated the setup using HAOS (originally started with docker), but still having troubles adding an Inovelli White Dimmer Switch.

I’m using SMLight SLZB-07MG24 USB dongle for thread.

I have tried “resetting border router” through the Thread integration. Also transferred the keys to the iphone.

I haven’t yet changed the channel yet.

When I scan the QR code the dimmer starts blinking, but it fails to be added.

I know I didn’t include much information for debugging, but not sure where to start with.

You have one network interface only on HAOS and it has IPv6 enabled?
Your mobile phone is on the same network?

You have factory reset your device before trying to add it to the new setup?
The QR code only works once after a factory reset.

The IPv6 was disabled. I have enabled it through HA settings menu.
I factory reset the switch but the issue remained.

I have reset the Thread Border Router but it did not help and also changed the channel. After that adding a switch got worse, the switch stops blinking when I tried to add it through the app.

What would be the next step to diagnose?

The switch stops blinking can just mean it is connected to the thread network.

Try to post the Matter server addon logs here.

After few resets and changing the channel back to 15 I got the switch blinking again. Looks like there are mDNS issues:

(Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 1 failures.
(Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
(Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
(Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on enp1s0: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable

Full matter server logs here:

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

e[34m-----------------------------------------------------------e[0m
e[34m Add-on: Matter Servere[0m
e[34m Matter WebSocket Server for Home Assistant Matter support.e[0m
e[34m-----------------------------------------------------------e[0m
e[34m Add-on version: 7.0.0e[0m
e[32m You are running the latest version of this add-on.e[0m
e[34m System: Home Assistant OS 14.2  (amd64 / generic-x86-64)e[0m
e[34m Home Assistant Core: 2025.2.4e[0m
e[34m Home Assistant Supervisor: 2025.02.1e[0m
e[34m-----------------------------------------------------------e[0m
e[34m Please, share the above information when looking for helpe[0m
e[34m or support in, e.g., GitHub, forums or the Discord chat.e[0m
e[34m-----------------------------------------------------------e[0m
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
[00:31:09] INFO: e[32mStarting Matter Server...e[0m
s6-rc: info: service legacy-services successfully started
[00:31:09] INFO: e[32mUsing 'wlp0s20f3' as primary network interface.e[0m
[00:31:09] INFO: e[32mSuccessfully send discovery information to Home Assistant.e[0m
e[32m2025-02-19 00:31:11.264e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.stack]e[0m Initializing CHIP/Matter Logging...
e[32m2025-02-19 00:31:11.265e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.stack]e[0m Initializing CHIP/Matter Controller Stack...
[1739953871.284493][117:117] CHIP:CTL: Setting attestation nonce to random value
[1739953871.284683][117:117] CHIP:CTL: Setting CSR nonce to random value
[1739953871.285268][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /tmp/chip_kvs
[1739953871.287400][117:117] CHIP:DL: Wrote settings to /tmp/chip_kvs
[1739953871.287587][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_factory.ini
[1739953871.287687][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_config.ini
[1739953871.287722][117:117] CHIP:DL: ChipLinuxStorage::Init: Using KVS config file: /data/chip_counters.ini
[1739953871.288603][117:117] CHIP:DL: Wrote settings to /data/chip_counters.ini
[1739953871.288617][117:117] CHIP:DL: NVS set: chip-counters/reboot-count = 3 (0x3)
[1739953871.288876][117:117] CHIP:DL: Got Ethernet interface: enp1s0
[1739953871.289025][117:117] CHIP:DL: Found the primary Ethernet interface:enp1s0
[1739953871.289167][117:117] CHIP:DL: Got WiFi interface: wlp0s20f3
[1739953871.289521][117:117] CHIP:DL: Found the primary WiFi interface:wlp0s20f3
e[32m2025-02-19 00:31:11.289e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.storage]e[0m Initializing persistent storage from file: /data/chip.json
e[32m2025-02-19 00:31:11.289e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.storage]e[0m Loading configuration from /data/chip.json...
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/icdfl, Value = 0x55e30756ee00 (512)e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 4
e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mUDP::Init bind&listen port=0e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mUDP::Init bound to port=50847e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mUDP::Init bind&listen port=0e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mUDP::Init bound to port=56140e[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mBLEBase::Init - setting/overriding transporte[0m
e[32m2025-02-19 00:31:11.290e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mTransportMgr initializede[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.FP]e[0m e[2;32mInitializing FabricTable from persistent storagee[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/lkgt, Value = 0x7ffd4f3c2d40 (18)e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 8
e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.TS]e[0m Last Known Good Time: 2023-10-14T01:16:48
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/fidx, Value = 0x7ffd4f3c2fc0 (44)e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 10
e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/n, Value = 0x7ffd4f3c2a20 (400)e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 244
e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/r, Value = 0x7ffd4f3c2880 (400)e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 231
e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/m, Value = 0x7ffd4f3c2590 (44)e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 9
e[0m
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.FP]e[0m Fabric index 0x1 was retrieved from storage. Compressed FabricId 0x3A131F4ED5AB5891, FabricId 0x0000000000000002, NodeId 0x000000000001B669, VendorId 0x134B
e[32m2025-02-19 00:31:11.291e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/fs/c, Value = 0x7ffd4f3c2e70 (36)e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Not Found
e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/gcc, Value = 0x7ffd4f3c2f18 (4)e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 4
e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/gdc, Value = 0x7ffd4f3c2f18 (4)e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 4
e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = g/gcc, Value = 0x7ffd4f3c2f18 (4)e[0m
e[32m2025-02-19 00:31:11.292e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = g/gdc, Value = 0x7ffd4f3c2f18 (4)e[0m
e[32m2025-02-19 00:31:11.293e[0m (MainThread) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.ZCL]e[0m Using ZAP configuration...
e[32m2025-02-19 00:31:11.294e[0m (MainThread) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.IN]e[0m CASE Server enabling CASE session setups
e[32m2025-02-19 00:31:11.294e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.IN]e[0m e[2;32mSecureSession[0x55e3074f2d00]: Allocated Type:2 LSID:38613e[0m
e[32m2025-02-19 00:31:11.294e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.SC]e[0m e[2;32mAllocated SecureSession (0x55e3074f2d00) - waiting for Sigma1 msge[0m
e[32m2025-02-19 00:31:11.294e[0m (MainThread) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mSystem State Initialized...e[0m
e[32m2025-02-19 00:31:11.294e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mCHIP task runninge[0m
e[32m2025-02-19 00:31:11.295e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mHandlePlatformSpecificBLEEvent 32786e[0m
e[32m2025-02-19 00:31:11.369e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.CertificateAuthority]e[0m Loading certificate authorities from storage...
e[32m2025-02-19 00:31:11.369e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.CertificateAuthority]e[0m New CertificateAuthority at index 1
e[32m2025-02-19 00:31:11.369e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = ExampleOpCredsCAKey1, Value = 0x7f12837fcf90 (97)e[0m
e[32m2025-02-19 00:31:11.370e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 97
e[0m
e[32m2025-02-19 00:31:11.370e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = ExampleOpCredsICAKey1, Value = 0x7f12837fcf90 (97)e[0m
e[32m2025-02-19 00:31:11.370e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 97
e[0m
e[32m2025-02-19 00:31:11.370e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.CertificateAuthority]e[0m Loading fabric admins from storage...
e[32m2025-02-19 00:31:11.370e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.FabricAdmin]e[0m New FabricAdmin: FabricId: 0x0000000000000002, VendorId = 0x134B
e[32m2025-02-19 00:31:11.370e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.stack]e[0m CHIP Controller Stack initialized.
e[32m2025-02-19 00:31:11.371e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.server]e[0m Starting the Matter Server...
e[32m2025-02-19 00:31:11.373e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.helpers.paa_certificates]e[0m Fetching the latest PAA root certificates from DCL.
e[32m2025-02-19 00:31:12.896e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.helpers.paa_certificates]e[0m Fetched 65 PAA root certificates from DCL.
e[32m2025-02-19 00:31:12.896e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.helpers.paa_certificates]e[0m Fetching the latest PAA root certificates from Git.
e[32m2025-02-19 00:31:13.794e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.helpers.paa_certificates]e[0m Fetched 2 PAA root certificates from Git.
e[32m2025-02-19 00:31:13.796e[0m (MainThread) e[1;30mINFOe[0m e[34m[chip.FabricAdmin]e[0m Allocating new controller with CaIndex: 1, FabricId: 0x0000000000000002, NodeId: 0x000000000001B669, CatTags: []
e[32m2025-02-19 00:31:13.798e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mCreating New Device Controllere[0m
e[32m2025-02-19 00:31:13.798e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.CTL]e[0m Setting attestation nonce to random value
e[32m2025-02-19 00:31:13.799e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.CTL]e[0m Setting CSR nonce to random value
e[32m2025-02-19 00:31:13.799e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.SPT]e[0m Using device attestation PAA trust store path /data/credentials.
e[32m2025-02-19 00:31:13.827e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = ExampleCARootCert1, Value = 0x7f1274011fd0 (600)e[0m
e[32m2025-02-19 00:31:13.827e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 410
e[0m
e[32m2025-02-19 00:31:13.827e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = ExampleCAIntermediateCert1, Value = 0x7f1274011d70 (600)e[0m
e[32m2025-02-19 00:31:13.827e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 410
e[0m
e[32m2025-02-19 00:31:13.827e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.CTL]e[0m Generating NOC
e[32m2025-02-19 00:31:13.828e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/r, Value = 0x7f12837fbce0 (400)e[0m
e[32m2025-02-19 00:31:13.828e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 231
e[0m
e[32m2025-02-19 00:31:13.829e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/n, Value = 0x7f12837fbce0 (400)e[0m
e[32m2025-02-19 00:31:13.829e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 244
e[0m
e[32m2025-02-19 00:31:13.829e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/r, Value = 0x7f1274012a20 (400)e[0m
e[32m2025-02-19 00:31:13.829e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 231
e[0m
e[32m2025-02-19 00:31:13.829e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.FP]e[0m Validating NOC chain
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.FP]e[0m NOC chain validation successful
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.FP]e[0m Updated fabric at index: 0x1, Node ID: 0x000000000001B669
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.TS]e[0m Last Known Good Time: 2023-10-14T01:16:48
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.TS]e[0m New proposed Last Known Good Time: 2021-01-01T00:00:00
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.TS]e[0m Retaining current Last Known Good Time
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/sri, Value = 0x7f12837fb410 (966)e[0m
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Not Found
e[0m
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = g/fs/c, Value = 0x7f12837fbce0 (7)e[0m
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = f/1/m, Value = 0x7f12837fbbb0 (9)e[0m
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.FP]e[0m Metadata for Fabric 0x1 persisted to storage.
e[32m2025-02-19 00:31:13.834e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = f/1/n, Value = 0x7f127400e780 (244)e[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = f/1/i, Value = 0x7f127400ec10 (231)e[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.TS]e[0m Committing Last Known Good Time to storage: 2023-10-14T01:16:48
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = g/lkgt, Value = 0x7f12837fbc70 (8)e[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = g/fs/c, Value = 0x7f12837fbcbf (0)e[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mBuf not big enough
e[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::DeleteKeyValue: Key = g/fs/ce[0m
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.CTL]e[0m Joined the fabric at index 1. Fabric ID is 0x0000000000000002 (Compressed Fabric ID: 3A131F4ED5AB5891)
e[32m2025-02-19 00:31:13.835e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m Updating services using commissioning mode 0
e[32m2025-02-19 00:31:13.837e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m CHIP minimal mDNS started advertising.
e[32m2025-02-19 00:31:13.837e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mUsing WiFi MAC for hostnamee[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m Advertise operational node 3A131F4ED5AB5891-000000000001B669
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with _matter._tcp.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with 3A131F4ED5AB5891-000000000001B669._matter._tcp.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with 3A131F4ED5AB5891-000000000001B669._matter._tcp.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with 00CE39D50C8F0000.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with 00CE39D50C8F0000.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mResponding with _I3A131F4ED5AB5891._sub._matter._tcp.locale[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m CHIP minimal mDNS configured as 'Operational device'; instance name: 3A131F4ED5AB5891-000000000001B669.
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m mDNS broadcast full failed in 1 separate send attempts.
e[32m2025-02-19 00:31:13.838e[0m (Dummy-2) e[1;30mCHIP_ERRORe[0m e[34m[chip.native.DIS]e[0m e[31mFailed to advertise records: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.DIS]e[0m mDNS service published: _matter._tcp
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_PROGRESSe[0m e[34m[chip.native.SPT]e[0m Setting up group data for Fabric Index 1 with Compressed Fabric ID:
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.SPT]e[0m e[2;32m0x3a, 0x13, 0x1f, 0x4e, 0xd5, 0xab, 0x58, 0x91, e[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/g, Value = 0x7f12837fc710 (128)e[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 23
e[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::GetKeyValue: Key = f/1/k/0, Value = 0x7f12837fc5e0 (128)e[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mKey Found 97
e[0m
e[32m2025-02-19 00:31:13.841e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.CTL]e[0m e[2;32mStorageAdapter::SetKeyValue: Key = f/1/k/0, Value = 0x7f12837fc5e0 (97)e[0m
e[32m2025-02-19 00:31:13.848e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.vendor_info]e[0m Loading vendor info from storage.
e[32m2025-02-19 00:31:13.852e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.vendor_info]e[0m Loaded 287 vendors from storage.
e[32m2025-02-19 00:31:13.852e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.vendor_info]e[0m Fetching the latest vendor info from DCL.
e[32m2025-02-19 00:31:13.970e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.vendor_info]e[0m Fetched 286 vendors from DCL.
e[32m2025-02-19 00:31:13.970e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.vendor_info]e[0m Saving vendor info to storage.
e[32m2025-02-19 00:31:13.977e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.device_controller]e[0m Loaded 0 nodes from stored configuration
e[32m2025-02-19 00:31:13.987e[0m (MainThread) e[1;30mINFOe[0m e[34m[matter_server.server.server]e[0m Matter Server successfully initialized.
e[32m2025-02-19 01:22:49.533e[0m (Dummy-3) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mGot IP address on interface: wlp0s20f3 IP: 192.168.0.111e[0m
e[32m2025-02-19 01:22:49.534e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mHandlePlatformSpecificBLEEvent 32770e[0m
e[32m2025-02-19 02:22:49.535e[0m (Dummy-3) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mGot IP address on interface: wlp0s20f3 IP: 192.168.0.111e[0m
e[32m2025-02-19 02:22:49.535e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mHandlePlatformSpecificBLEEvent 32770e[0m
e[32m2025-02-19 03:22:49.534e[0m (Dummy-3) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mGot IP address on interface: wlp0s20f3 IP: 192.168.0.111e[0m
e[32m2025-02-19 03:22:49.535e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mHandlePlatformSpecificBLEEvent 32770e[0m
e[32m2025-02-19 04:22:49.523e[0m (Dummy-3) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mGot IP address on interface: wlp0s20f3 IP: 192.168.0.111e[0m
e[32m2025-02-19 04:22:49.524e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DL]e[0m e[2;32mHandlePlatformSpecificBLEEvent 32770e[0m
e[32m2025-02-19 09:17:47.067e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:47.067e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:47.067e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.064e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.064e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.064e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.065e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.065e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.065e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.066e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.066e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.068e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.069e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.070e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.070e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.072e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.073e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.073e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.074e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.075e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.076e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.077e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.077e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.078e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.079e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.080e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.080e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.081e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.082e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.083e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.083e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.084e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.085e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.086e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.086e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.088e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mWarning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachablee[0m
e[32m2025-02-19 09:17:48.089e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mmDNS broadcast had only partial success: 14 successes and 1 failures.e[0m
e[32m2025-02-19 09:17:48.089e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m
e[32m2025-02-19 09:17:48.090e[0m (Dummy-2) e[1;30mCHIP_DETAILe[0m e[34m[chip.native.DIS]e[0m e[2;32mSRV record already actively processed.e[0m

There are so many steps that can fail when trying to commission a Matter/Thread device, but Matter Server seems to see both an Ethernet and a WiFi interface running. I would recommend disabling the WiFi interface.

Ok if I disable the ethernet for now? Would I have to change a lot of stuff if I decide to disable Wifi and enable Ethernet instead?

The reason I recommend disabling WiFi is that your HA is a controller, and WiFi is less reliable than a wired Ethernet connection, and for a controller, you want your connectivity to be reliable.

1 Like

Yes, I will definitely do that once I get to “production”, but I am still trying to figure things out. Would the second interface be the reason why the thread device fails to be added?

Possibly. But it certainly makes it easier to debug if there is only one interface enabled.

I would guess that your bigger issue is that you may have multiple Thread datasets stored in your phone’s keychain, and your iphone is trying to use one that is now no longer in use.
On your iPhone, goto UI->Settings->Companion App->Debugging->Thread and see what it says.
If there is only one Thread dataset :slight_smile: , then send it to HA. Otherwise :frowning: about the only suggestion I have is to try with another iOS device, or if you have a MAC, there appears to be a way to use it to remove your iPhone’s Thread dataset from its keychain.

@wmaker , I tried disabling the other interface but not sure if it made any effect.
I used following command below. Btw, not sure how to enable it back as there is no “–enabled” flag.

ha network update --disabled enp1s0

Here are the updated logs:

The UI->Settings->Companion App->Debugging->Thread shows 5 thread networks there. One is from AppleTV and there are 4 are from HA. I tried resetting the app from that Debugging menu but it doesn’t make difference.
Could you explain what is going on?

When commissioning a device, the iOS Companion App is getting one of those Thread datasets out of its keychain and giving it to the device which in turn tries to join the Thread network with that Thread dataset. If it is the incorrect Thread dataset, the device won’t be able to join the Thread network and everything else fails afterwards. What I have not been able to figure out is which dataset iOS picks but if more than one, it is usually picks the wrong one to give to the device.

The other problem is how to remove the unwanted datasets from the Keychain. The only way I have seen is to use a MAC to talk to the iPhone and have the MAC remove the Thread datasets from the iPhone. Otherwise you’ll need to get another iOS device that doesn’t have any Thread datasets in its keychain, or do the ultimate fallback which is to use the Matter Server directly (where it needs to have an unused Bluetooth device) to commission a Matter/Thread device.

Looks like I don’t understand well how this all fits together. Can’t I add a new matter/thread device through the HA web ui without any smartphone? Why is it so tightly integrated into mobile devices?

What tool would you use on Mac to remove the Thread datasets?

I have removed all thread networks from the keychain on the mac computer, it removed the entries from the companion app. I also recreated the thread network on HA and wiped out the stale ones.

Added the credentials on the iOS. Now I have 1 single network there. Reset the device, but it still fails. It started to blink slowly blue. Then blinked once green and then I got an error on the app.

Here are the verbose matter server logs: Matter Server Logs - Google Docs

Most of the errors are:

2025-02-20 23:26:42.049 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on enp1s0:  src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable
2025-02-20 23:26:42.050 (Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 1 failures.

Do I have to enable mDNS on the wifi router anyhow?

I also have AppleTV and Alexa, and they show up in the Thread networks list on HA, but my newly created network is the one that I marked as “preferred”.

Matter devices require a bluetooth connection to first set it up and transfer the details to the device on how to connect to the Matter network.

You should be able to use the HA server, if you have Bluetooth adapter connected to your HA server.

The Matter Server logs should show something about commissioning a device, so if there is nothing about this in the logs, then the iPhone is not requesting the Matter server to go into commissioning mode. The iPhone is probably looking for an mDNS advertisement from the HA Matter Server and is not seeing one, so doesn’t think that the Matter Server exists and thus doesn’t make the request. According to the logs, the Matter Server apparently is sending out its mDNS advertisements over the Ethernet port (and failing). It may be sending out the WiFi too (I just don’t know). Make sure the iPhone is on the same LAN network that HA is using. Again I would suggest enabling the Ethernet port and disabling the WiFi to see if things work.

1 Like

@wmaker, I had some progress. Managed to disable the wifi using the nmcli radio wifi off command. Now I can see that the mDNS working. I also see the device discovered in the logs. Yet the device failed to be added.

Something else weird happened. The Apple TV shows up in the preferred network as another border router. What do I do with it?

Also, after attempting to add a device the second router appears in OTBR topology.

I see there is wpan0 interface. Is it the interface responsible for the thread network?

Logs from matter server, otbr and how screens looks are here:

https://docs.google.com/document/d/16BVQMO1b8G27Cw-u12oTYyaI2-c6pL_1MvoNttSbJ4U/edit?usp=sharing

@wmaker, @WallyR, Victory!!!
I have switch the channel back to 15 and the network separated from the Apple TV. After resetting the keys, dimmer and the router the dimmer got added to HA!

What should I make sure to do (or not to do) so that I do not go through this nightmare anymore? This is especially important once there are 20+ devices added.

Where is the information about the network stored? Distributed across devices, in the OTBR, the USB dongle, HA?

What happens if or when the USB dongle dies? How do I recover the network once I have the replacement USB device?

Where are the “security keys” for the thread network stored?

The Inovelli switch got discovered with two underlying lights, one turns on the LED with “blue” light and the other with “white” indicator light. What are those for?

I would avoid the Apple devices in the network, but that is just me.
Someone might have a way to get it to work.

Your USB is just a radio.
The radio is used by the Thread Border Router.
It is probably also on the Thread Border Routers that the network is stored.
Routers are in plural here, because Thread allows multiple routers, and not all act up like Apple devices.

I thint the OTBR in HA is backed up in a full backup, but the protocol is so new that I have not yet tried to restore a network.