I have a question regarding the Estimote beacons and the Eddystone-URL Configuration Service (in relation to the specification here: https://github.com/google/eddystone/blob/master/eddystone-url/docs/config-service-spec.md) that I have not been able to find an answer for.
As I understand, it’s perfectly possible to connect to and update the specific Eddystone URL in the Estimote beacon using the Estimote app. Does this mean that Estimote beacons always are connectable - even during URL Advertising mode (in contrast to what the spec says)?
The Eddystone specification also mentions:
A beacon can be placed in Configuration Mode in order to be configurable. Configuration Mode should only be used by an administrator, and we recommend the following options to make it difficult for a random third-party to reconfigure proprietary beacons:
- A button that when pressed puts the beacon in Configuration Mode for a short period of time. The button could be placed inside the battery compartment or outside of the beacon if the beacon is placed out of reach for typical clients/users of the Eddystone-URL system
- A beacon could be placed in Configuration Mode automatically during a short period after power on (say 30 seconds) e.g. batteries are installed, or the beacon is connected to an external power source.
How is this really solved with the Estimote beacons? Are they always connectable or is there any way to put them in configuration mode using mentioned options above (ie. hardware button or during power on)?
Our beacons don’t follow the Eddystone config spec, we use our own mechanisms instead.
Estimote Beacons can always be connected to, no need to press any buttons or fiddle with the batteries. This enables features like remote fleet management—i.e., you can schedule changes to your beacons’ settings on cloud.estimote.com, and have Estimote SDK embedded in your consumer app automatically update the beacons when the users of your app are in range.
All of this comes at no security cost, as in order to connect to Estimote Beacons, you need a proper key that’s written to the beacon in the factory, and also stored securely in your Estimote Account. So, only the owner (of an authorized party with access to your Estimote Account) can connect to the beacon.
Just a quick update: our Location Beacons now support the Eddystone Configuration Service, so if you want to manage them “the Eddystone way” instead of “the Estimote way”, you only need to enable the Eddystone Configuration Service for your beacon in Estimote Cloud, and then connect to the beacon with the Estimote iOS/Android app to apply the change.
Thanks for the update @heypiotr!
Would this also mean, after having enabled the Eddystone Configuration Service in Estimote Cloud, that a 3rd party (ie. “non-Estimote”) app following the Eddystone spec and having implemented the Eddystone configuration functionality will be able to connect to the beacon and configure it?
Or is it only the Estimote iOS/Android app that are allowed to do the change?
Indeed, any 3rd party app implementing the Eddystone Configuration Service will be able to configure your Estimote Beacons (:
Since Estimote beacons are always connectable (using URL Configuration mode), I am curious to know if the beacon device continues to broadcast regular advertisements (such as UID advertisements), even during configuration. Specifically, can the regular advertisements continue to be broadcast while configuration changes are being made/ beacon device is connected in configuration mode?
Thanks in advance!
With our 4th-generation-firmware beacons (i.e., all Location Beacons, and Proximity Beacons with hardware revision “G”), yes, regular advertisements will continue even in the configuration mode. That’s because we introduced a dedicated Connectivity packet. Only this one packet is connectable, so only this one packet stops being advertised when already connected to a beacon. iBeacon, Eddystone, Telemetry, etc. are all non-connectable, and so continue being broadcast throughout the connection (: