This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Android-nRF-Mesh-Library: How to reset, remove, or blacklist an unreachable node?

My Android app allows the user to un-provision a mesh node.  To do so, the app just sends a ConfigNodeReset message to the node's unicast address, which works perfectly if the node is reachable.  
 
However, if the destination node is powered off (or otherwise unreachable), then the node is (of course) not receiving the message and hence continues to be part of the mesh network. Which makes sense, however, the behavior I'd like to implement is a little different. When resetting/removing an unreachable node:
 

  1. The unreachable node should be removed from Android-nRF-Mesh-Library's internal list of nodes. So the next time the app starts, it does no longer show the node, even if the node becomes reachable again.
  2. It would be ideal if the node would be "blacklisted", so that later on, when the node becomes reachable again, it would no longer react to messages. Basically locking the node out of its mesh until it gets resetted and re-provisioned.
        

Now the questions are, how can this be done using the Android-nRF-Mesh-Library? Or differently asked:
How can a node be removed from the Android-nRF-Mesh-Library's internal list of nodes, so that the App does no longer see it?
How can a node be removed from the Mesh network if it is not reachable?
 
Any clarifications are very much appreciated,
Thank you,
Michael.

  • Hei BlueMike, 

    1. As far as I know you can remove the node in the list by just swiping left on the node. It wont reset the node though. 

    2. The "blacklisting" process is defined in the spec. Please read the 3.10.4 Key Refresh procedure section in the Mesh spec. 

    So basically you trigger a key refresh procedure to all the node that you want to retain to the network and leave behind the node you want to remove from the network. Regardless the node(s) you want to remove is active or not it will not get the key to communicate in the network after the new network key is activated. 
    However our mobile app doesn't offer this feature yet. So if you want to do keyrefresh you need to do it from an embedded Provisioner or modify the app to do this feature. 

Related