<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/71758/unprovisioning-the-nodes-based-on-rssi</link><description>My current implementation is based on light switch example and I am currently using nrf52832 kit with Mesh SDK v5.0.0. I have a mesh network setup with a client and two server nodes. My client also does the provisioning(borrowed the client provisioning</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 19 Feb 2021 14:17:29 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/71758/unprovisioning-the-nodes-based-on-rssi" /><item><title>RE: Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/thread/295373?ContentTypeID=1</link><pubDate>Fri, 19 Feb 2021 14:17:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a018b4c-4665-482a-986f-19c0e813a8a9</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tyson,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Yes I think calling&amp;nbsp;&lt;span&gt;heartbeat_publication_set() to send the message to itself should be OK.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;Otherwise you can follow what we do inside&amp;nbsp; handle_heartbeat_publication_set() in config_server.c to configure heartbeat manually.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/thread/295323?ContentTypeID=1</link><pubDate>Fri, 19 Feb 2021 12:13:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:37280d6d-af5c-4a00-b670-c858debd482d</guid><dc:creator>tysonp</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;One final question. I need a heartbeat messages to be&amp;nbsp;broadcasted periodically from the client. Usually its done by the configuration server model when the provisioner sends an opcode. But, in my case the client and provisioner are same. So, this question is just to check if I am right. So, since my client and provisioner are same, I could setup my current device(client + provisioner) to send heartbeat message by heartbeat_init(), heartbeat_publication_set(). Am I right? Anything else needs to done?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Tyson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/thread/295281?ContentTypeID=1</link><pubDate>Fri, 19 Feb 2021 09:25:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b3fb8252-e6e5-41d3-9cd7-f51bf9418eee</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tyson,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There is a process called &amp;quot;Key Refresh&amp;quot; where the network key can be updated. If you choose to not update a node, it will be black listed and can&amp;#39;t join the network after the key refresh process is finished.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This to ensure that the node to be removed can&amp;#39;t re-connect to the network even thought it doesn&amp;#39;t erase the provisioning information as requested in the node_reset command.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Please have a look at&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/35953/ble-mesh-single-node-remove-from-network"&gt; this discussion&amp;nbsp;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In your case, if you want to unprovision the node itself, you can just execute what inside&amp;nbsp;handle_node_reset() (disable proxy first, then do apply_reset()). In that case, when a node unprovision itself, I don&amp;#39;t think you would need to blacklist the node.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/thread/295277?ContentTypeID=1</link><pubDate>Fri, 19 Feb 2021 08:48:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e995197c-6ca9-46b6-845d-fa729492e955</guid><dc:creator>tysonp</dc:creator><description>&lt;p&gt;Hi Hung,&lt;/p&gt;
&lt;p&gt;Thanks for the prompt reply. So, we are planning and thinking of an application where we take away the node from one mesh network and automatically gets added to another mesh network. So, before being added to another network, it need to get unprovisioned from its previous network and vice versa and I want the server nodes to be unprovision itself based on rssi from its nearest node, here unprovisioning should happen independent of the provisioner.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So,as you have added each time a nodes gets unprovisioned or in this case moves away from my network. Then, I should also update the netkey of all other nodes in the network with my provisioner? I guess that I should also track my nodes which is moved away. So, what steps I need to do at configuration client side to refresh netkey for all the other nodes which is already part of the network. What are the steps in the code for key refresh procedure?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Unprovisioning the nodes based on RSSI</title><link>https://devzone.nordicsemi.com/thread/295130?ContentTypeID=1</link><pubDate>Thu, 18 Feb 2021 14:09:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e40a7d6-2273-467d-98f4-e07257d684f3</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Tyson,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s correct that you can base on the RSSI to detect the distance of a node to the other nearest node. However, RSSI is not a very reliable source to calculate distance. It can be affected largely by the environment for example if a person cover the device, it will affect the actual RSSI. I would suggest to collect the RSSI for long period of time and get the average before you decide that the device has moved away.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you give some more information about your application and why you want to remove the node when it&amp;#39;s moving away (but&amp;nbsp;still in the range&amp;nbsp;? )&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regarding RSSI, for each packet arrived in the access layer, you can find the rssi value inside&amp;nbsp;nrf_mesh_rx_metadata_scanner_t struct inside&amp;nbsp;access_message_rx_t struct of the message.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To unprovision a node, you can use the configuration client to send a node reset&amp;nbsp;config_client_node_reset() to the node. The node then will erase provisioning information and becomes unprovisioned. Please be noted that to make sure the node is actually excluded from the network you would need to black list the node and update the network with new netkey. The reason for that is that we wouldn&amp;#39;t know if the node actually erase provisioning information or not.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>