Help Needed with Matter Commissioning via Smartphone and Subscription

Hi everyone,

I’m new to Matter and would really appreciate your help if possible.

I have Matter devices on a Thread network that read temperature and humidity. Initially, following the GitHub instructions from Connected Home IP, I compiled chip-tool on my mini PC running Debian 11 to interact with the devices. Everything worked, including commissioning via the mini PC’s Bluetooth, as well as subscriptions and readings through my Python script.

Later, I learned that chip-tool is primarily a diagnostic tool, so I compiled the Connected Home IP libraries to generate chip-repl. With chip-repl, commissioning via the mini PC worked as well as subscriptions and readings. However, I was unable to perform commissioning using my smartphone. After asking on Reddit, I was advised to use Python Matter Server. Just to clarify, I only need Python Matter Server and not Home Assistant, as I am developing my own software.

I then installed the Docker image on my mini PC, running it with Bluetooth support. Again, I was able to commission the devices and read their values via WebSocket.

So far, so good. However, I am now stuck because I don’t know how to proceed with commissioning via my smartphone.

My sensors operate on a Thread network created by my OTBR (GL-iNet GL-S200).

Could you kindly help me with the following questions?

  1. Is it possible to commission a Matter device using my smartphone? I need to use the smartphone’s Bluetooth because my Matter devices are not close to the mini PC running Python Matter Server.

  2. In the documentation, I found this command for setting the dataset hex in Python Matter Server:

    {
      "message_id": "1",
      "command": "set_thread_dataset",
      "args": {
        "dataset": "put-credentials-here"
      }
    }
    

    Could you tell me if it’s possible to obtain the OTBR dataset from a smartphone without accessing it via SSH?
    On iOS, I found an app (Matter Utilities) that retrieves OTBR information using just its IP address, without requiring SSH access. So, I assume this is possible, but I don’t know how to achieve it.

  3. During commissioning, can I set a custom node_id, or do I always have to use the one assigned by Python Matter Server?

  4. Once a device is commissioned, I need to set up two separate subscriptions for the same type of device.

    • The first subscription with the following timing for certain values:
      "min_interval": 300,
      "max_interval": 300
      
    • A second subscription with a different timing for other values:
      "min_interval": 1800,
      "max_interval": 1800
      

I really appreciate any help you can provide.

Thanks in advance!