blob: 2e484add9a57428ec56df6e65d580ef755627035 [file] [log] [blame] [view]
---
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)