[Zigbee] Visual render for getChildAndRouteInfo

Right back at ya mate! There a new update containing a new tab "Devices".

Anyway, I believe you should not worry about the missing devices; just because they are not present in any of tables in getChildAndRouteInfo does not necessarily mean that something is wrong with them.

8 Likes

Wowee! Looks great!

I can see that some of the missing devices are my Smoke Detectors, so I assume they are just sleeping until there is a fire, or a temperature change. So probably lucky they are not shown in the graph :wink:

This is the most awesomest app for Hubitat at the moment, thanks a bunch! :slight_smile:

This tool is awesome, useful data and beautiful. This is what Zigbee was missing for troublehsooting.

I wonder how hard it would be to add this same visual to the existing user app Zwave Mesh tool? C7 and up has a lot of similar info available for ZWave.

Also, would it be possible to add a setting to disable the loopback route from showing? Are they even useful to show? They sort of get in the way and clutter it up. Or maybe make it a much smaller loop?

image

4 Likes

I was too....turns out I had no idea how many Zigbee devices I have!
image

3 Likes

Several times recently my graph display just suddenly clears, everything disappears. I check the Data tab and there is still data there. Selecting Render Data doesn't bring it back, I have to reload the page and then the graph starts rebuilding.

Anything I should check?

Chrome, latest version, on Win11.

Oh my. I think I have found a bug. If I leave the page running for a while, the list of devices will multiply. So I think it is adding the device list to the list before instead of refreshing it.

Not sure it matters, but it will give you a veeery long page.

Screenshot of the longest page in existence:

@Kulfsson, I think this behaviour is the same as the Zigbee Logging page.
Also, number of devices match all devices shown in Zigbee Radio Devices.
So, I guess it follows the logic from the Zigbee details page?

So I keep seeing my "discovered devices" count go down and up. I'd suggest assuming devices aren't being removed from the mesh and instead leaving them on the graph (with their last seen routes), only updating them when they are reported on again by getChildAndRouteInfo.

E.g., I have a large mesh (143 devices total, 37 repeaters) and most of my battery devices never show up as they are connected to routers.

Since you also know the type of devices you are showing, maybe you could also show a count of repeaters vs. non-repeaters.

Ups, sorry about that and thank you for finding it. It's fixed now in v1.3.1; just grab the latest file from GitHub.

2 Likes

Not available via the update option in the app.

And I'm still waiting for a donate button.

2 Likes

If you already have app version 1.3.0 installed, you can update only the "zigbee-graph.html" file without the need to update the app. Just go to "Apps", select "Zigbee Graph" then this option:

.

Note: I also just added the version in the graph page title, to make it easier to track what version you are using (app vs HTML file).

As a side note, I found out that you can "force" HPM to update its data by going to "Apps", then "Hubitat Package Manager", then "Install", then "Browse By Tags". Otherwise it will check for updates once a day. But, after you update the app in the HPM, you still need to use the "Get latest version" option, or delete and re-create the app instance to retrieve the latest HTML file (don't know how to overcome this :frowning:)

Cheers!

5 Likes

I have no idea how to setup that, might look into it at some time. Thank you for the intention though, really appreciated!

5 Likes

If you can do what you have done here, I think you can figure out how to get donations. :grinning:

4 Likes

Can also just run a repair on a package to get the latest app code but since the html file is being pushed by your app, HPM wont update it obviously. I saw the HPM maintainer noted somewhere there is support for file manager files but for some reason html files do not work and he was looking into it.

Also your app could be setup to keep track of the html file version and then periodically grab a "version" text file from github. If newer version is available add some text to the app so people know to push the button to update the HTML file.

Just some ideas. I am perfectly fine with the way it works now. Pushing the get latest version button is quick and easy.

4 Likes

Also, fairly certain that HPM checks for updates every 15 minutes or so. It's only new packages/repo's (brand new app/driver/dev) that take a while to show up and that work around is necessary to see the package sooner. The caveat is that the dev has to remember to increment the version number in their package when pushing the update or HPM won't recognize it (has bit me more than once).

2 Likes

I was going to ask for the same thing. This is VERY helpful in figuring out what is going on with the mesh.

My other request would be that when clicking in the app to show the graph, can that open a new browser tab/window?

4 Likes

Unfortunately I have no Z-Wave devices. But if we have an URL endpoint that returns a list of devices and a list of connections between them, one ca easily render a force-graph.

2 Likes
http://<yourHubIp>/hub/zwaveNodeDetail

Detail looks similar to:

{
"17": {
		"route": {
			"type": "01",
			"repeater1": "0E",
			"repeater2": "00",
			"repeater3": "00",
			"repeater4": "00",
			"speed": "03"
		},
		"routeChanges": 0,
		"transmissionCount": 0,
		"sumOfTransmissionTimes": 0,
		"sumOfTransmissionTimesSquared": 0,
		"packetErrorCount": 0,
		"neighbors": {
			"14": {
				"speed": 7,
				"repeater": 1
			},
			"23": {
				"speed": 7,
				"repeater": 0
			},
			"32": {
				"speed": 7,
				"repeater": 0
			},
			"52": {
				"speed": 7,
				"repeater": 0
			},
			"54": {
				"speed": 7,
				"repeater": 1
			},
			"64": {
				"speed": 7,
				"repeater": 1
			},
			"65": {
				"speed": 7,
				"repeater": 0
			},
			"67": {
				"speed": 7,
				"repeater": 0
			},
			"68": {
				"speed": 7,
				"repeater": 0
			}
		}
	},
	"18": {
...
      },
	"1": {
		"route": {
			"type": "00",
			"repeater1": "00",
			"repeater2": "00",
			"repeater3": "00",
			"repeater4": "00",
			"speed": "00"
		},
		"routeChanges": 0,
		"transmissionCount": 0,
		"sumOfTransmissionTimes": 0,
		"sumOfTransmissionTimesSquared": 0,
		"packetErrorCount": 0,
		"neighbors": {
			"12": {
				"speed": 7,
				"repeater": 0
			},
...
}

where the route is 01 -> 0E -> 11 100kbps (17 = 0x11)

1 Like

I just found this, read most of this thread, and installed it!
WOW this is FANTASTIC!!!!
Shows TONS of useful information, and is easy to customize!
Thank you for this GREAT effort and contribution!

1 Like