<?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>How to send messages between nodes in zigbee mesh?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/82015/how-to-send-messages-between-nodes-in-zigbee-mesh</link><description>Hello 
 
 I am using 5 nrf52833 dev kits and the ble_zigbee_dynamic_light_bulb_eddystone example from nRF5_SDK_for_Thread_and_Zigbee_v4.1.0 
 I have modified the following: 
 * Enabled distributed network with a shared key. 
 * Replaced BLE beacon code</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 25 Nov 2021 07:29:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/82015/how-to-send-messages-between-nodes-in-zigbee-mesh" /><item><title>RE: How to send messages between nodes in zigbee mesh?</title><link>https://devzone.nordicsemi.com/thread/340645?ContentTypeID=1</link><pubDate>Thu, 25 Nov 2021 07:29:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:12af5f8e-c47a-4403-9cba-95ac8d83d42c</guid><dc:creator>Marte Myrvold</dc:creator><description>&lt;p&gt;Hi Garo,&lt;/p&gt;
&lt;p&gt;A callback registered with&amp;nbsp;ZB_ZCL_REGISTER_DEVICE_CB will not be called when you send a packet. The best way to see if you are sending the packet would be to get a sniffer log of the network traffic. If you have an additional nRF52840 DK or Dongle, you can use&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_tz_v4.1.0/nrf802154_sniffer.html"&gt;nRF Sniffer for 802.15.4&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Marte&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to send messages between nodes in zigbee mesh?</title><link>https://devzone.nordicsemi.com/thread/340583?ContentTypeID=1</link><pubDate>Wed, 24 Nov 2021 15:03:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15d0a2b9-8839-459c-8265-3d8207e55df1</guid><dc:creator>Garo Demergian</dc:creator><description>&lt;p&gt;Hi Marte and thank you for your answer.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I have now tried the following:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_void_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;broadcast_msg&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;zb_bufid_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;bufid&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_uint16_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;dataframe&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; zb_uint16_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;receiver_addr&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; 0x&lt;/span&gt;&lt;span&gt;FFFF&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; zb_uint8_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;_ptr&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_zcl_start_command_header&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; bufid&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; ZB_ZCL_CONSTRUCT_FRAME_CONTROL&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ZB_ZCL_FRAME_TYPE_CLUSTER_SPECIFIC&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ZB_ZCL_NOT_MANUFACTURER_SPECIFIC&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ZB_ZCL_FRAME_DIRECTION_TO_SRV&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ZB_ZCL_ENABLE_DEFAULT_RESPONSE&lt;/span&gt;&lt;span&gt;),&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; 0&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; NULL&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; NULL&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ZB_ZCL_PACKET_PUT_DATA32&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;_ptr&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;dataframe&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_ret_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_zcl_finish_and_send_packet&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; bufid&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; _ptr&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; receiver_addr&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; ZB_APS_ADDR_MODE_16_ENDP_PRESENT&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; m_dev_ctx&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;level_control_attr&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;current_level&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; HA_DIMMABLE_LIGHT_ENDPOINT&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; ZB_AF_HA_PROFILE_ID&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; ZB_ZCL_CLUSTER_ID_ON_OFF&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; NULL&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;zb_ret_t&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_err_code&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;zb_buf_get_out_delayed_ext&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;broadcast_msg&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;and on the receiving end&amp;nbsp;I&amp;nbsp;haven&amp;#39;t changed anything, so&amp;nbsp;I&amp;#39;m using:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;ZB_ZCL_REGISTER_DEVICE_CB&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;zcl_device_cb&lt;/span&gt;&lt;span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Then I have some printfs in&amp;nbsp;&lt;span&gt;zcl_device_cb() to see if it fires, but my log prints doesn&amp;#39;t print.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;What could it be that&amp;nbsp;I&amp;#39;m doing wrong? tell me if you need more information about my code.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;BR&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Garo&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to send messages between nodes in zigbee mesh?</title><link>https://devzone.nordicsemi.com/thread/340382?ContentTypeID=1</link><pubDate>Tue, 23 Nov 2021 14:36:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:10291e83-97a0-44bd-b525-be976a300215</guid><dc:creator>Marte Myrvold</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;Garo,&lt;/p&gt;
[quote user=""]But&amp;nbsp;I&amp;nbsp;haven&amp;#39;t got&amp;nbsp;the chance to see if this works because SEGGER complains that&amp;nbsp;ZB_BUF_FROM_REF is undefined.[/quote]
&lt;p&gt;This is because&amp;nbsp;ZB_BUF_FROM_REF has been removed from the ZBOSS API in nRF5 SDK for Thread and Zigbee v4. See&amp;nbsp;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_tz_v4.1.0/zigbee_r22_migration.html"&gt;Zigbee stack migration guide: v3.2.0 to v4.0.0&lt;/a&gt;&amp;nbsp;for more information.&lt;/p&gt;
&lt;p&gt;You can use zb_buf_get_out()&amp;nbsp;to allocate an out buffer of the default size, or you can use&amp;nbsp;zb_buf_get_out_delayed_ext() to allocate an out buffer and then call a callback when the buffer is available. I would recommend using the latter, and then call&amp;nbsp;&lt;span&gt;broadcast_msg() as callback:&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;code&gt;&lt;span&gt;zb_err_code&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span&gt;zb_buf_get_out_delayed_ext&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;broadcast_msg&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;dataframe&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;With broadcast_msg() something like this:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;zb_void_t broadcast_msg(zb_bufid_t bufid, zb_uint16_t dataframe) {
    zb_uint8_t receiver_addr = 0xFFFF;

    zb_uint8_t* ptr = zb_zcl_start_command_header(bufid,
                                                  ...);
                                                  
    ZB_ZCL_PACKET_PUT_DATA32(ptr, &amp;amp;dataframe);
    zb_ret_t zb_ret = zb_zcl_finish_and_send_packet(bufid,
                                                    ptr,
                                                    receiver_addr,
                                                    ...);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Marte&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>