I develop Network Visualizer (`no.arvebjoe.network-visualizer`), an app that draws the Homey’s Zigbee, Thread & Matter and Z-Wave networks as a map: each device’s route back to Homey and the quality of every link.
Zigbee and Thread work well, but for Z-Wave an app can’t read the mesh. `ManagerZwave.getState()` gives every node and its TX counters, but no neighbours and no routes. Homey’s own developer tools get those from `ManagerZwave.runCommand` with `getNetworkTopology` and `getFailedNodes`, but `runCommand` requires the `homey.system` scope. An app with `homey:manager:api` only gets `homey.system.readonly`, so both calls fail with `Missing Scopes`.
Opening `runCommand` to apps would be a bad idea, since it also reaches `factoryReset` and `removeNode`. What I’m asking for is a read-only way to get the same data, like `ManagerThread.getNetworkTopology()` already gives for Thread.
I’ve filed it here, with the details and a code sample that reproduces it:
This is where the app gives up on the mesh and draws Z-Wave as a star, every device joined straight to Homey:
Two questions:
1. To Athom’s developers: is a read-only Z-Wave topology call something you would consider? I’m happy to test anything on my own Homey with 16 Z-Wave nodes.
2. Has anyone found another way for an app to read Z-Wave neighbours or routes that I’ve missed?