<?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>BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/29938/ble-mesh-provisioner-functionality</link><description>I&amp;#39;ve just read the BLE Mesh documentation, very informative, but I still have some questions related to the concept and implementation, which are: 
 
 Can a device toggle functionality between provisioner and provisioneer, or even act as both? 
 How</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 02 Feb 2018 12:54:03 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/29938/ble-mesh-provisioner-functionality" /><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119536?ContentTypeID=1</link><pubDate>Fri, 02 Feb 2018 12:54:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8114096-3f9c-40d2-ba6f-a1ea8e91dfa4</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you looked at our light switch client code, you can find that after provision 3 nodes into the network, it will stop enterring waiting for unprovisioning mode. Basically&amp;nbsp;stop being a provisioner and just work as a normal node&amp;nbsp; (one node with 4 elements in this case).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;I don&amp;#39;t see any problem with your plan as long as you can have a way of communication inside the network so that the new provisioner won&amp;#39;t reassign an address that given to a node to a new node. Or you can simply set different address spaces for different provisioneers so they won&amp;#39;t overlap. Note that there shouldn&amp;#39;t be a case that 2 provioners provision 1 node at the same time because a provisioning link has to be established and one node can&amp;#39;t have 2 links at the same time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119065?ContentTypeID=1</link><pubDate>Sun, 28 Jan 2018 21:21:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:017b540e-8ebb-4afb-8d90-f96bdb13a373</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;I have edited the question to give further details, but bear in mind that the use case detailed is actually very broad, and actually defines the architecture for the platform we are trying to develop. We just want to evaluate Bluetooth mesh as a possible way to implement this with what&amp;#39;s currently available.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119064?ContentTypeID=1</link><pubDate>Sun, 28 Jan 2018 20:24:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0940bf0a-e2d3-4a44-ac75-900265b96ae8</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;As stated in the original answer and subsequent comments above,&lt;/p&gt;
&lt;p&gt;(1) &amp;quot;&lt;strong&gt;&lt;em&gt;...From that point, mesh devices/nodes can happily function within the network without going through the Provisioner.&lt;/em&gt;&lt;/strong&gt;&amp;quot; and&lt;/p&gt;
&lt;p&gt;(2) &amp;quot;&lt;strong&gt;&lt;em&gt;...typically the Provisioner will also couple that configuration client so this device will also be responsible for mesh network management etc.&lt;/em&gt;&lt;/strong&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;Given the above, can I suggest that you clearly document the use case for your mesh network to need to function without the need for provisioning and/or configuration client functionality, and then we can offer guidance on its validity/feasibility.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119074?ContentTypeID=1</link><pubDate>Sun, 28 Jan 2018 11:25:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:254ca6b2-1606-466a-b982-bba65acf9f53</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;Sorry, I wasn&amp;#39;t clear. I have seen other questions regarding provisioning, and from what I understood, If a provisioner device were to be removed from the network, the mesh would still work, however no new device would be able to join the network, and it could not rely on the provisioner for management. From what I have seen on the documentation, it also seems the case. It&amp;#39;s possible right? I just wanted to know if instead of removing the provisioner device of the mesh, it could simply stop provisioning, and therefore closing the mesh for new devices to connect, and still be part of the network. Or is it not possible at all? Thanks for your attention to my doubts.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119076?ContentTypeID=1</link><pubDate>Sat, 27 Jan 2018 23:41:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5331c12c-9711-4e8f-83da-9169b0ccaa43</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;...(continuation), therefore from a practical perspective the designated Provisioner(s) in a single mesh network will need to be available/functional for the entirety of the life of that network.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119075?ContentTypeID=1</link><pubDate>Sat, 27 Jan 2018 23:35:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af4c5d3d-4512-4251-87d6-6354a3484c1d</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;I&amp;#39;m not entirely sure what you mean by, &amp;quot;&lt;em&gt;but does it continue as so if it no longer acts as a provisioner&lt;/em&gt;&amp;quot;...&lt;/p&gt;
&lt;p&gt;You should note that every Bluetooth mesh network must have &lt;strong&gt;at least one&lt;/strong&gt; Provisioner, so that device/functionality cannot simply be removed from the mesh network. The Provisioner assigns unicast addresses/node ids to newly provisioned devices, however there is also a configuration phase where (network keys, device keys etc.) are distributed to the new mesh node. This configuration phase is carried out by the Configuration Client model. Although not mandated to be the same device, typically the Provisioner will also couple that configuration client so this device will also be responsible for mesh network management etc. (see &lt;a href="https://www.bluetooth.com/specifications/mesh-specifications"&gt;section 3.10 of the Bluetooth Mesh Profile Specification&lt;/a&gt;) for more info on this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119073?ContentTypeID=1</link><pubDate>Sat, 27 Jan 2018 10:48:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:40af3ba0-87f9-4358-8927-64eacb31c871</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;Just another point, if you may. Setting a device as a provisioner in the application turns it into a heavy process, but does it continue as so if it no longer acts as a provisioner. What I mean is, does the provisioning implementation compromise the device (process wise) after being set as provisioner, even after not acting as so in an arbitrary amount of time (if that&amp;#39;s possible)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119066?ContentTypeID=1</link><pubDate>Sat, 27 Jan 2018 00:29:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1e0c91e0-ed03-462f-b108-caad3abf141f</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;Thanks for your guidance, I will check the post.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119068?ContentTypeID=1</link><pubDate>Sat, 27 Jan 2018 00:21:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca988f23-8eb4-4686-b0c2-f9dfe1e48031</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;If you are on (plan to be on) nrf5x devices then try to have a look at &lt;a href="https://devzone.nordicsemi.com/question/178532/zephyr-bluetooth-mesh-development/"&gt;this post&lt;/a&gt; it&amp;#39;s not the most definitive but will give you some initial guidance. Although the setup time in terms of development environment etc. is quite high it will allow you to get a firm practical grasp of Bluetooth mesh. Once you are able to provision simple devices via the SiLabs Smartphone (PB-GATT) app, you can then look at setting up publication/subscription groups and heartbeat messages etc.&lt;/p&gt;
&lt;p&gt;Some of the members on my team went this route for their basic understanding of mesh and then moved onto implementing mesh nodes via the Nordic Mesh SDK. They now happily switch between both Zephyr and the Nordic SDK depending upon the  functionality they want to implement but then that&amp;#39;s the &amp;#39;beauty&amp;#39; of having a mesh standard in place.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119067?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 23:38:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d7cf0dbd-2533-46c9-9e9a-c3d30a5b5264</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;I see. To use a smartphone or a tablet as provisioner would actually be better however, from what I have seen, that&amp;#39;s still in development. I also don&amp;#39;t think that this is the best path for the application, but it&amp;#39;s the first solution I came up with after reading through the BLE mesh documentation, I was actually trying to evaluate it&amp;#39;s feasibility.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119071?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 23:28:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dfb68d6b-06e7-4cee-82df-3edc9a869547</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;(&lt;strong&gt;1&lt;/strong&gt;) Right, but remember that in general you&amp;#39;re mainly dealing with constrained devices (and provisioning is a resource heavy process) so having &amp;#39;top-heavy&amp;#39; functionality built into a device that may not be used is something that would need to be factored into your design process.&lt;/p&gt;
&lt;p&gt;(&lt;strong&gt;2&lt;/strong&gt;) That being said, it&amp;#39;s envisaged that your typical Provisioner would provide a UI i.e. tablet/smartphone and so will be specialized devices in the first place. Therefore any mesh network designer would/should know whether they have an existing/functional mesh network before attempting to deploy any devices.&lt;/p&gt;
&lt;p&gt;Given the above, the greater task would be to ensure that Provisioner(s) redundancy is achieved via device backup/cloud storage etc. so that the mesh isn&amp;#39;t left &amp;#39;in limbo&amp;#39; through data/device loss. But again the mesh specification leaves this task to the implementer of the mesh network.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119070?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 22:50:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:442f8950-3e02-4d5d-9e96-026d332f0997</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;That&amp;#39;s precisely the case. The details are not finished, but basically I wanted a mesh network without a different device in it (functionality wise), that is, any device could start the mesh and if one is has already started, the other devices should join it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119069?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 22:46:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:92408539-431c-4f35-9024-c0652288f006</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;So based upon your comment, I&amp;#39;m assuming that the basis of your use case would be that...&lt;/p&gt;
&lt;p&gt;(1) your device would initially sit around waiting for a mesh network to join (i.e. act as a Provisionee), however after some arbitrary period of time it would decide that since it had nobody to &amp;#39;play with&amp;#39;...&lt;/p&gt;
&lt;p&gt;(2) it would then decide to setup a mesh network of its own (i.e. as Provisioner)&lt;/p&gt;
&lt;p&gt;It would be good if you could elaborate further on the use case that you have in mind.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119072?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 22:28:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15098ac1-0d99-493f-8a4d-7c90a8e7a355</guid><dc:creator>alasknnj</dc:creator><description>&lt;p&gt;Therefore, I could not implement an application in which the device starts as a provisionee, and upon not being connected to a mesh network after some time, act as a provisioner for future devices?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE Mesh provisioner functionality</title><link>https://devzone.nordicsemi.com/thread/119063?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 22:17:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:23d957d6-a62b-4b07-9de2-c01789d56bd9</guid><dc:creator>leonwj</dc:creator><description>&lt;p&gt;Hello alasknnj,&lt;/p&gt;
&lt;p&gt;Within the Bluetooth Mesh specification the Provisioner is defined as a device that can both&lt;/p&gt;
&lt;p&gt;(&lt;strong&gt;a&lt;/strong&gt;) create a mesh network, as well as&lt;/p&gt;
&lt;p&gt;(&lt;strong&gt;b&lt;/strong&gt;) provision/add new, unprovisioned devices (Provisionee&amp;#39;s) into that same mesh network.&lt;/p&gt;
&lt;p&gt;For any single mesh network the Provisioner is initially simply a random device looking for Provisionee&amp;#39;s to join its network and without a Provisioner, provisionee&amp;#39;s are devices that will simply send out unprov&amp;#39;d beacons looking for a network to join. Once a Provisioner has selected a device (Provisionee) to join its network, it will provide the unprovisioned device with the provisioning data that allows it to become a node within that mesh network and proceed with authentication steps etc. From that point, mesh devices/nodes can happily function within the network without going through the Provisioner. As such, and within the context of your question, the Provisioner can&amp;#39;t toggle between being a provisioner and provisionee or act as both (at least not within the same mesh network).&lt;/p&gt;
&lt;p&gt;Additionally, although the Bluetooth Mesh specification mandates that each mesh network must have a single Provisioner (obviously to perform initial mesh network creation and provisioning), it doesn&amp;#39;t preclude additional provisioner devices being added/used in that same mesh network. So it is certainly possible to have multiple provisioners. What the specification doesn&amp;#39;t currently do however, is set a standard for how those multiple provisioners would share the same namespace and synchronize mesh network changes between themselves. At the present time, this functionality would be implementation specific. So for example, you would potentially have to ensure that 2 or more Provisioners don&amp;#39;t assign the same device key or Node Id to different devices or that 2 different Provisioners don&amp;#39;t try to add the same device to the network at the same time etc.&lt;/p&gt;
&lt;p&gt;I hope that this provides the clarification that you were looking for but let us know if you require any further insight.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>