--- orphan: true --- # Setup This tool uses the python environment used by the python_testing efforts, which can be built using the below command. Notice that graphviz is required as an extra package in order for the tool to generate the graph file. ``` scripts/build_python.sh -m platform -i out/python_env --extra_packages graphviz ``` Once the python environment is build it can be activated using this command: ``` source out/python_env/bin/activate ``` # How to run When the python environment is activated the tool can be started as a regular python script. The tool does rely on the "framework" used for python testing, which means it is possible to do the commissioning of the DUT as well. By adding the appropriate parameters to the script execution, it will automatically perform a commissioning before running the tool itself. This is an example of running the test including commissioning a Thread based example app device ``` python3 '/Users/renejosefsen/Developer/GitData/connectedhomeip/src/tools/device-graph/matter-device-graph.py' --commissioning-method ble-thread --discriminator 3840 --passcode 20202021 --thread-dataset-hex 0e08000000000001000035060004001fffe00708fdbeb88eb19ecbe60410ec73aeaadc21448df01599e6eaf216eb0c0402a0f7f8000300001901025b3502085b35dead5b35beef030435623335051000112233445566778899aabbccddeeff ``` In case the setup code and discriminator is not available, the QR code can also be used: ``` python3 '/Users/renejosefsen/Developer/GitData/connectedhomeip/src/tools/device-graph/matter-device-graph.py' --commissioning-method ble-thread --qr-code MT:K2AA04EG15LL6I0LF00 --thread-dataset-hex 0e08000000000001000035060004001fffe00708fd6df9cc6d0db45b0410e12c1d624d8b4daf6adbfe5b2cd7787b0c0402a0f7f8000300001901025b3502085b35dead5b35beef030435623335051000112233445566778899aabbccddeeff ``` In case the device uses a development PAA, the following parameter should be added. ``` --paa-trust-store-path credentials/development/paa-root-certs ``` In case the device uses a production PAA, the following parameter should be added. ``` --paa-trust-store-path credentials/production/paa-root-certs ``` Once a commissioning is completed for the device, it is possible to rerun the tool again for an already commissioned devices, this is an example of how to do so: ``` python3 '/Users/renejosefsen/Developer/GitData/connectedhomeip/src/tools/device-graph/matter-device-graph.py' ``` The tool currently outputs the dot file in this folder and the output file is named "matter-device-graph.dot". # How to view graph In order to view the graph, any tool that renders dot/graphviz files can be used. It is possible to open dot files and get them rendered in vscode using this extension: [vscode-graphviz](https://marketplace.visualstudio.com/items?itemName=joaompinto.vscode-graphviz) # Example of output This is an example of the graph outputted from a device: ![matter device graph example](./matter-device-graph-example.png)