Commissioning Open IoT SDK devices

Matter devices based on Open IoT SDK reset into a ready for commissioning state. This allows a controller to connect to them and set configuration options before the device becomes available on the Matter network.

Open IoT SDK Matter devices, due to the connectivity setup, start already connected to the IP network and do not require credentials provisioning.

Building Matter controller

The Matter controller is a client application that allows commission and control of the Matter node.

The POSIX CLI chip-tool is the recommended Matter controller to use with Open IoT SDK devices.

To build chip-tool execute command:

scripts/examples/gn_build_example.sh examples/chip-tool out/chip-tool

Device commissioning

Open IoT SDK examples require to setup a specific network environment:

export TEST_NETWORK_NAME=OIStest
sudo ${MATTER_ROOT}/scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME restart

Both the device application and the controller should be started in a separate terminal sessions and inside the created network namespace. Use the {MATTER_ROOT}/scripts/examples/scripts/run_in_ns.sh helper script to execute the specific shell command inside the network namespace.

Run the application in device terminal and use the network namespace:

${MATTER_ROOT}/scripts/examples/scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns
${MATTER_ROOT}/scripts/examples/openiotsdk_example.sh -C run -n ${TEST_NETWORK_NAME}tap
<example name>

After the device boots, it's in ready for commissioning mode and starts the mDNS advertisement.

To commission the node in client terminal run Matter controller in the same network namespace with pairing command:

${MATTER_ROOT}/scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns ./out/chip-tool/chip-tool pairing onnetwork-long <node_id> <pin_code> <discriminator>

The node_id is chosen by the user. pin_code and discriminator are node parameters printed when running the application in the device terminal.

Example:

${MATTER_ROOT}/scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns ./out/chip-tool/chip-tool pairing onnetwork-long 123 20202021 3840

The application output a trace when commissioning succeeds. This trace is displayed in the device terminal:

[INF] [SVR] Commissioning completed successfully

Sending ZCL cluster commands

Before sending cluster commands commission the device.

To perform cluster action, run the Matter controller in the client terminal and use the same network namespace:

${MATTER_ROOT}/scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns ./out/chip-tool/chip-tool <cluster_name> <command_name> [param1 param2 ...]

Example:

${MATTER_ROOT}/scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns ./out/chip-tool/chip-tool basicinformation read vendor-id 123 0