[Zigbee] Visual render for getChildAndRouteInfo

Update: Use this new app to get a better view of your Zigbee mesh: [RELEASE] Zigbee Map app.

I had a little fun and played a bit with creating a visual rendering for the data we get from /hub/zigbee/getChildAndRouteInfo and I want to share the results with you good people.

Since the text format is not properly documented anywhere, it might not work with your data without some tinkering here and there.

Install using Hubitat Package Manager (HPM)

  1. Install the app via HPM (search for "zigbee-graph")
  2. Go to "Apps", click "Add User App" then select "Zigbee Graph" from the user apps list
  3. Click the "Done" button to create the app instance
  4. Go to "Apps", select "Zigbee Graph" from the list, then click "Show zigbee graph"

Manual download

  1. Download the "zigbee-graph.html" file from GitHub on your Desktop
  • Mac users: open terminal and execute: cd ~/Desktop; curl -OL https://raw.githubusercontent.com/dan-danache/hubitat/master/zigbee-graph-app/zigbee-graph.html
  1. Open your Hubitat user interface in the browser and go to "Settings", then "File Manager"

  2. Click "Choose", select the "zigbee-graph.html" file from your Desktop, then click "Upload"

  3. Click the "zigbee-graph.html" file from the list below (URL should be something like "http://{hub ip}/local/zigbee-graph.html")

Thank you for the excellent feature suggestions. You rock :metal:

Have fun!

56 Likes

Wow this is super cool! Thanks!

I was not even aware of how to find the zigbee data until I read this post, being able to visualize it this way is amazing! Makes me wonder though, is Z-Wave network information similarly available from Hubitat in text format like the Zigbee network information is?

1 Like

Agreed, really nice! Thanks @dandanache

I have the graph working by pasting the output of another browser window directly into the second tab, but haven't succeeded in getting the input field of the 'fetch' tab to work... what format does it want for the URL? I tried prefixing /hub/zigbee/getChildAndRouteInfo with my hub's IP address (and also prefixing that with http://) but I get an http error 404 popup when clicking on the 'fetch' button.

2 Likes

To get the first tab working and skip the copy/pasting:

  1. Download the "zigbee-graph.html" from GitHub somewhere on your computer (e.g. on Desktop)
  • Mac users: open terminal and execute: cd ~/Desktop; curl -OL https://github.com/dan-danache/stuff/raw/main/zigbee-graph.html
  1. Open your Hubitat user interface in the browser

  2. Go to "Settings", then "File Manager"

  3. Click "Choose", select the "zigbee-graph.html" file from your Desktop, then click "Upload"

  4. Click the "zigbee-graph.html" file from the list below (URL should be something like "http://{hub ip}/local/zigbee-graph.html")

  5. Click the "Fetch data" button, the URL is pre-completed

  6. Bookmark this URL for later use :slight_smile:

Hope this helps, have fun!

9 Likes

This is very interesting! I just tried it on one of my hub from Safari on my iPad and am getting the following:

Is there something I should do to avoid this error?

This is what I get under “Paste Data” on one of my hubs:

This is what I get on the other (same error):

1 Like

Hi @Sebastien, looks like your data format is a bit different than what I get on C7 (e.g.: the tables are separated by ------- lines).

I pushed the following changes to the repo:

  • Fix compatibility issues with ------- separator lines
  • Show zigbee address when hover a device in the graph
  • Show references to self from the routes table

Thank you for the report, hope it works for you now. Cheers!

4 Likes

I suspect a difference for the C-8 vs the C-7.

That did it! Working perfectly - very nice!!!

3 Likes

There was a recent update for the C8 related to getChildAndRouteInfo

OK - what am I doing wrong? When I click on the file after saving it, it brings up the text of the file, rather than running the code. MAC M1 using Safari or Chrome.

Oh My!
Let me be the first to nominate @dandanache for Hubitat Man of the Year
Gold Medal Good Job GIF by StickerGiant

12 Likes

This is awesome, thanks!

(It also shows that Zigbee routing is at least in the neighborhood of wonkiness with Z-Wave routing. :wink: )

ETA: 2 questions:

  1. Is it normal to have loops shown for non-hub devices that are repeating to other devices? It only shows them on the repeater at the 'end' of the line. (2 repeaters are hub>repeater>device and both of those have loops on the repeater section. A different segment is hub>repeater>repeater>device and that segment has a loop on the second repeater in the hop.

  2. Do some/most/all battery Zigbee devices gravitate towards repeaters? My snarky comment above comes from the fact that all of my sleepy devices are all on repeaters, even if they (should) have good signal to the hub.

2 Likes

Tony - do you think it would be possible to feed data from XCTU to this beast? Since the info in the getChild... endpoint is not complete regarding zigbee devices and connections.

2 Likes

Great job @dandanache , much easier to understand the device relationships in the mesh visually.

Would be great if:

  • The Fetch Data could happen on opening the html document
  • It could be installed via HPM. I know you can include files like this, just not sure if it can be the only thing, i.e. no driver or app

Again, great job!!

4 Likes

Really nice job, I've added it to the filesystem and works great. Since the Zigbee data is always updating, would be nice to have it poll that URL every 5 seconds and dynamically update the graph so you can visually see if devices keep moving (indicating an issue)

3 Likes

So you are trying to open the html file after storing it on the HE hub, or just locally on your Mac? Maybe a screenshot would help....

Both.

Summary

Double-check the extension of the file, make sure it hasn't saved it with a .txt extension, e.g. zigbee-graph.html.txt

In Safari on my iPad, it saves it with the .txt extension. I have to manually go in and remove the .txt - every time. And this is hidden in the built-in file manager app (shows as .HTML). I have to change it in another app…

From your screenshot however, it looks like it is being saved correctly on the Mac.

I have copied it to the hub, and my iPad shows thee same text file if I click on it from the hub.

1 Like