Overview

Building applications can be as simple as a few clicks but adding it to an organizations infrastructure makes for the winning combination for customer engagement.  Using cloud-based app builders allow for organizations to quickly and easily deploy easily to use consumer-facing apps for both Apple iOS and Android devices.  There are multiple cloud-based app builder platforms available for use such as Locly.  Leveraging built-in Bluetooth Low Energy (BLE) on Meraki MR, organizations are able to engage their customers as soon as they are within proximity of their storefront.

Bluetooth Beaconing

The Cisco Meraki MR30H, MR32, MR33, MR42, MR52, MR53, MR72, MR74 and MR84 WiFi access points have a built-in BLE iBeacon Advertising mode. You can enable the beacon right from the Cloud-hosted dashboard and configure the UUID, Major, and Minor. Meraki’s BLE enabled access points enable customers to begin developing practical applications for BLE devices. For example, you can use the BLE beacon advertising in a mobile app to trigger notifications or determine the position of the smartphone for wayfinding. These can be broadly categorized into ‘push’ applications, where the AP informs an aware device that it is in a certain location, or ‘pull’ applications, where the AP listens for beacons and uses this information to assist with asset tracking and control through the dashboard.

Configuring Beacons

Beacons are periodic signals emitted using Bluetooth Low Energy radio technology and conforming to a specific data packet format. The data packet looks like this:

Field Preamble Access Address Header MAC Address Beacon Prefix UUID Major Minor TX Power CRC
Size 1B 4B 2B 6B 9B 16B 2B 2B 1B 3B

The Preamble, Access Address, Header, MAC Address, and CRC will be set as part of the BLE radio’s frame construction. The TX Power is a calibrated indicator of the RSSI of the transmitted measured at a 1m distance; this can be used for rough estimation of proximity to the device emitting the Beacons.

UUID, Major, and Minor are fields defined by the Beacon network administrator. Typically, an organization will define a unique identifier for their habitual usage: the UUID. All Beacons deployed throughout their locations would have the same UUID.

To differentiate Beacons at different offices or store locations, and Beacons within different areas of those locations, the Major and Minor fields are used. For example, a chain restaurant might decide that all restaurants within a city will share a Major, and each restaurant within that city will have a different Minor.

Meraki APs with an integrated Bluetooth Low Energy radio can emit Beacons with following technical specifications:

  • Beacon interval: 100 ms
  • Transmit power: 0 dBm

 

Beacon mode can be enabled under Wireless > Configure > Bluetooth Settings by selecting “On” beside Advertising in the Beaconing section, as show in Figure 1 below:

Figure 1: Enabling BLE Beacon advertising
Once advertising is enabled, the UUID, Major, and Minor fields of the Beacon frame can be set. The Major/Minor values can either be set automatically and uniquely assigned on a per-AP basis for the network, or can be assigned globally for all AP’s in the network. When advertising is enabled, Unique mode will be the default setting.

 

Unique mode will automatically assign the same major value and unique minor values to each AP in the network. If Unique mode is configured on a parent template network, then the networks bound to that template will assign unique major values per network, and unique minor values per AP within those networks.

 

Saving these settings will activate the BLE Beacon on the Meraki AP’s integrated Bluetooth Low Energy radio.

Figure 2: Setting the BLE Beacon UUID/Major/Minor

Figure 3: Assigning the Unique Major/Minor Values

Figure 4: Assigning the Non-unique Major/Minor Values

 

Viewing Beacon Values

After the unique or non-unique values have been configured, you can view the assigned values from the Wireless > Bluetooth settings, as shown in the above Figures 3 and 4. Additionally, these values can be retrieved via the Dashboard API as shown below:

curl -L -H 'X-Cisco-Meraki-API-Key: <key>' -X GET -H 'Content-Type: application/json' 'https://api.meraki.com/api/v0/networks/[networkId]/devices'

Successful HTTP Status: 200
[
  {
    "name":"My AP",
    "lat":37.4180951010362,
    "lng":-122.098531723022,
    "serial":"Q2XX-XXXX-XXXX",
    "mac":"00:11:22:33:44:55:66",
    "model":"MR34",
    "address":"1600 Pennsylvania Ave",
    "lanIp":"1.2.3.4"
    "tags":" recently-added ",
    "networkId":"N_1234",
    "beaconIdParams": {
      "uuid": "00000000-0000-0000-0000-000000000000",
      "major": 5,
      "minor": 3,
    }
  }
]

Figure 5: API response after querying the Dashboard API to list the devices in a network

Adding UUIDs and Beacon Values to Apps

Locly makes it easy to engage customers through the using of Bluetooth beacons in Meraki MR Access Points.  With the range of notification being defined within the app, the use case is only limited by the imagination.  There are various ways to engage customers like:

  1. App push notification via Bluetooth: apps when installed on an end users devices have the ability to receive push notifications.  These notifications can be presented as special sales and events or encourage customer loyalty programs.  
  2. Menu visibility using Bluetooth: using Bluetooth can allow developers to hide menus until within a predefined proximity of a beacon.  This is helpful in various market strategies like provide additional details about a product when standing close to the product.

 

Bluetooth beacons are typically used by applications to serve specialized content to users. Such applications have typically stored a preset list of beacon IDs and can deliver targeted advertising/tracking when they identify a nearby Bluetooth beacon.

If you want to integrate Meraki’s beacons into an iOS app, or Android app, or Google Nearby, you can use a script to configure and export the beacons via the Dashboard API and import into your app or Google Cloud project. Below are the steps you would need to take to do it via API. 

Beacon Configuration via API

Before getting the beacon ID’s you want to make sure you update all your networks to broadcast “unique” beacons. Here is the API Call to configure Meraki beacons:

Beacon Export via API

Once your beacons are configured, you can use this sample script to get all of your Meraki Bluetooth Beacons into a single CSV file:

https://github.com/meraki/automation-scripts/blob/master/getbeacons.py

Apple iOS integration

Apple’s standard for beacons is called iBeacon and uses this format:
(16 byte)  UUID – shared by all beacons in the same org (e.g. Acme Brand)
(2 byte)    Major – shared by beacons in the same network (e.g. Mission Bay store)
(2 byte)    Minor – unique to each beacon within the same network (e.g. Baby section)

Import these beacon IDs into your app and trigger notifications when the beacon comes in range. Apple has a lot of developer resources on this online:

https://developer.apple.com/ibeacon/

If you want to limit the range of the beacon, you can do that using the iOS built-in range detection. Check out Apple’s guide on this here:

https://developer.apple.com/documentation/corelocation/determining_the_proximity_to_an_ibeacon

Google Android integration

Google has their own standard Eddystone. However, Google also supports Apple’s iBeacon format in their Google Beacon Registry. You can convert the UUID into a GAID to integrate Meraki’s iBeacons with Google’s Beacon Registry. This will allow any app, including Google Maps and Google Nearby. All you have to do is update Google Beacon Registry using their API with the data you get from Meraki’s API.  Perhaps in the future Meraki will do this step for you.
Just like Meraki, Google wrote an API library in python:
Also, to use iBeacon you have to convert the iBeacon format (UUID Major Minor) to the Google Advertising ID with this:

https://github.com/google/beacon-platform/blob/master/samples/python/pbapi/__init__.py#L881

Attachments

Attachments