Building the example application is quite straightforward.
cd examples/chip-tool git submodule update --init source third_party/connectedhomeip/scripts/activate.sh gn gen out/debug ninja -C out/debug
out/debug/chip-tool
In order to send commands to a device, it must be paired with the client.
To initiate a client pairing request to a device, run the built executable and choose the pairing mode.
The command below pair a device with the provided IP address and port of the server to talk to.
$ chip-tool pairing bypass 192.168.0.30 5540
Run the built executable and pass it the discriminator and pairing code of the remote device.
The command below uses the default values hard-coded into the debug versions of the ESP32 all-clusters-app:
$ chip-tool pairing ble 20202021 3840
$ chip-tool pairing unpair
To use the Client to send a CHIP commands, run the built executable and pass it the target cluster name, the target command name as well as an endpoint id.
The endpoint id must be between 1 and 240.
$ chip-tool onoff on 1
The client will send a single command packet and then exit.
To get the list of supported clusters, run the built executable without any arguments.
$ chip-tool
Example output:
Usage: ./chip-tool cluster_name command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Clusters: | +-------------------------------------------------------------------------------------+ | * barriercontrol | | * basic | | * colorcontrol | | * doorlock | | * groups | | * iaszone | | * identify | | * levelcontrol | | * onoff | | * pairing | | * payload | | * scenes | | * temperaturemeasurement | +-------------------------------------------------------------------------------------+
To get the list of commands for a specific cluster, run the built executable with the target cluster name.
$ chip-tool onoff
To the the list of attributes for a specific cluster, run the built executable with the target cluster name and the read
command name.
$ chip-tool onoff read
To get the list of parameters for a specific command, run the built executable with the target cluster name and the target command name
$ chip-tool onoff on
To parse a setup code, run the built executable with the payload
cluster name and the parse-setup-payload
command
$ chip-tool payload parse-setup-payload code
$ chip-tool payload parse-setup-payload "MT:#####"
$ chip-tool payload parse-setup-payload "MT:#####"
$ chip-tool payload parse-setup-payload :#####"
To parse an additional data payload, run the built executable with the payload
cluster name and the parse-additional-data-payload
command
$ chip-tool payload parse-additional-data-payload "#####"
Usage: ./chip-tool barriercontrol command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * barrier-control-go-to-percent | | * barrier-control-stop | | * discover | | * read | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool basic command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * reset-to-factory-defaults | | * ping | | * discover | | * read | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool colorcontrol command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * move-color | | * move-color-temperature | | * move-hue | | * move-saturation | | * move-to-color | | * move-to-color-temperature | | * move-to-hue | | * move-to-hue-and-saturation | | * move-to-saturation | | * step-color | | * step-color-temperature | | * step-hue | | * step-saturation | | * stop-move-step | | * discover | | * read | | * report | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool doorlock command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * clear-all-pins | | * clear-all-rfids | | * clear-holiday-schedule | | * clear-pin | | * clear-rfid | | * clear-weekday-schedule | | * clear-yearday-schedule | | * get-holiday-schedule | | * get-pin | | * get-rfid | | * get-user-type | | * get-weekday-schedule | | * get-yearday-schedule | | * lock-door | | * set-holiday-schedule | | * set-pin | | * set-rfid | | * set-user-type | | * set-weekday-schedule | | * set-yearday-schedule | | * unlock-door | | * unlock-with-timeout | | * discover | | * read | | * report | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool groups command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * add-group | | * add-group-if-identifying | | * get-group-membership | | * remove-all-groups | | * remove-group | | * view-group | | * discover | | * read | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool iaszone command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * discover | | * read | | * write | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool identify command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * identify | | * identify-query | | * discover | | * read | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool levelcontrol command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * move | | * move-to-level | | * move-to-level-with-on-off | | * move-with-on-off | | * step | | * step-with-on-off | | * stop | | * stop-with-on-off | | * discover | | * read | | * report | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool onoff command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * off | | * on | | * toggle | | * discover | | * read | | * report | +-------------------------------------------------------------------------------------+
Send the OFF command to the ONOFF cluster on the given endpoint.
Send the ON command to the ONOFF cluster on the given endpoint.
Send the TOGGLE command to the ONOFF cluster on the given endpoint.
Send the DISCOVER command to the ONOFF cluster on the given endpoint.
Usage: ./chip-tool pairing command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * unpair | | * bypass | | * ble | | * softap | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool payload command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * parse-setup-payload | | * parse-additional-data-payload | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool scenes command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * add-scene | | * get-scene-membership | | * recall-scene | | * remove-all-scenes | | * remove-scene | | * store-scene | | * view-scene | | * discover | | * read | +-------------------------------------------------------------------------------------+
Usage: ./chip-tool temperaturemeasurement command_name [param1 param2 ...] +-------------------------------------------------------------------------------------+ | Commands: | +-------------------------------------------------------------------------------------+ | * discover | | * read | | * report | +-------------------------------------------------------------------------------------+