Remove nodes from secondary controller / network update
Is your feature request related to a problem? Please describe. While there is a method to remove all dead/failed nodes, there is no method to selectively manually remove one zwave device.
Describe the solution you'd like Under actions for selected node, have an option to remove node. Alternatively, have the option under Manage Nodes but there would need to be a manner to select the node ID (perhaps provide a list of dead ones, IDK).
Describe alternatives you've considered N/A
Additional context I have performed learn mode (the new feature), and one node still remains in ZWAVE JS (UI). Although, checking the primary controller (Vera) via API calls, the node does not exist there anymore. I did remove the node PRIOR to learn mode being started on the secondary controller (ZWAVE JS).
Hummm I'm not sure what I should do here, @AlCalzone ?
I'll have to check the specs how this is supposed to work. I think there is some kind of network update procedure that needs to be triggered while the secondary controller is in learn mode. As to why it even showed up if it was not part of the network before joining it, I have no clue.
It was part of the network originally. The secondary controller (ZUI) was Node 53, and I had to exclude it from the primary controller (Vera). Once I did this, I put the primary controller into include mode, and put the secondary controller into learn mode. At this point, the secondary controller was added as Node 54. Eventually the nodes showed up in ZUI (some further testing needed as indicated elsewhere), and the secondary controller is identified correctly in ZUI. Checking the primary controller via API call, there is no longer any Node 53, but this node still shows up in ZUI. Hence, the need to manually remove it (unless there is a cleaner implementation).
What I meant is: if node 53 was not part of the network at the time ZUI joined as secondary controller, it should not have been reported to ZUI as an existing node when it joined. Secondary controllers get their network topology from the primary. I can look at this in your logs you wanted to make for the other issue anyways.
Re-learned a second time, as per my notes on the other issue. Node 53 was removed. Do we think that even though Node 53 was no where in the Vera config, since it was removed the 'not so nice way' it was still somewhere in the zwave network config and thus ZWAVE JS was still showing it? I will note that it was finally removed when I excluded ZWAVE JS using the driver function api call and re-learned while including on Vera.
A few questions to consider:
- If ZWAVE JS is primary, no issues. We can remove dead controllers without excluding as that is our only option. We have that feature via Advanced Actions -> Failed Nodes -> Remove All. Can (should we implement the option) we have the option to remove a node selectively (not all, but a specific node)?
- If ZWAVE JS is secondary, we really CANT remove a failed node (at least that is my understanding) as we have to do that on the primary. If ZWAVE JS is secondary, it just learns from the network into which it was included, but cant control the add/delete device/node process. Would it make sense to somehow Identify if ZWAVE JS is secondary, and GREY OUT options which it cannot control? With maybe a message saying that this must be performed on the primary controller?
Think we may have root cause for this issue... the previous ZWAVE JS node was not 'cleanly' removed from the ZWAVE network via Vera and there may have been artifacts on the ZWAVE network config. But thinking there are some new features we could add (as per my questions to consider above).
Like I said, I'll have to look at the specifications to see which options we have and what can be done using a secondary controller. Including/excluding nodes is definitely possible, but not yet implemented in Z-Wave JS.