<?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>Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target</link><description>Hello, 
 Originally, the Zigbee light_control examples ships with a bulb that can call the zb_bdb_finding_binding_target() function , and a light switch that calls zb_bdb_finding_binding_initiator() function . This allows the light switch to add the bulb</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 30 Mar 2020 10:38:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target" /><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/242362?ContentTypeID=1</link><pubDate>Mon, 30 Mar 2020 10:38:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3334601-dd08-4746-9d81-ae1c04a6cd42</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;Thank you so much for this response, it is extremely detailed and provides the answers I need.&lt;/p&gt;
&lt;p&gt;I will give these a try and and let you know how they go.&lt;/p&gt;
&lt;p&gt;Thank you,&lt;br /&gt;Angry Oatmeal&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/241335?ContentTypeID=1</link><pubDate>Tue, 24 Mar 2020 10:52:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a6c7f522-61ca-4b16-bae6-91e4563e61ca</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Reply from our Zigbee team:&lt;/p&gt;
&lt;p&gt;The short answer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I was able to reproduce the issue both on SDKv3.1 and SDKv4.1.&lt;/li&gt;
&lt;li&gt;If you generate ZCL client commands, you should implement ZCL client cluster.&lt;/li&gt;
&lt;li&gt;If you add the Identify client cluster to you device&amp;#39;s cluster list, the Finding&amp;amp;Binding procedure works perfectly well.&lt;br /&gt;For example, copy/modify the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;ZB_HA_DECLARE_DIMMABLE_LIGHT_CLUSTER_LIST&lt;/tt&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;macro by adding the following item at the end of the list:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;    ZB_ZCL_CLUSTER_DESC(          \
      ZB_ZCL_CLUSTER_ID_IDENTIFY, \
      0,                          \
      NULL,                       \
      ZB_ZCL_CLUSTER_CLIENT_ROLE, \
      ZB_ZCL_MANUF_CODE_INVALID   \
    ) &lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When it comes to topology questions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zigbee network may be considered as star topology networks (ZR - center/star, ZED/SED leafs/planets), connected with a full mesh (between both ZRs and ZR-ZC).&lt;/li&gt;
&lt;li&gt;If you want to draw the topology, please take a look at the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;tt&gt;zdo mgmt_lqi&lt;/tt&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;CLI command - it prints out the neighbor table of a selected node.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are targeting not the network topology, but sort of &amp;quot;application&amp;quot; topology, meaning which device controls which, you should draw:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connections based on binding tables (the command to read it was already mentioned inside the ticket).&lt;/li&gt;
&lt;li&gt;Grouping, by reading APS groups from each endpoint on each device (this covers switches that turn off/on the whole room/floor/building).&lt;/li&gt;
&lt;li&gt;This still will not cover manufacturer-specific ways of making connections between devices (such as match descriptor request/response-based).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When it comes to finding and binding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The idea of it is to provide an easy way of binding client clusters to server clusters (for example On/Off client a.k.a. switch with On/Off server a.k.a. light bulb).&lt;/li&gt;
&lt;li&gt;The procedure on an initiator device (usually the one that controls, e.g. light switch) is triggered manually.&lt;/li&gt;
&lt;li&gt;The selection of the target devices (e.g. light bulb) is by putting it into identify mode (this is quite obvious in case of lightning - you look for a bulb to control by sending identify command and checking which one starts blinking. One you find the right one, you initiate the initiator to bind with it).&lt;/li&gt;
&lt;li&gt;The bulb does not know if the switch was bound. It only knows that it was identifying and that someone queried for the identify state. The binding status may be queried only by reading out the binding table from the switch.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;The usage of Finding&amp;amp;Binding procedure is presented in Multiprotocol Light Switch with NUS example (F&amp;amp;B initiator, sending Identify commands).&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Reading binding tables, as well as neighbor tables is implemented in Zigbee CLI example.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/239699?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2020 11:29:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:02b9f2e9-d5bc-4017-8293-6a68467a339e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am sorry. I haven&amp;#39;t heard from my internal ticket yet. I will ping it, and hopefully get a reply soon (they are in another country, so I can&amp;#39;t just walk over to their office).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/238728?ContentTypeID=1</link><pubDate>Mon, 09 Mar 2020 08:20:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:72cfa475-a834-43d9-b6a6-0a4e13ddd30e</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
&lt;p&gt;Any news on this? Have you consulted the Zigbee team?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;Angry Oatmeal&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/235513?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 14:58:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e9fa5468-4402-4018-a479-fa77cb80b7c8</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hi Edvin,&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target/235346"]My point was that if this is not removed, then this will create the binding, regardless of the zb_bdb_finding_binding_target/initiator().&amp;nbsp;[/quote]
&lt;p&gt;I don&amp;#39;t think this is the case. If I leave the switch as normal and allow it to find the bulb by executing the&amp;nbsp;&lt;em&gt;zb_zdo_match_desc_req()&amp;nbsp;&lt;/em&gt;function, it is able to find the address and endpoint of the bulb and adds it to its&amp;nbsp;m_device_ctx.bulb_params.short_addr and&amp;nbsp;m_device_ctx.bulb_params.endpoint variables respectively.&lt;/p&gt;
&lt;p&gt;However, this only seems to be a case of storing the bulb&amp;#39;s address and endpoint in a variable, and not &amp;quot;binding&amp;quot; it. The reason I say this is because If I run the&amp;nbsp;&lt;em&gt;zdo mgmt_bind&amp;nbsp;&lt;/em&gt;command from the CLI coordinator and&amp;nbsp;send it to the switch, the switch&amp;#39;s binding table &lt;strong&gt;does not&amp;nbsp;&lt;/strong&gt;show the bulb it just found. This binding table will only be filled when we go through the&amp;nbsp;&lt;span&gt;zb_bdb_finding_binding_target/initiator() procedure, and won&amp;#39;t be filled by the&amp;nbsp;&lt;em&gt;zb_zdo_match_desc_req()&amp;nbsp;&lt;/em&gt;procedure.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Nevertheless, I commented out parts of my code to prevent the switch from calling the&amp;nbsp;&lt;span&gt;&lt;em&gt;zb_zdo_match_desc_req()&amp;nbsp;&lt;/em&gt;function, and then tried to call the&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_target()&amp;nbsp;&lt;/em&gt;on the switch, and the&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&lt;/em&gt; on the bulb. As expected, everything stayed exactly the same, with the switch being unable to bind to the bulb.&lt;/span&gt;&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target/235346"]Let me check with our Zigbee team. Perhaps they know why it doesn&amp;#39;t work.[/quote]
&lt;p&gt;&lt;span&gt;I&amp;#39;d appreciate that very much, thanks&amp;nbsp;&lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f604.svg" title="Smile"&gt;&amp;#x1f604;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best Regards,&lt;br /&gt;Angry Oatmeal.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/235346?ContentTypeID=1</link><pubDate>Thu, 20 Feb 2020 08:35:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:408d4a64-8721-48d0-9d6c-58b8d07fd603</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[quote user="Slim_Jim_Larry"][/quote]&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;span&gt;ZB_BDB_SIGNAL_DEVICE_REBOOT&amp;nbsp;event on the switch however, goes through the steps you mentioned as:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;zb_err_code = ZB_SCHEDULE_ALARM(find_light_bulb, param, MATCH_DESC_REQ_START_DELAY) &lt;/span&gt;&lt;span&gt;-&amp;gt;&amp;nbsp;zb_zdo_match_desc_req -&amp;gt;&amp;nbsp;find_light_bulb_cb.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I am sorry. I meant the switch, not the bulb. My point was that if this is not removed, then this will create the binding, regardless of the zb_bdb_finding_binding_target/initiator().&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Let me check with our Zigbee team. Perhaps they know why it doesn&amp;#39;t work.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/235129?ContentTypeID=1</link><pubDate>Wed, 19 Feb 2020 10:24:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d63ad5bb-d6a1-45f1-ab9d-ed4438bf8ac5</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target/234847"]With the main.c files that you sent me, the bulb and switch will join the network, and the switch can control the light bulb. However,&amp;nbsp;Is that not what you see?[/quote]
&lt;p&gt;I agree the bulb and switch will join the network without a problem. I am seeing this myself and that part is working as expected.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target/234847"]However, it is the bulb that initiate this in your project in the&amp;nbsp;ZB_BDB_SIGNAL_DEVICE_REBOOT event.&amp;nbsp;[/quote]
&lt;p&gt;I&amp;#39;m a bit confused. I don&amp;#39;t understand how the bulb initiates &amp;quot;this&amp;quot; from its&amp;nbsp;ZB_BDB_SIGNAL_DEVICE_REBOOT event, could you please elaborate? From what I understand, the&amp;nbsp;&lt;span&gt;ZB_BDB_SIGNAL_DEVICE_REBOOT&amp;nbsp;event on the bulb calls the&amp;nbsp;&lt;/span&gt;&lt;em&gt;bdb_start_top_level_commissioning(ZB_BDB_NETWORK_STEERING);&amp;nbsp;&lt;/em&gt;function, which allows the bulb to join the network.&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;span&gt;ZB_BDB_SIGNAL_DEVICE_REBOOT&amp;nbsp;event on the switch however, goes through the steps you mentioned as:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;zb_err_code = ZB_SCHEDULE_ALARM(find_light_bulb, param, MATCH_DESC_REQ_START_DELAY) &lt;/span&gt;&lt;span&gt;-&amp;gt;&amp;nbsp;zb_zdo_match_desc_req -&amp;gt;&amp;nbsp;find_light_bulb_cb.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/57197/reverse-finding-and-binding-role-initiator-and-target/234847"]Do you want me to remove the find_light_bulb call[/quote]
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I don&amp;#39;t think there will be any need for that, unless it can help with my finding and binding issues.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Again, just to reiterate my issue&lt;/strong&gt;. The normal operation of the light control examples works perfectly, there are no issues there. The issue comes from the added&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_target()&lt;/em&gt; and&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&lt;/em&gt;&amp;nbsp;functions. The rest of the code operates fine, it is simply this add-on feature which is not working as expected.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If I call&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_target()&lt;/em&gt;&amp;nbsp;on the bulb, then call&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&amp;nbsp;&lt;/em&gt; on the switch, everything works fine, and when I check the switch&amp;#39;s binding table, I can see the bulb there. Perfect.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;However, if I reverse this, and call&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_target()&lt;/em&gt;&amp;nbsp;on the switch, then call&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&amp;nbsp;&lt;/em&gt;on the bulb, the switch is not able to bind to the bulb. In fact nothing actually happens. This is my primary issue.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Would it perhaps help if I opened up a private support ticket for this issue? It seems this might need some more looking into than a quick forum post.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you,&lt;br /&gt;Angry Oatmeal&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/234847?ContentTypeID=1</link><pubDate>Tue, 18 Feb 2020 10:22:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97c7bf3d-4fe9-4b44-a1cd-22cedd948dd0</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;With the main.c files that you sent me, the bulb and switch will join the network, and the switch can control the light bulb. However,&amp;nbsp;Is that not what you see?&lt;/p&gt;
&lt;p&gt;However, it is the bulb that initiate this in your project in the&amp;nbsp;ZB_BDB_SIGNAL_DEVICE_REBOOT event.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;zb_err_code = ZB_SCHEDULE_ALARM(find_light_bulb, param, MATCH_DESC_REQ_START_DELAY); -&amp;gt;&lt;/p&gt;
&lt;p&gt;zb_zdo_match_desc_req -&amp;gt;&amp;nbsp;find_light_bulb_cb, and this will set the address and andpoint for the bulb. This address and endpoint is used directly in the button event handler&amp;nbsp;buttons_handler(). Do you want me to remove the find_light_bulb call:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;zb_err_code = ZB_SCHEDULE_ALARM(find_light_bulb, param, MATCH_DESC_REQ_START_DELAY);?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/234559?ContentTypeID=1</link><pubDate>Mon, 17 Feb 2020 08:00:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b0a15fa-64ae-4953-a6fb-4d6f687aad43</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Any updates?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/233691?ContentTypeID=1</link><pubDate>Tue, 11 Feb 2020 11:29:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5198342a-b4a6-4204-b524-6f6d4bdf7c01</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just as another side note, I found the the reason for the crash on multiple&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&amp;nbsp;&lt;/em&gt;calls.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It was occurring due to the second call returning an error 4 (RET_BUSY). For some strange reason, the&amp;nbsp;&lt;em&gt;ZB_ERROR_CHECK(zb_err_code)&amp;nbsp;&lt;/em&gt;was not catching this, and causing the system to freeze. The solution is strange so maybe you could shed some light on it.&lt;/p&gt;
&lt;p&gt;The fix was to delete the&amp;nbsp;&lt;em&gt;NRF_LOG_INFO(&amp;quot;Bulb Initiator&amp;quot;)&amp;nbsp;&lt;/em&gt;on line 363. Once this is deleted, the error check fires normally, and I can catch the error and deal with it appropriately using the below code:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;        zb_err_code = zb_bdb_finding_binding_initiator(HA_DIMMABLE_LIGHT_ENDPOINT, finding_binding_cb);
		if(zb_err_code == RET_BUSY)
		{
		    NRF_LOG_INFO(&amp;quot;initiator is busy, cancel&amp;quot;);
		    zb_bdb_finding_binding_initiator_cancel();
		}
&lt;/pre&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Just thought you should know,&lt;br /&gt;Angry Oatmeal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/233450?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2020 08:58:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09000295-594b-4801-af6b-cc989965d9ef</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Find attached both main.c files. I&amp;#39;ve named them according to their function.&lt;/p&gt;
&lt;p&gt;For main_bulb.c the primary changes made are on line 359 - 365.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/main_5F00_bulb.c"&gt;devzone.nordicsemi.com/.../main_5F00_bulb.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For main_switch.c the primary changes made are on line 447 - 456.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/main_5F00_switch.c"&gt;devzone.nordicsemi.com/.../main_5F00_switch.c&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope this helps,&lt;br /&gt;Angry Oatmeal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/233282?ContentTypeID=1</link><pubDate>Fri, 07 Feb 2020 12:53:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:27833101-7b04-4523-bb3b-b0e5652d18d5</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Mr/Ms Angry &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Is it possible to send the projects that you have used so that I can try to replicate this? If you didn&amp;#39;t change anything other than main.c, then you only need to send those (please name the two main.c files differently, because there is a bug in devzone that will only allow one file with a specific name per ticket).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you have changed things outside the main.c file, please zip the project folder. If it is too big to upload, delete the build folders, and it should be just fine.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/233210?ContentTypeID=1</link><pubDate>Fri, 07 Feb 2020 09:11:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a77ecf8e-778f-44d3-9e87-012088f16f23</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Just as an added note, I&amp;#39;ve tried to manually bind the switch the bulb using the Zigbee CLI in coordinator mode.&lt;/p&gt;
&lt;p&gt;Using the &lt;em&gt;zdo bind on&amp;nbsp;&lt;/em&gt;command followed by the &lt;em&gt;zdo mgmt_bind&amp;nbsp;&lt;/em&gt;command, I was able to bind the&amp;nbsp;bulb to the switch and check the switch&amp;#39;s binding table to find the bulb&amp;nbsp;(as usual) &lt;strong&gt;but I was also able to bind the switch to the&amp;nbsp;bulb, and read the binding table on the bulb to find the switch listed there, as expected.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It seems then that there is nothing stopping the switch being bound to the bulb, and that the issue might be the the&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&lt;/em&gt;/&lt;em&gt;zb_bdb_finding_binding_target()&lt;/em&gt;&amp;nbsp;functions.&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The plot thickens,&lt;/p&gt;
&lt;p&gt;Angry Oatmeal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/233100?ContentTypeID=1</link><pubDate>Thu, 06 Feb 2020 15:01:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e3045a4-c486-41f3-94b9-13a6967d28c1</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;I have a callback function ready for the initiator as below.&amp;nbsp;Unfortunately, the bulb never enters this callback function. It simply acts as though nothing has occurred.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static zb_bool_t finding_binding_cb(zb_int16_t status, zb_ieee_addr_t addr, zb_uint8_t ep, zb_uint16_t cluster)
{
    NRF_LOG_INFO(&amp;quot;Entering finding_binding_cb&amp;quot;);
    NRF_LOG_INFO(&amp;quot;status: %d&amp;quot;, status);
    NRF_LOG_INFO(&amp;quot;addr: %X&amp;quot;, addr);
    NRF_LOG_INFO(&amp;quot;ep: %d&amp;quot;, ep);
    NRF_LOG_INFO(&amp;quot;cluster: %d&amp;quot;, cluster);
    return ZB_TRUE;
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;A point though about my previous comment concerning the lack of errors in the bulb. While the bulb and switch continue to operate normally after calling&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator()&lt;/em&gt;&amp;nbsp;on the bulb, if &lt;em&gt;zb_bdb_finding_binding_initiator()&amp;nbsp;&lt;/em&gt;is called&amp;nbsp;&lt;strong&gt;twice in a row&lt;/strong&gt;, the bulb freezes. The bulb will no longer respond if &lt;em&gt;zb_bdb_finding_binding_initiator()&amp;nbsp;&lt;/em&gt;is called a 3rd time, and will no longer receive any ON/OFF commands from the light switch. Once this freeze occurs, checking on WireShark reveals the bulb is truly frozen, as It no longer responds to the coordinator&amp;#39;s Link Status request, and does not respond to a&amp;nbsp;&lt;em&gt;zdo match_desc() &lt;/em&gt;command&amp;nbsp;from the coordinator CLI. A reset is the only option at this point.&lt;/p&gt;
&lt;p&gt;This might be a good time to ask a higher-level question regarding this project. I am trying to implement a scenario where the coordinator can regularly check the topology of the network. By scanning the binding tables of all router devices, the coordinator will be able to form a table of what devices are connected to each other. The reason I am trying to have the binding table on the bulb/router as opposed to the switch/end device, is the because the light switch will be a low power energy harvesting device, hence powered down most of the time, until it is pressed. Other than what I am trying to do now, do you think there are better ways to implement this?&lt;/p&gt;
&lt;p&gt;Thank you,&lt;br /&gt;Angry Oatmeal&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/232878?ContentTypeID=1</link><pubDate>Wed, 05 Feb 2020 14:56:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:29ec1714-b018-4bb1-945d-83e9d1cfb5e8</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Ah, ok. I see it in SDK3.2.0, but couldn&amp;#39;t find them in 4.0.0. I guess they are changed.&lt;/p&gt;
&lt;p&gt;Ok, so when you switch them around, you can&amp;#39;t operate the light bulb from the light switch. Did you check the callback function for zb_bdb_finding_binding_initator()?&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;zb_ret_t zb_bdb_finding_binding_initiator(zb_uint8_t endpoint, zb_bdb_comm_binding_callback_t user_binding_cb);&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Can you try to provide a callback function to this call, and check the status in the callback (if the callback is called)?&lt;/p&gt;
&lt;p&gt;Also, what is the addr, ep, cluster. and does it help if you return true in this callback?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/232333?ContentTypeID=1</link><pubDate>Mon, 03 Feb 2020 13:15:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:488cdf1d-1c52-4028-8d5f-450d49284c7e</guid><dc:creator>Angry_Oatmeal</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Sorry, I should have been more clear. I am using the Thread and Zigbee SDK v3.2.&lt;/p&gt;
&lt;p&gt;The&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_target()&amp;nbsp;&lt;/em&gt;does exist in the light bulb code in the SDK version I have. For me, it is located on line 350 (line 12 in the below snippet)&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void buttons_handler(bsp_event_t evt)
{
    zb_ret_t zb_err_code;

    switch(evt)
    {
        case IDENTIFY_MODE_BSP_EVT:
            /* Check if endpoint is in identifying mode, if not put desired endpoint in identifying mode. */
            if (m_dev_ctx.identify_attr.identify_time == ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE)
            {
                NRF_LOG_INFO(&amp;quot;Bulb put in identifying mode&amp;quot;);
                zb_err_code = zb_bdb_finding_binding_target(HA_DIMMABLE_LIGHT_ENDPOINT);
                ZB_ERROR_CHECK(zb_err_code);
            }
            else
            {
                NRF_LOG_INFO(&amp;quot;Cancel F&amp;amp;B target procedure&amp;quot;);
                zb_bdb_finding_binding_target_cancel();
            }
            break;

        default:
            NRF_LOG_INFO(&amp;quot;Unhandled BSP Event received: %d&amp;quot;, evt);
            break;
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;However, the&amp;nbsp;&lt;em&gt;zb_bdb_finding_binding_initiator() &lt;/em&gt;was added by myself in the light switch. Again, this setup works just fine. It is only when switching the functions around on both devices that abnormal behavior starts popping up.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;ERASE_PERSISTENT_CONFIG&amp;nbsp;is set to ZB_TRUE on both the light switch and the light bulb, as per the default settings in the shipped examples.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Find attached both pcapng files of the working and non-working wireshark frames. The start of both files is just the switch and bulb joining the newly formed network after the coordinator comes online. The final burst of frames in both files is the find_and_bind function call.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/Wireshark_5F00_Working.pcapng"&gt;devzone.nordicsemi.com/.../Wireshark_5F00_Working.pcapng&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/Wireshark_5F00_Not_5F00_Working.pcapng"&gt;devzone.nordicsemi.com/.../Wireshark_5F00_Not_5F00_Working.pcapng&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Reverse finding and binding role, initiator and target.</title><link>https://devzone.nordicsemi.com/thread/232136?ContentTypeID=1</link><pubDate>Fri, 31 Jan 2020 16:04:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e8120dd4-c2ee-46ab-a6a8-67af00906f0e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello Angry Oatmeal,&lt;/p&gt;
&lt;p&gt;I thought I should look into this. What SDK version are you using? I couldn&amp;#39;t find that the bulb nor switch called any of these functions. Is this something you have added?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user=""]There are no errors thrown inside the bulb or the switch, and the entire system (joining network, turning bulbs on and off, etc.) works just fine. [/quote]
&lt;p&gt;&amp;nbsp;Is ERASE_PERSISTENT_CONFIG set to ZB_TRUE or ZB_FALSE when this happens? Are you sure that this is not caused because of previous network settings in the devices? This information is stored in flash, and will not by default be erased when you reprogram the application. Only if you erase all the flash (nrfjprog -e) or set ERASE_PERSISTENT_CONFIG to ZB_TRUE.&lt;/p&gt;
&lt;p&gt;Also, is it possible to send the sniffer trace as a pcapng file?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>