This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How can send get and set messages to all nodes of a net?

Hi, 

I have an application where it would be beneficial to be able to send get and set messages to individual groups, nodes elements, etc. All of which are not necessarily the same model. 

I am having a hard time figuring out what module in the API I would need to do this. I have looked at doing this buy just setting the subscription and publication addresses to everything in the network, however, I feel as if this would lead to dead code and issues with scalability. Is there any module in the API that would allow this? Can this be done through the advertising bearer, using a device to act as a beacon?

Parents
  • Hi,

    Messages are for a specific model, e.g. "generic on/off", and the way this is handled in Bluetooth mesh is that a more "advanced" model (e.g. with the ability to set dimming levels) in addition exposes a more "simple" model controlling the same state (e.g. on / off, setting dimming level to 100% / 0%).

    Further, there is a requirement that each "element", that is, each addressable unit on a node, only have at most one of each model. I mention this because it is important for how messages are routed on the node: A message is sent to the one and only model on that element (address), that is of the correct type.

    There is an "all nodes" group address, that can be used to send messages to all nodes, but the message gets addressed only to the first element on that node. This means in order to reach models that are not the first element on their node, you must either use the unicast address (for that element) or use a group address that it subscribes to. This does indeed require some configuration work (with implications for scalability in the sense that this complexity needs some thought), but if you are in control of the peripheral (or otherwise the configuration of the network), it should be possible to automate. (E.g. automatically add a subscription to a fixed group address to all elements that is to receive the given message. That is, not the specified "all nodes" address, but an address of your choosing, either fixed or dynamically chosen by the provisioner.)

    Regards,
    Terje

Reply
  • Hi,

    Messages are for a specific model, e.g. "generic on/off", and the way this is handled in Bluetooth mesh is that a more "advanced" model (e.g. with the ability to set dimming levels) in addition exposes a more "simple" model controlling the same state (e.g. on / off, setting dimming level to 100% / 0%).

    Further, there is a requirement that each "element", that is, each addressable unit on a node, only have at most one of each model. I mention this because it is important for how messages are routed on the node: A message is sent to the one and only model on that element (address), that is of the correct type.

    There is an "all nodes" group address, that can be used to send messages to all nodes, but the message gets addressed only to the first element on that node. This means in order to reach models that are not the first element on their node, you must either use the unicast address (for that element) or use a group address that it subscribes to. This does indeed require some configuration work (with implications for scalability in the sense that this complexity needs some thought), but if you are in control of the peripheral (or otherwise the configuration of the network), it should be possible to automate. (E.g. automatically add a subscription to a fixed group address to all elements that is to receive the given message. That is, not the specified "all nodes" address, but an address of your choosing, either fixed or dynamically chosen by the provisioner.)

    Regards,
    Terje

Children
No Data
Related