Is it possible for a mesh device to know which other mesh devices it is connected to directly?

xenon
Tags: #<Tag:0x00007f039836f9a0>

#1

Hi, I’m quite new to the forums and the particle hardware in general so I apologize in advance if this is an obvious question and I’m missing something fundamental.

I am trying to prototype a tracking system and the idea is to use particle’s mesh network as the basis for this system. So I envision it as that all the assets I want to track have a xenon attached to it, and in certain rooms, I have Argons in them. The idea is that if an Argon know which devices it’s connected to directly, it can provide a list of xenon devices in its vicinity, (e.g in that room)

So from reading the documentation, i understand that every particle mesh device has a mesh IP, but I can’t find a way for the device to list the mesh IP address directly connected to it. Any idea on how i could procede forward with this idea using the particle mesh system?


#2

I’m not aware of such a feature being implemented yet.
A mesh topology “browser” is on our wish list, but currently we don’t know how this would look or when such a feature would be implemented (if at all).

But for the time being you ccould implement a Mesh.publish()/Mesh.subscribe() scheme where a device could publish a request for identification to which all available devices would answer with their device ID or name and mesh IP.


#3

How can I get the deviceName in code running on mesh devices ? Something like System.deviceID(), just returning name of the device.


#4

Your device needs to be connected to the cloud, since the device name is only stored there
https://docs.particle.io/reference/device-os/firmware/xenon/#get-device-name


#5

thanks for the clarification!


#6

Thx.


#7

In a mesh, there is no guarantee that the Xenons will connect directly to the Argon. Instead, they may connected to another nearby Xenon in the mesh. With @ScruffR’s suggestion of using Mesh pub/sub for enumerating the devices, the mesh topology “mechanics” are ignored.

Also note that devices MUST be allocated to a single mesh and cannot hop to another mesh. As such, Xenons in an adjacent room may connect to the current room’s mesh unintentionally unless it is part of a different mesh (and thus a different Argon). This makes asset tracking somewhat more difficult using the mesh pub/sub approach. Hence the need for topology information (which node connects to which). It is my understanding that Particle has pipelines work on a Mesh management API.


#8

The current official firmware does not (yet) provide a way to do what you want. We’ll need some more Mesh introspection functions (which hopefully will be coming soon-ish?) so that we can know things like what other nodes are in the mesh network, which ones are “directly” connected, or at least maybe the signal strength RSSI between two given nodes.

It might be possible to build your own custom firmware, though, and use the Nordic SDK directly. This might be one place to start, if you want to give that a try: