Skip to main content

 

Cisco Meraki Documentation

Bluetooth Low Energy (BLE)

Meraki access points with an integrated Bluetooth Low Energy radio have the ability to transmit BLE Beacons, as well as to scan and locate BLE devices. Client devices like smartphones “hear” the BLE Beacon emitted by a Meraki AP, and an app on the smartphone can respond to a recognized Beacon. BLE scanning allows the Meraki AP to listen for and locate all Bluetooth Low Energy devices. The BLE scanner can hear other Beacons, BLE asset tags, and devices like fitness monitors that communicate using BLE data protocols. The Bluetooth Location API allows third party applications to provide asset tracking and analytics using battery-based bluetooth tags or wearables like fitness monitors.

To check whether your MR device supports BLE and IoT radio, please refer to a relevant MR datasheet

Bluetooth clients

Detected devices will also be displayed in the Wireless > Monitor > Bluetooth clients page. The list of BLE clients can be viewed for several different observation time periods (two hours, one day, one week), and displays several useful pieces of information such as the AP that observed the device and, when available, the manufacturer of the device. The dashboard allows tagging the Bluetooth devices to identify individual or groups of devices.

2017_07_20_09_06_53_Bluetooth_Meraki_Dashboard.png

Figure 4: Bluetooth clients page

Email alerts

Additional details about each Bluetooth device can be seen on the client details page. The name of the Bluetooth client can also be edited for easier tracking. Email alerts can be enabled to trigger when the device becomes visible by the access point and when the device is no longer visible.
2017-07-20 09_21_33-Bluetooth Device - Meraki Dashboard.png

Figure 5: BLE client details

Enable Bluetooth Scanning

Using the physical placement of the access points from the Map & Floorplan on the Dashboard, the Meraki cloud estimates the location of the client. The geo-location coordinates (latitude, longitude) and X,Y location data accuracy can vary based on a number of factors and should be considered a best effort estimate. AP placement, environmental conditions, and client device orientation can influence X,Y estimation; experimentation can help improve the accuracy of results or determine a maximum acceptable uncertainty for data points.

 

To enable BLE devices to be located, enable the BLE scanning radio on the access points. BLE Scanning is enabled in the Wireless > Configure > IoT Radio Settings page by selecting "On" in the Scanning section, as shown in Figure 3 below:


Screen Shot 2017-10-16 at 3.36.59 PM.png

Figure 3: Enabling BLE scanning

BLE Scanning API

 

Bluetooth API Data Elements

Name
Format
Description
apMac string MAC address of the observing AP
apTags [string] JSON array of all tags applied to the AP in dashboard
apFloors [string] JSON array of all floorplan names on which this AP appears
clientMac string Device MAC
seenTime ISO 8601 date string Observation time in UTC; example: "1970-01-01T00:00:00Z"
seenEpoch integer Observation time in seconds since the UNIX epoch
rssi integer Device RSSI as seen by AP
location location Device geolocation; null if location could not be determined
lat decimal Device latitude in degrees N of the equator
lng decimal Device longitude in degrees E of the prime meridian
unc decimal Uncertainty in meters
x [decimal] JSON array of x offsets (in meters) from lower-left corner of each floorplan
y [decimal] JSON array of y offsets (in meters) from lower-left corner of each floorplan

Enable the Scanning API with BLE Scanning, and the Location API will include both WiFi and Bluetooth devices seen by the access points in a single data feed. The event type BluetoothDevicesSeen is used to identify the observations from the Bluetooth radio. Below are the JSON formats used by the Location API for Bluetooth devices.

 

HTTP POST body format

{
   "version":"2.0",
   "secret":<string>,
   "type":"BluetoothDevicesSeen",
   "data":<event-specific data>
}

 

Bluetooth API Data Format

{
  "apMac": <string>,
  "apFloors": [<string>, ...],
  "apTags": [<string, ...],
  "observations": [
    {
      "location": {
        "lat": <decimal>,
        "lng": <decimal>,
        "unc": <decimal>,
        "x": [<decimal>, ...],
        "y": [<decimal>, ...]
      },
      "seenTime": <string>,
      "clientMac": <string>,
      "seenEpoch": <integer>,
      "rssi": <integer>,
    },...
  ]
}

Sometimes, location elements (such as lat, lng, x, y) display a NaN value rather than decimal. This means that Meraki cloud was able to detect the client as present in the network, but it didn't have enough information to calculate the geo-location coordinates.
This may happen with either BLE or Wi-Fi clients. 

Enable Scanning API 

For comprehensive API documentation, steps to configure the Scanning API and sample source code, please visit our Developer Hub

Privacy for Scanning API

For more details regarding Privacy for Scanning API, please refer to Location and Privacy.

Bluetooth Beaconing

All available Cisco Meraki WiFi access points (except for MR20 and MR70) 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 (best effort)
  • Transmit power: 0 dBm

 

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

Screen Shot 2017-10-16 at 12.28.11 PM.png

Figure 4: 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.Screen Shot 2017-10-16 at 12.33.50 PM.png

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

 

Screen Shot 2017-10-16 at 12.50.28 PM.png

Figure 6: Assigning the Unique Major/Minor Values

 

Screen Shot 2017-10-16 at 12.51.47 PM.png

Figure 7: 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 > Configure > IoT Radio Settings, as shown in the above Figures 6 and 7. 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://dashboard.meraki.com/api/v1/...orkId]/devices'

Screen Shot 2017-10-16 at 3.03.29 PM.png

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

Note: BLE uses FHSS, hence in order to capture all BLE beacons you may require an industrial 2.4GHz wide band sniffer tuned for BLE

* Please check https://developer.cisco.com/meraki/ for the latest version of API endpoints

  • Was this article helpful?