BLE mesh get address of node

I'm developing a custom vendor model in BLE Mesh to send some telemetry data, and everything is working as expected. Each node currently sends data, which other nodes receive, display, and relay to others—enabling bidirectional communication between all nodes.

Now, I want to modify the setup so that one designated node acts as a central receiver, collecting data from all other nodes. For example, in a network of 10 nodes, 9 nodes will send data exclusively to 1 specific node.

What would be the best approach to configure this behavior in BLE Mesh and send to that one address? I'm relatively new to BLE Mesh and would appreciate guidance on the optimal setup.

  • Hello,

    From the top of my head, I would say that the easiest way to do this is to make all the nodes publish to a group address that the central receiver subscribes to. If you test e.g. the chat sample, you can set it up using the nRF Mesh app (on mobile). There you can create group addresses (works sort of like virtual channels), and tell the nodes what group to publish on, and what group to subscribe to. 

    One alternative is of course to make all nodes both publish and subscribe to the same channel, but the nodes that are not the central node will just ignore the message in their application. It doesn't really make a huge difference.

    By default all nodes will receive and relay messages, regardless of whether they subscribe to the group the message is published on. It is just a matter of whether or not the message is propagated to the node's application or not.

    Best regards,

    Edvin

Related