#Python Matter Server - Change Thread Dataset

1 messages · Page 1 of 1 (latest)

minor verge
#

Hey there,

I've been using Matter (via Wifi) for a few months and everything works fine without any issue, with Python Matter Server installed in Docker.
Right now, I've purchased a new bulb (Aqara) that uses Thread.

I don't like to use my phone to commision the nodes, as such, I use the Python Matter Server UI directly and provide the Pairing Code.

On the first time I went to commision a Thread device, it asked for the dataset, not really knowing what exactly its asking, I defined the "Ext PAN ID" as seen from the "ot-ctl" command in OTBR but I have a feeling its not correct, as the commissioning fails.
On the logs I see: (Dummy-2) CHIP_ERROR [chip.native.CTL] Error on commissioning step 'ThreadNetworkSetup': src/controller/CHIPDeviceController.cpp:2791: CHIP Error 0x000000AC: Internal error'"
and
(Dummy-2) WARNING [chip.ChipDeviceCtrl] Failed to commission: src/controller/CHIPDeviceController.cpp:2791: CHIP Error 0x000000AC: Internal error

I've checked the Python Matter Server files and I can't find the Thread "dataset" configuration.
How can I change the Thread dataset and what is the expected value?

Thanks.

minor verge
#

Sharing findings for others:

  • Looks like that the Python Matter Server stores these values in memory, restarting the container resulting in it asking again for the dataset. I wonder if its possible for this to be resilient to restarts.
  • I have a feeling that something is not right in my setup for Thread, the commissioning just stays processing forever.
#

As per Grok, the dataset value, can be found under "Thread" integration and going to Config (the cog wheel). You will see your border router where it has a 16 character hex id.

#

It's not the mDNS domain in the bottom (e.g.: ot<ID>.local.)

minor verge
#

The correct dataset can be obtained with ot-ctl command on the OTBR container, by running ot-ctl dataset active -x

#

It will show a very long hex value that starts with 0e08 in my case.

#

After giving the correct dataset to Python Matter Server, provisioning worked right away.

barren magnet
#

And that is exactly what is shown in the thread integration's settings (hit the info button in the upper right corner) under "Active dataset TLVs:"