<?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>Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/29879/subscribe-a-group-address-for-the-mesh-message</link><description>Currently, I am working with the Nordic SimpleOnOff Model of the Light switch in the Bluetooth Mesh. 
 I am good that the light in the mesh can be set on/off after Provisioned. 
 Now, i would like to divide the Board into 2 Groups, let&amp;#39;s said Group</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 15 Sep 2018 10:05:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/29879/subscribe-a-group-address-for-the-mesh-message" /><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/148872?ContentTypeID=1</link><pubDate>Sat, 15 Sep 2018 10:05:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c86d1ee6-6afb-4d4e-871c-e3e6ad2b61db</guid><dc:creator>Anthony1055</dc:creator><description>&lt;p&gt;Hi Renato, I hope you can help, I&amp;#39;m trying to get my servers to send messages using the broadcast address. How did you do it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/137428?ContentTypeID=1</link><pubDate>Mon, 25 Jun 2018 12:05:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:142d62d1-cab6-42c9-a7af-782f58d5d879</guid><dc:creator>Paulo.Zacarias</dc:creator><description>&lt;p&gt;Hi Hung,&lt;br /&gt;&lt;br /&gt;I&amp;#39;m trying to implement your solution in Mesh 1.0.1, but it is crashing at:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;ERROR_CHECK(dsm_address_publish_add(GROUP_ADDRESS_CUSTOM, &amp;amp;m_group_handle2));&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;With error code 4 (&amp;quot;&lt;em&gt;No Memory for operation&amp;quot;&lt;/em&gt;?).&lt;br /&gt;&lt;br /&gt;What could it be?&lt;br /&gt;&lt;br /&gt;My experiment is to have 2 groups, one for 2 of the servers and another for all 3 servers. &lt;br /&gt;&lt;br /&gt;So far I modified the &lt;strong&gt;do_config_step() &lt;/strong&gt;in&lt;strong&gt; provisioner.c &lt;/strong&gt;to assign to different groups (as a first step), like:&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;            if ( m_target_address % 0x02)
            {
                address.value  = GROUP_ADDRESS_CUSTOM;
            }
            else
            {
                address.value  = GROUP_ADDRESS;
            }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is ok, as I&amp;#39;m able to talk with the nodes that subscribed to GROUP_ADDRESS.&lt;br /&gt;&lt;br /&gt;Now I want one of the clients to speak with the node that was assigned to GROUP_ADDRESS_CUSTOM, but it&amp;#39;s failing as described above...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/129292?ContentTypeID=1</link><pubDate>Mon, 23 Apr 2018 09:02:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bfb887d1-61e0-43f6-835a-d28e17f9052f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Have you tried what I suggested in the first answer of calling&amp;nbsp;dsm_address_subscription_add() and then call&amp;nbsp;access_model_subscription_add() to add the address to the client subscription list ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s the same for server and client if you want to configure something locally.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/128660?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 14:45:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:afa77652-5228-49e3-9263-8fafaf729d00</guid><dc:creator>Renato Silva</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I am working in light switch example and (with my modification) the&amp;nbsp;servers are sending a message using the broadcast address 0xCAFE, and in this format all server received the messages.&amp;nbsp;&lt;/span&gt;&lt;span&gt;This feature works fine!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This way, the client side also received the messages, but for some reason this message is not trated.&lt;/span&gt;&lt;/p&gt;
&lt;div class="quote-header"&gt;&lt;span&gt;This my question! I know that&amp;nbsp;&lt;/span&gt;&lt;span&gt;address_nonvirtual_subscription_exists has a list that has the devices able to receive the message.&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;My doubt is: How I can to insert the client in this list, for the client device to trate the broadcast message sends from any server.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;What I wanna do now is subscribe the client to receive broadcast messages since in light switch example only server side receive the broadcast messages, the client side dont..&lt;/p&gt;
&lt;p&gt;How I told above, I already&amp;nbsp; send broadcast messages from server to server (trought 0xCAFE address), but the client dont receive these messages because it is not subscribed.&lt;/p&gt;
&lt;p&gt;I need to modify the light switch example to init the client side able to receive broadcast messages.&lt;br /&gt;&lt;br /&gt;Can anyone help me in this question?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div id="selenium-highlight"&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118807?ContentTypeID=1</link><pubDate>Wed, 31 Jan 2018 09:11:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94e8f682-8207-41c0-85d6-98d90e252ac8</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;We currently don&amp;#39;t use virtual address in our example. You can read more about virtual address at section 2.3.5 in Mesh spec v1.0 .&lt;/p&gt;
&lt;p&gt;DSM_NONVIRTUAL_ADDR_MAX is what you should be concerned when adding address to the DSM (if you don&amp;#39;t plan to use virtual address ).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118808?ContentTypeID=1</link><pubDate>Wed, 31 Jan 2018 03:04:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69ee8d62-01ed-4506-aa09-febc8f72e436</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;Should we also need to consider to take care the follows in nrf_mesh_config_app.h, while GROUP_COUNT is added for the number of Group that i can support in the Network?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/**
 * @defgroup DSM_CONFIG Device State Manager configuration
 * Sizes for the internal storage of the Device State Manager.
 * @{
 */
/** Maximum number of subnetworks. */
#define DSM_SUBNET_MAX                                  (1)
/** Maximum number of applications */
#define DSM_APP_MAX                                     (1)
/** Maximum number of device keys */
#define DSM_DEVICE_MAX                                  (SERVER_COUNT)
/** Maximum number of virtual addresses. */
#define DSM_VIRTUAL_ADDR_MAX                            (GROUP_COUNT)
/** Maximum number of non-virtual addresses. One for each of the servers and a group address. */
#define DSM_NONVIRTUAL_ADDR_MAX                         (SERVER_COUNT + GROUP_COUNT)
/** Number of flash pages reserved for the DSM storage */
#define DSM_FLASH_PAGE_COUNT                            (1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where can i found more about the info of Virtual Vs non-virtual?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118809?ContentTypeID=1</link><pubDate>Tue, 30 Jan 2018 11:33:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f420061d-5255-43b5-97ad-2460063edfb6</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I wouldn&amp;#39;t suggest to use 2 clients to talk to 2 groups. You can simply change public address of one client using access_model_publish_address_set().&lt;/p&gt;
&lt;p&gt;So if you have 2 group addresses you want to send to and want to switch between them you do this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ERROR_CHECK(dsm_address_publish_add(group_address1, &amp;amp;m_group_address_handle1));
ERROR_CHECK(dsm_address_publish_add(group_address2, &amp;amp;m_group_address_handle2));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You call above codes only once. The purpose is to add the 2 group address into DSM database.&lt;/p&gt;
&lt;p&gt;Now if you want the client publication address to group address 1 , you call this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;access_model_publish_address_set(yourgroupclient.model_handle, m_group_address_handle1));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you want the client to send to group address 2 you call this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;access_model_publish_address_set(yourgroupclient.model_handle, m_group_address_handle2));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can switch between them, call above function every time you switch.&lt;/p&gt;
&lt;p&gt;The way we use the last client as group client, is just the way we chose to do that. You can use any client to send to group address, just apply the code above.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118804?ContentTypeID=1</link><pubDate>Tue, 30 Jan 2018 10:24:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1488917-be50-4233-8cac-c38793f246a7</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;More hack in the code, seems in the nrf_mesh_config_app.h, also got a boundary that the Group only set with One only??&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#define ACCESS_ELEMENT_COUNT (1 + SERVER_COUNT) /* One element per Simple OnOff client instance */

#define ACCESS_MODEL_COUNT (1 + /* Configuration client / \ 1 + / Health client / \ GROUP_COUNT + / Simple OnOff client (group) / \ SERVER_COUNT / Simple OnOff client (per server) */)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I should update this parameters also?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118806?ContentTypeID=1</link><pubDate>Tue, 30 Jan 2018 09:11:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18f6c44d-d453-47fe-9a33-e192281be415</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;But i am still not full related the m_clients[GROUP_CLIENT_INDEX].model_handle Vs m_group_handler.&lt;/p&gt;
&lt;p&gt;Should I call the following routine always in a pair, to maintain their relationship?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ERROR_CHECK(dsm_address_publish_add(group_address, &amp;amp;m_group_handle[m_group_count]));
ERROR_CHECK(access_model_publish_address_set(m_group_clients[m_group_count].model_handle, m_group_handle[m_group_count]));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To be specific, if i would like to call the simple_on_off_client_set_unreliable, how can i related the group_address, such that the group_handle, to the m_client(m_group_client) in my case?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118805?ContentTypeID=1</link><pubDate>Tue, 30 Jan 2018 08:48:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4975b183-711f-4c07-8611-a429882a8efd</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;So, in case if i not only have one group will be in the network, i should create&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static simple_on_off_client_t m_clients[SERVER_COUNT];
static simple_on_off_client_t m_group_clients[GROUP_COUNT];
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;such that the m_client is used to talk with the individual server
while m_group_client is used to talk with the group?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118803?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 11:33:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f2f3bbdf-0429-4d3b-a00f-2d12aa8282e0</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Yes, but there are 4 clients on the client example (each one is one element ). 3 of them talk to the 3 servers and the last one talks to the group address. That&amp;#39;s why you see m_clients[GROUP_CLIENT_INDEX].model_handle there.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118802?ContentTypeID=1</link><pubDate>Fri, 26 Jan 2018 09:52:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22ffc5a4-36eb-4e36-9802-a9c1a64428d0</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;Thanks Bui, Your message help a lot&lt;/p&gt;
&lt;p&gt;When walk along the code , i am a bit confusion about the&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;m_clients[GROUP_CLIENT_INDEX].model_handle vs m_group_handle in main.c

ERROR_CHECK(access_model_publish_address_set(m_clients[GROUP_CLIENT_INDEX].model_handle, m_group_handle));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is found that when the data broadcast to the Group, by sending by the function simple_on_off_client_set_unreliable, it is using the model_handle instead the m_group_handle;&lt;/p&gt;
&lt;p&gt;Have i mixed up something there?&lt;/p&gt;
&lt;p&gt;So, in case when i have more than one group, I should still make use of the m_clients[GROUP_CLIENT_INDEX],&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118801?ContentTypeID=1</link><pubDate>Thu, 25 Jan 2018 14:07:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:94387348-edf4-41b0-b13c-92addb5cb025</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;The group address (GROUP_ADDRESS = 0xCAFE) is assigned to the server in configuration phase.&lt;/p&gt;
&lt;p&gt;You can find the assigning at PROV_STATE_CONFIG_SUBSCRIPTION event in do_config_step() in provisioner.c&lt;/p&gt;
&lt;p&gt;If you want to assign different group address to different server, you can modify the code inside that event handler, and change the address.value there.&lt;/p&gt;
&lt;p&gt;Another option is to change the subscription address locally on the server. To do that you follow what &amp;#39;s inside the configuration server on the server side handle_config_model_subscription_add().&lt;/p&gt;
&lt;p&gt;Basically you need to call dsm_address_subscription_add() to add the group address to the DSM address database. And then call access_model_subscription_add() to assign the server model to listen to that address.&lt;/p&gt;
&lt;p&gt;Similarly, when you want to broadcast to a group address or change between broadcast address, you do
dsm_address_publish_add() to add the address to the database and then access_model_publish_address_set() to mount the address ID to the model. Check access_setup() in the client&amp;#39;s code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118800?ContentTypeID=1</link><pubDate>Thu, 25 Jan 2018 10:08:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ac7a5e48-7c33-455a-95fa-fa96e2b9f5ed</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;Can i have a pointer, which helper functions should be used to unsubscribe from the Model, when they are in that Group?&lt;/p&gt;
&lt;p&gt;Or, should i do it in another way round?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Subscribe a group address for the Mesh Message</title><link>https://devzone.nordicsemi.com/thread/118799?ContentTypeID=1</link><pubDate>Thu, 25 Jan 2018 02:36:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:63bc5619-e8c2-4260-9de6-ca659f8f5b2c</guid><dc:creator>ajay</dc:creator><description>&lt;p&gt;Some study here, may i confirm it is the correct approach?&lt;/p&gt;
&lt;p&gt;It seems i need extend the two Nordic models for the device.&lt;/p&gt;
&lt;p&gt;Simplie On/Off Model- it is many to handle the optcode for light On/Off, and may be if in case, can add on the intensity parameters for the control of the brightness.&lt;/p&gt;
&lt;p&gt;Configuration Model- besides the existing feature that Nordic defined, i need to extend the model, such that it can handle about the Group setting of the Light, such that i can assign the Group ID to the specific device.&lt;/p&gt;
&lt;p&gt;?? But I still not very clear, how to link the Group ID that i set above, to the Group address of the Nordic Mesh Arch?? This is some confusion for me yet...&lt;/p&gt;
&lt;p&gt;Hope i can make my questions clear.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>