Using InfluxDB for location analytics - how to store a list of MAC addresses per time window?


I’m using find3 for location analytics. It uses Wifi signal strength to generate a list of MAC addresses in various “zones” (or locations) over time.

My plan is to sample find3 periodically (e.g. every 10 minutes), generate a list of MAC addresses per location, and store these in InfluxDB.

We’d want to query things like:

  1. How many devices were in each zone over time? (Create a histogram per zone.)
  2. What zones does a given device enter, at what times? (i.e. track a given device over time).

Each MAC address would also have a Boolean flag, randomised, which represents whether it’s a local or global OUI.

However, I’m a bit stumped as to how best store this in InfluxDB. I haven’t used it in a long time…lol.

location - I assume this would be a tag (since I want it to be indexed, and I expect the cardinality to be low).
randomised - Store as a Boolean tag
mac_address - Would this be a field?

For each point in time - I have many MAC addresses. Do I store a different point for each MAC address, and those MAC addresses then form a measurement?

Any help is greatly appreciated!


PS: Technically, find3 will return an timestamp per device, which is when the wifi packet was seen - however, each device will only check-in every 10 minutes or so, which is when the wifi probe requests are sent, hence, it’s I think we should treat it as "these 15 devices were seen in this area during this 10 minute window.

1 Like