Short answer: No. This is the unfortunate side effect of mesh networks–they tend to keep trying multiple times before abandoning hope that the connection can be re-established.
See the Smart Things blog article on repeaters and what happens when a network is broken:
I don’t know exactly how SmartThings has implemented their zwave repair, but I can say that most of the time people don’t give the child devices enough time to complete their “I give up” sequence.
In particular–if you have any smartapps running that do interval polling during the time the heal is taking place, you run the risk of repopulating an old node table and not forcing the new routes to form.
If you want to heal a zwave network, the usual field engineer approach is: unplug the hub for 15 minutes. This should be enough to put all the child nodes into “help, I’m lost” status.
Restart the hub, and idle any processes that do polling.
Heal the network.
Wait another 15 minutes so that all the lost children can find new parents.
I notice ST’s official support page suggests waiting “30 seconds to 15 minutes.” I would use the 15 minutes as a minimum.
Don’t just go by the log entries saying that the heal is complete! That does mean the routing table has been rebuilt at the hub, but it doesn’t 100% guarantee that all the children have the new routes. Give it time for the new routes to propagate. Some field engineers will perform healing 3 or 4 times to make sure all alternate routes have been considered.
I think where people get confused is they assume “self healing” means “on the fly correction.” It doesn’t. The zwave protocol is what’s called a “source routed mesh network.” That’s why it requires a hub. The hub figures out the routing tables in advance with several alternate routes and saves those in a static routing table. That’s what gets used.
“As a source-routed static network, Z-Wave assumes that all devices in the network remain in their original detected position. Mobile devices, such as remote controls, are therefore excluded from routing.” It also assumes all the original devices are working as they were when included!
Typically when a device goes out of service, the hub just tries the second or third alternate route, one of which make work. It probably takes more time, and you may end up with traffic overload.
Zwave is “self healing” because the router can be made to fix its own routing table to find the optimal first route without requiring a human to assign each route. That’s what the healing process does. But it takes time and if you’re running other processes at the same time, you can have problems.
The newest Zwave protocol, gen 5 (commonly called “Zwave Plus”) introduced Explorer Frames which are intended as a better way of pruning missing or damaged nodes. But it’s still not on the fly routing.
Keep the hub offline for at least 15 minutes.
Idle any processes other than the heal during the heal process plus 15 minutes.
And if you really want optimal routing, repeat the heal 3 times. But I know that’s a long time to be offline.
All of this is true for any zwave network, it’s not specific to SmartThings. But because it’s a source routed mesh network, you can’t just run the Heal and fix the network. You have to get all the devices up to date before you start processes other than routing going again.
BTW, many field engineers will take an overburdened parent off line during the entire heal process, then re-add it last WITHOUT doing a heal. That can break up a bottleneck. This does tend to be more of a problem in zigbee networks which prioritize parent selection to nodes with higher signal strength, but can affect zwave as well.