How to associate Eddystone with Estimote Cloud

iOS Bluetooth API doesn’t actually expose the MAC addresses of Bluetooth devices. Instead, they only provide you with an ephemeral GUID, but keep in mind this GUID might change e.g. when you restart Bluetooth or the phone. And it will certainly differ between iOS devices.

But back to your problem (: Here’s how to go about it:

  1. Enable Eddystone UID and Eddystone TLM on your beacon.
  2. Both the UID and TLM packets will have the same MAC address. (On iOS, I think that should mean they have the same GUID, but I’m not 100% sure.)
  3. Use the MAC address to associate the TLM packet with a specific UID.
  4. Finally, you can use the UID and the Estimote Cloud API (specifically, the /v2/devices/ endpoint, documentation here: http://cloud.estimote.com/docs/#api-Devices-Get_All), and based on the UID, find the Device ID.

Alternatively, an easier way could be to use Estimote Telemetry instead of Eddystone-TLM. Estimote Telemetry packet broadcasts half of the Device ID directly in it. And it also has more telemetry data than Eddystone-TLM (: