Aruba IoT Integration

OVERVIEW

This guide describes steps necessary to set-up an IoT information feed from Aruba Instant or ArubaOS to KloudInsights.

Aruba Instant documentation

  • Aruba Instant User Guide.pdf (chapter “BLE IoT for Data Communication”)
  • Aruba Instant CLI Reference Guide.pdf (chapter “iot transportProfile”)

ArubaOS documentation

  • ArubaOS User Guide (chapter “IoT”)
  • ArubaOS CLI Reference Guide.pdf (chapter “iot transportProfile”)
  • ArubaOS API Guide (IoT Telemetry Interface)

REQUIREMENTS

Hardware

Aruba access points with integrated Bluetooth radios, or Aruba access points equipped with an Aruba USB Bluetooth radio (LS-BT1USB, JW315A orJW316A), are required for integration with KloudInsights.

Software

The integration uses the Aruba IoT Telemetry Interface to forward Bluetooth device information that is collected by the access points to KloudInsights.The Aruba IoT Telemetry Interface is available in Aruba Instant/ArubaOS 8.4.0.0 or higher.

  • Minimum required software version: Aruba Instant/ArubaOS 8.4.0.0

CONFIGURATION

GENERAL INFORMATION

Configuration of the Aruba IoT Telemetry Interface is achieved via IoT profiles. The full configuration of IoT profiles is currently supported via CLI on Aruba Instant (partly configurable via GUI) and ArubaOS and is described in detail in the referenced product documentation within the chapter “Related Documents.".

REQUIRED INFORMATION

Ask your Kloudspot support contact for the following information:

  • endpointUrl : the URL to send data to. It will be of the form https:// :/aruba-iot
  • endpointToken : A token to validate the payload.

ARUBA INSTANT

This chapter describes the configuration and verification steps necessary to setup Aruba Instant for KloudInsights/

Set-up

  • Enter ‘config mode’:

    config
    
  • Enable the Bluetooth radio on an Aruba Instant AP in standalone mode or on all APs in an Aruba Instant cluster.

    ble mode beaconing
    
  • Add a new IoT transport profile using the set-up information collected in chapter “REQUIRED INFORMATION”

    iot transportProfile kloudspot
    endpointID kloudspot
    endpointToken <token>
    endpointType telemetry-https
    endpointURL <endpointUrl>
    accessID kloudspot
    transportInterval 10
    rssiReporting average
    exit
    
  • Enable the configured IoT profile.

    iot useTransportProfile kloudspot
    
  • Apply the new configuration to the Aruba Instant AP/Cluster

    exit
    

    commit apply

Verification and Troubleshooting

Once the IoT profile has been configured and enabled, Aruba Instant immediately connects to the backend server and starts sending telemetry information.The commands below can be used to validate and troubleshoot the IoT configuration and connectivity to the backend server.

Note: please ensure that access points’ Bluetooth radios have been enabled, and that the access points receive data from the Bluetooth devices.

The “show ap debug ble-config” command should show the BLE Operation Mode as “Beaconing,” and the configured IoT profile should be shown.

d0:d3:e0:c3:3b:e0# show ap debug ble-config
-----------------------------------------------
---------- IOT Radio Profiles -----------------
-----------------------------------------------
Profile Name        : ble
Radio Instance      : Internal
Radio Mode          : BLE
BLE Mode            : beaconing scanning
BLE Console         : On
BLE Tx Power (dBm)  : 0
-----------------------------------------------
Note: No Zigbee service profiles configured.


Radio Configuration
-------------------
Radio Information     TI ONBOARD Internal BLE
-----------------     ------------------------
Radio Profile Type    --
Zigbee Supported      No
APB MAC Address       b4:52:a9:34:07:53
Operational Mode      Persistent Console (APB: Persistent Console)
Bundled BluOS Images  Bank A(/aruba/bin/UpgradeImage_AP_OAD-A_1.2-37.bin) Bank B(/aruba/bin/Beacon_AP_OAD-B_1.2-37.bin)
-----------------
Miscellaneous Configuration
---------------------------
Item                            Value
----                            -----
FIPS Mode                       No
Master IP                       127.0.0.1
BLE Ready                       Yes
APB Info Update Intvl (in sec)  88 (1763/1716)
BLE debug log                   Enabled
Message Selector                0xffff (APB: 0xffff)
AP USB Power Override           Disabled (-1)
Uplink Status                   Up (APB: -NA-)
APB Connection Status           0
Time Last Message to APB        1970-01-01 00:00:00
Log Levels Available            { All(0xfffff), Info(0x04), Warning(0x02), Error(0x01), Ageout(0x08), BMReq(0x10), FW-Upgrade(0x20), FW-UpgradeErr(0x40), CfgUpdate(0x80), CfgUpdateErr(0x100), Beacon(0x200), BcnTLV(0x400), BcnErr(0x800), APB(0x1000), Tags(0x2000), ZF(0x4000), AMON(0x8000), IOT-GW(0x10000), AT-HTTPS-JSON(0x20000), AT-WEBSOCKET-PROTOBUF(0x40000), DevMgmt(0x80000), None(0x00) }
Current Log Level               { 0x901e1 : Error(0x0001), FW-Upgrade(0x0020), FW-UpgradeErr(0x0040), CfgUpdate(0x0080), CfgUpdateErr(0x0100), IOT-GW(0x10000), DevMgmt(0x80000) }
Log Mac Filter                  None
Bundled BluOS Upgrade           Enabled (-1)
OTA FW BluOS Upgrade            Disabled
-----------------
BLE IoT Transport Context Config ID: 1
Last Sync Time: 2020-07-08 21:50:00
BLE IoT Profile List
--------------------
Profile Name    EndpointType     Interval   Content                   Filter Attribute  Cell Size  Att Threshold  Out Range Ageout  NamespaceFilter  URLFilter  Last Update           RssiReporting  environmentType  customFadingFactor  deviceCountsOnly  rtlsDestMAC        vendorFilter
------------    ------------     --------   -------                   ----------------  ---------  -------------  ----------------  ---------------  ---------  -----------           -------------  ---------------  ------------------  ----------------  -----------        ------------
kloudspot (51)  Telemetry Https  10 second  iBeacon(8),Eddystone(10)  NA                NA         NA             NA                NA               NA         2020-07-08 21:57:31   Average        office           NA                  FALSE             00:00:00:00:00:00
-----------------
Note: Uplink status is applicable only for Controller with Dynamic Console operational mode.
      For APBs of type LS-BT1USB, applied operational mode is Beaconing if ap system profile setting is either Persistent or Dynamic.
Note: Setting Message Selector value to 0x0 will cause the APB to function improperly. Use the knob with caution.
Note: Message Selector Bits: All(0xffff), V0 Scan (0x01), V1 Scan (0x02), UI Scan (0x04), Proximity Advert (0x08), IBeacon (0x10), Heartbeat-1 (0x20),  Heartbeat-UI (0x40), Upg Ack (0x80), Heartbeat-2 (0x200), Generic Scan (0x400), Generic Advert (0x800), Tag V1 Scan (0x1000), Tag V1 Advert (0x2000)

Use the “show ap debug ble-table all” command to verify if - and which - Bluetooth devices can be seen by the AP.

d0:d3:e0:c3:3b:e0# show ap debug ble-table all

BLE Device Table [Aruba Beacons]
--------------------------------
MAC                HW_Type   FW_Ver        Flags   Status  Batt(%)  RSSI  Major#  Minor#  UUID                                  Meas. Pow.  Tx_Power  Last Update  Uptime
---                -------   ------        -----   ------  -------  ----  ------  ------  ----                                  ----------  --------  -----------  ------
b4:52:a9:34:07:53  BT-AP303  OAD B 1.2-37  0x01a3  LIA     ONBOARD  --    0       0       4152554E-F99B-4A3B-86D0-947070693A78  -56         14        I:4s         1h:40m:0s

BLE Device Table [Generic]
---------------------------
MAC                Address Type  RSSI  Last Update  Device Class
---                ------------  ----  -----------  ------------
5f:a3:0d:7c:fe:17  Private R     -56   I:0s         --
63:15:26:e9:98:1a  Private R     -50   I:1390s      --
58:cb:c4:25:90:2d  Private R     -42   I:338s       --
7b:67:2f:f0:46:4e  Private R     -42   I:1545s      --
01:5e:6a:46:34:79  Private NR    -87   I:0s         --
47:ad:f8:ff:2e:7c  Private R     -57   I:1s         --
d9:93:af:72:2e:8c  Static        -74   I:1s         --
60:81:33:46:98:91  Private R     -51   I:1390s      --
67:85:77:bb:9a:e8  Private R     -42   I:0s         --
46:b9:a9:5d:ca:eb  Private R     -53   I:0s         --
4e:0d:d5:6e:1c:fd  Private R     -52   I:901s       --
79:27:3f:15:ef:23  Private R     -84   I:0s         --
a4:83:e7:9c:39:2c  Public        -53   I:0s         --
7d:3c:66:1a:37:36  Private R     -94   I:1843s      --
44:54:ed:3a:b3:37  Private R     -51   I:1801s      --
74:5b:84:08:b7:64  Private R     -54   I:901s       --
5a:a9:82:c3:81:69  Private R     -66   I:244s       --
5c:9c:95:47:c5:a0  Private R     -52   I:1801s      --
cc:04:b4:02:51:af  Public        -89   I:0s         --
24:67:63:23:53:d5  Private NR    -83   I:589s       --
46:33:09:75:eb:ee  Private R     -57   I:1s         --
48:da:99:74:83:f4  Private R     -56   I:0s         --
ac:23:3f:5e:67:ff  Public        -41   I:0s         iBeacon, eddystone

Beacons:1
Generic BLE devices:23
Total BLE devices:24


Note: Battery level for LS-BT1USB devices is indicated as USB.
Note: Uptime is shown as Days hour:minute:second.
Note: Last Update is time in seconds since last heard update.
Note: Meas. Pow. is the averaged RSSI (in dBm) when the iBeacon is calibrated.
Status Flags:L:AP's local beacon; I:iBeacon; A:Beacon management capable
            :H:High power beacon; T:Asset Tag Beacon; U:Upgrade of firmware pending
            :u:Beacon management update received

The commands “show ap debug ble-relay iot-profile” can be used to check the IoT profile configuration and server connection status of the IoT profile. The state should be displayed as “Ready.”

d0:d3:e0:c3:3b:e0# show ap debug ble-relay iot-profile

ConfigID                                : 1

---------------------------Profile[kloudspot]---------------------------
serverURL                               : https://smoke.kloudspot.com:48083/aruba-iot
serverType                              : Telemetry Https
deviceClassFilter                       : iBeacon,Eddystone
reportingInterval                       : 10 second
accessToken                             : 12345
clientID                                : kloudspot
rssiReporting                           : Average
environmentType                         : office
accessID                                : kloudspot
Server Connection State
--------------------------
TransportContext                        : Ready
Last Data Update                        : 2020-07-08 22:01:42
Last Send Time                          : 2020-07-08 22:01:43
Last Receive Time                       : 2020-07-08 22:01:43
TransType                               : Https

If the server connection status does not show “Ready,” use the command “show ap debug ble-relay report ” for more detailed connection logs for troubleshooting purposes.

d0:d3:e0:c3:3b:e0# show ap debug ble-relay report kloudspot

---------------------------Profile[kloudspot]---------------------------
Last Send Time: 2020-07-08 22:03:03

Sent report to Endpoint server (6s) ago: success 84, failed 0, last curl result code 200

Timeout(-1):20 Jobs added: 84

Server: https://<server>/aruba-iot with proxy: NA

Proxy username: NA, password: NA

Vlan Interface                          : Not Configured
Request to Server:
{"meta": {"version": 1}, "reporter": {"name": "d0:d3:e0:c3:3b:e0", "mac": "D0:D3:E0:C3:3B:E0", "ipv4": "10.90.37.235", "hwType": "AP-303", "swVersion": "8.6.0.4-8.6.0.4", "swBuild": "74969", "time": 1594245782}, "reported": [{"deviceClass": ["iBeacon", "eddystone"], "model": "iBeacon", "vendorName": "Apple", "mac": "AC:23:3F:5E:67:FF", "stats": {"adv_cnt": 7641266, "frame_cnt": 12, "uptime": 78288870}, "beacons": [{"eddystone": {"uid": {"nid": "00112233445566778899", "bid": "ABCDE23A00E1"}, "url": {"prefix": 1, "urlBytes": "6D696E65770012"}, "power": -24}}, {"ibeacon": {"uuid": "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0", "major": 0, "minor": 0, "power": -59}}], "rssi": {"avg": -41}, "BeaconEvent": {"event": "update"}, "lastSeen": 7, "sensors": {"voltage": 3.12, "temperatureC": 25.0}}]}

Last Curl logs:
....
Host: <server>
Content-Type: application/json
Authorization: Bearer 12345
Accept: application/json
Content-Length: 792

* upload completely sent off: 792 out of 792 bytes
< HTTP/1.1 200 OK
< Server: nginx/1.14.0 (Ubuntu)
< Date: Wed, 08 Jul 2020 22:03:03 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Keep-Alive: timeout=5
< Vary: Accept-Encoding, User-Agent
<
* Curl_http_done: called premature == 0
* Connection #0 to host smoke.kloudspot.com left intact

ARUBAOS

This chapter describes the configuration and verification steps necessary to set-up the IoT feed to KloudInsights on controller-based installations running ArubaOS.

  • In controller based set-ups the BLE radios and IoT profiles have to be enabled per AP groups.
  • Mobility Master vs. Standalone ControllerThe configuration steps for IoT profiles in a mobility master and a standalone controller set-up are the same except that in a mobility master scenario the configuration is done on the mobility master using the configuration hierarchy.

Set-up

  • Enable the Bluetooth radio on the desired AP groups by setting the ble-op-mode to Beaconing in the corresponding AP system profile.

  • The deviceClassFilter all is enabled by default. The deviceClassFilter all has to be explicitly set to disable-dIn to send only telemetry updates for ibeacon and eddystone devices to the backed.
  • Add a new IoT transport profile using the set-up information collected in chapter “REQUIRED INFORMATION”.

  • Enable the configured IoT profile.

  • Apply the new configuration to the Aruba controller/mobility master.

Verification and Troubleshooting

Mobility Master vs. Standalone ControllerThe verification and troubleshooting steps for IoT profiles in a mobility master and a standalone controller set-up are the same except that in a mobility master scenario the verification and troubleshooting is done on the managed devices.

After the IoT profile has been configured and enabled the Aruba controller will immediately connect to the backend server and start sending telemetry information.

The commands below can used be to validate and troubleshoot the IoT configuration and connectivity to the backend server.

Check first to ensure that the access points’ BLE radios have been enabled and if the APs can receive data form the BLE devices. The show ap debug ble- config [ap-name|ip-addr|ip6-addr] command should show the BLE Operation Mode as “Beaconing” and the configured IoT profile should be displayed.

Using the show ap debug ble-table [ap-name|ip-addr|ip6-addr] all command verify if - and which - Bluetooth devices are seen by the access points.

Use the command show ble_relay iot-profile to check the IoT profile configuration and server connection status of the IoT profile. The state of the response should show “Ready.”

If the server connection status does not show “Ready,” use the command show ble_relay report report [] to obtain more detailed connection logs for troubleshooting.