---
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)
