Identifying beacons by MAC or ID

Hello,

I have a iGS02E beacon gateway. This gateway detects all beacons in range and sends an HTTP POST request to a server with the gathered information.

The information it sends have this format per beacon:
“$GPRP,C496081B0613,B0F1EC74687E,-81,0201040303AAFE1116AAFE20000B3B14400014784E0FDC6C0F”

This part of the string represents the MAC address or ID of tag/beacon:
C496081B0613

The thing is, I’m not being able to find where this mac address or id is supplied in the estimote cloud or the android estimote app. This reading in particular corresponds to the estimote identifier 6a7ab6efb5d00e3f90aa4d193b9a7316.

Can you please help me?

From all possible frames beacon advertises it looks like you captured an Eddystone TLM frame that does not have any ID. TLM frames are supposed to be matched with URL or UID frames by mac address (more here). This Eddystone documentation explains a bit how BLE advertisements are structured and how Eddystone frames look like.
Here is also a some links: Link 1 Link 2 explaining advertising frame structure.
Also specification of some Estimote packets might be helpful.
You need to catch more frames and since you already know beacon ID it will be obvious where identifier is stored (simple text matching).

Hi Pober,

I’m also getting the UID. The problem is that the ID which looks common for both frames (C496081B0613 for this particular tag) is not specified in the Estimote cloud, so I cannot know beforehand which is the beacon emitting the TLM.

Among all the devices that are being detected by the gateway I can extract these two which correspond to this estimote beacon set to advertise Eddystone UID and Eddystone TLM:

“[
“$GPRP,C496081B0613,B0F1EC74687E,-81,0201040303AAFE1116AAFE20000B3B14400014784E0FDC6C0F”,
“$GPRP,C496081B0613,B0F1EC74687E,-75,0201040303AAFE1716AAFE00EAEDD1EBEAC04E5DEFA0176A7AB6EFB5D00000”
]”

Parsing the raw hex package with a library such as advlib I get this information:

"[{
"flags": [
  "BR/EDR Not Supported"
],
"complete16BitUUIDs": "feaa",
"serviceData": {
  "uuid": "feaa",
  "data": "20000b3b14400014784e0fdc6c0f",
  "companyName": "Google",
  "eddystone": {
    "type": "TLM",
    "version": "00",
    "batteryVoltage": "2875mV",
    "temperature": "20.25C",
    "advertisingCount": 1341518,
    "uptime": "26610382.3s"
  }
}},{
"flags": [
  "BR/EDR Not Supported"
],
"complete16BitUUIDs": "feaa",
"serviceData": {
  "uuid": "feaa",
  "data": "00eaedd1ebeac04e5defa0176a7ab6efb5d00000",
  "companyName": "Google",
  "eddystone": {
    "type": "UID",
    "txPower": "-22dBm",
    "uid": {
      "namespace": "edd1ebeac04e5defa017",
      "instance": "6a7ab6efb5d0"
    }
  }
}}]"

So the problem is that I need to know beforehand that the beacon has an id of C496081B0613 in order to be able to associate the TLM data with the UID data.

You won’t get any matching between Eddystone and Estimote ID from packets alone. Eddystone packets have no information about Estimote ID. You need to fetch a list of your beacons (via REST call) from the Cloud and then do the matching:

  • Match UID’s namespace/instance with Estimote ID looking at a beacon list from Cloud
  • Match UID with TLM based on MACs using some kind of in-memory hash map.
    Why do you want to do matching Eddystone to Estimote ID and not to use Estimote Telemetry/Location packets that already have a public ID of a beacon inside?

Hi Pober,

I don’t want to match the Estimote ID with Eddystone UID, I want to match this other ID: C496081B0613, which most likely is the MAC address of the tag or something similar, because this is the ID that the gateway (and many other BLE scanning apps) returns as the identificator of the tag. Without this ID, I can’t match the data that comes from Eddystone UID and Eddystone TLM, because that one is the only common ID between them.

In this old question something similar was asked:

Pair Eddystone-TLM with Eddystone-UID iOS.

“In Estimote Beacons, the Eddystone-UID, URL, and TLM packets are all broadcast with the same physical/MAC address, so you should be able to “group” them by that.”

What I’m asking is if I have a way to know the mac address for each beacon beforehand.

You are right pober, that looks helpful.

Thank you!

We are looking for the same beacon updates by mac.I want to add on that I have been facing a very weird cir cum stances regarding the microphone is not working on latest firmware through Mac book Air.Firmware is1.8.5.3._21226 Recently t Arlo Baby for my kids purpose. Microphone on camera is not seeming to picture any audio. Microphone is turned on in app and volume full on iPad -nowt but static hiss. , No firmware updates
available, device has been reset but no change.I have followed out the manual steps as suggested by the help desk support regarding the arlo app for pc .Suggest us what we need to add on?