How to find the color of an iBeacon?

What is the best way to get the color of an Estimote iBeacon?

The API has changed a bit since I first used it and now the only way seems to be via an undocumented class, ESTBeaconVO which gets information from the cloud.

Is this what I should be using?
If so, what is the impact of using the cloud once the app has lots of different organisation using it?

Use the ESTCloudManager’s fetchColorForBeacon:completion method—it gives you the ESTColor.

Since the color of a beacon rarely changes :smiley:, it’s probably a good idea to cache it.

Thanks for the reply. I’ll give the cloud a go soon.

I have tried to use an ESTBeaconConnection to query the local bluetooth settings.
Lots of other useful details are returned, like the battery level and version information but not the color. This is always ESTUnknown.

Is this possible?

That’s an oversight on our part—basically, a leftover from SDK 2.x, where we used to populate the color when connecting to a beacon. The thing is, properties like battery level and version numbers come from the beacon itself, but the color property is being fetched from Estimote Cloud—the beacon doesn’t know it’s color, because you can always swap the enclosure anyway. To better separate what’s coming from the cloud and what from the hardware, we no longer populate the color information automatically during connection, hence it’s always ESTUnknown. We simply forgot to remove the property as well (:

TL;DR, stick to fetchColorForBeacon if you want to access the color information (:

Thanks, makes sense.

Back to one of my original questions :).
The app I’m developing will be have either myself or the client buy the iBeacons.

If the client buys the iBeacons how can I access their information and associate it with my app?

Al

If the client buys the iBeacons how can I access their information and associate it with my app?

There are two options. You can ask your client for all the information directly and work on the deployment together. If that is not possible, you should look at Infrastructure Sharing feature that we’ve introduced recently. It will allow your client to share with you his beacon infrastructure without the need to transfer the ownership. Read more here.

Apart from that @jacku said, we’re working on a Facebook Connect-like feature, where your app will be able to request permission to use somebody else’s beacons. Think, the user will be redirected to Estimote Cloud, asked to log in, then a pop-up will show up saying “App XXX wants to use your beacons, do you allow?” If the user agrees, you’ll get a token that’ll allow you to access the beacons.

Hi Heypiotr,

The feature I am developing allows a organisation (there are many using the app) to view their Estimote beacons (with colors).
Currently I would see all beacons for the App Id.

Is there any way to have ESTCloudManager to show a users beacons?
Currently you can just provide app_id, which would show all beacons (even ones the organisation does not own).

If there is not a way then is anything planned?

Thanks,

Al

All beacons are always visible to everyone, you don’t need to own a beacon in order to discover it.

The ownership model is place to prevent unauthorized parties from connecting to and modifying your beacons’ settings.

There’s one exception to this: beacons with Secure UUID turned on. These are still visible to everyone, but they have their UUID, major and minor scrambled (and changing every few minutes), and you need to app token in order to be able to “decrypt” it.

I want a complete inventory/list from the cloud for a customer. This would be read only but include name and color.

Yes I can grab a list locally but this is not guaranteed to show every beacon the customer owns.

How can I change the ESTColor name of my beacons in my cloud account or in the provisioning app? I added a fourth beacon to the multi-beacon demo app but I can’t figure out how to change the color name of the beacon in my cloud account so the background can change to a fourth (different) color. Thanks!