Flight Plan: IoT – Digitize any Physical Space

This BoosterPack was created and authored by: reelyActive

DAIR BoosterPacks are free, curated packages of cloud-based tools and resources about a specific emerging technology, built by experienced Canadian businesses who have built products or services using that technology and are willing to share their expertise.

Sample Solution Overview

For any business operating in the physical world and maintaining competitiveness through efficiencies and/or experiences, this Sample Solution demonstrates how Internet of Things (IoT) technologies are used to automatically collect, contextualize, and report data to continuously optimize what matters to their employees, clients and, inevitably, to their bottom line. Unlike manual data collection methods or application-specific solutions, this Sample Solution provides a continuous source of data (who/what is where/how) that can be freely consumed by any current or future applications thanks to a technology-agnostic open architecture based on web standards.

Please see the IoT Digitise any Physical Space – Sample Solution page for more information on how the Sample Solution works.

The Sample Solution showcases the following technologies: BLE RTLS (Bluetooth Low Energy Real-Time Location System) and Kibana (a data visualization tool for large datasets), described in subsequent sections.

Flight Plan: BLE RTLS

Bluetooth Low Energy (BLE) is a low-power, wireless, personal area network technology. Since 2014, over 1 billion BLE devices have shipped annually. These include smartphones and wearables likely to be carried by people, as well as inexpensive beacons and sensors likely to be affixed to assets or physical places. One key feature of BLE is its support for spontaneous advertising packets: any BLE device can announce itself to any listening device in range (typically 10m+), including identifiers and sensor data in the payload.

Real Time Location Systems (RTLS) estimate the location of people and assets within physical spaces, in (or near) real-time. In most cases, infrastructure within the space will detect and identify people and assets via radio-frequency devices that they carry. The location of these devices can be coarsely estimated by standard means such as signal strength, and/or finely estimated by specialized means such as Angle of Arrival, Time Difference of Arrival, etc., when supported by the devices and infrastructure.

BLE RTLS is a promising technology due to the relative ubiquity of both devices and infrastructure. Chances are you yourself carry at least one BLE device (smartphone, wearable, key tracker, etc.) and that there is at least one fixed, powered BLE device (SmartTV, set-top-box, access point) within about 10m. As a result, it would be possible to observe anonymous occupancy patterns in many spaces today. And, with the necessary opt-in from device users and infrastructure owners, ubiquitous real-time location becomes a real possibility.


Consult the tutorials and documentation below for resources to learn about BLE RTLS. For scientific background, consult the following two reelyActive publications:


The table below provides a non-comprehensive list of links to tutorials the author has found to be most useful.

Tutorial Content Summary
BLE Identifier Reference Overview of what information can be included in a BLE advertising packet, which can be decoded by any listening infrastructure in range.
Co-located RFID systems unite! Presentation from IEEE RFID 2019 summarizing ubiquitous real-time location based on standard radio-frequency technologies such as BLE and RAIN.
Pi Prep & Pi Suite Prepare a Raspberry Pi (3B or newer) as BLE infrastructure, displaying in real-time all the devices detected in range.


Please see the table below for a set of documentation resources for BLE RTLS.

Document Summary
diyActive Documentation of the reelyActive open architecture platform, including open source software, hardware, and more.


For support with the open source software, consult the associated documentation on GitHub and raise an issue should the problem/concern not be addressed.  If necessary, contact reelyActive.

Best Practices

For many people, the thought of ubiquitous real-time location is terrifying. Care should be taken to learn and understand what is really possible with BLE RTLS today (as facilitated by this BoosterPack) in order to form an informed opinion, and to communicate clearly and proactively with all users and stakeholders. Should you need additional motivation to justify why, simply search news articles for “Bluetooth Beacon” online. In short, take privacy concerns seriously, and educate users and stakeholders that:

  • Bluetooth turned off = invisibility
  • Bluetooth turned on = anonymous detection
  • Bluetooth turned on with explicit opt-in = specific detection

Tips and Traps

Inevitably, the first question asked about any RTLS is “how precise is the location”?

  • TIP: in almost every case, precision is NOT the determinant of success of a project
  • TRAP: expending resources on location precision at the expense of more critical factors of success

What then are the more critical factors of success of an RTLS?

  • TIP: a successful deployment will automate the collection of information that drives better business outcomes (ex: increase sales, reduce waste)

Note that an RTLS provides data, not insights. And insights are the driver of business outcomes.

  • TRAP: unless someone (or something) is deriving insights from the RTLS data and applying these to the business, little or no impact can be expected.

The next section describes a tool that facilitates the analysis and manipulation of RTLS data to derive insights.

Flight Plan: Kibana

Kibana is an open source software that lets you visualize Elasticsearch data. Elasticsearch is an open source database in which real-time location data is stored. For our purposes, Kibana provides a user-friendly means to visualize trends in occupancy and the real-time location of people and assets over time.

Given the many viable database and analytics suite options available today, why choose Elasticsearch and Kibana? First, Kibana is a highly versatile tool that has proven to allow even novice users a friendly way to visualize and interpret their real-time location data, and derive insights. Second, Elasticsearch and Kibana can easily be installed on a laptop for standalone use all the way to a robust cloud deployment. Moreover, Elasticsearch provides a hosted and managed option that entirely removes the burden of installation and maintenance.

At the time of writing, version 7.x of the Elastic stack had been recently released; hence this documentation will focus on that version.


Consult the tutorials and documentation below for resources to learn about Kibana and the Elastic stack.  For background, consider reading Elastic’s Why Open Source?


The table below provides a non-comprehensive list of links to tutorials the author has found to be most useful.

Tutorial Content Summary
Kibana integration overview Directory of all our tutorials and guides for using Kibana with real-time location data.
Prepare a reelyActive laptop from scratch How to install the open source versions of Kibana and Elasticsearch on a Linux laptop.
Set up a hosted Elasticsearch Service How to deploy an instance using Elastic’s (paid) hosted and managed service.


Please see the table below for a set of documentation resources for Kibana.

Document Summary
Kibana User Guide Official Kibana User Guide, including documentation for all features.  Be sure to select the corresponding version.


For support with Kibana (and Elasticsearch), first consult the discussion forums.  If using the hosted Elasticsearch Service, a representative will be assigned to the account and can be contacted directly.

Best Practices

Elasticsearch and Kibana are a formidable combination, and it is critical to provide them the necessary resources to function effectively for the target application. In other words, for a test deployment, running the open source versions of Elasticsearch and Kibana on a standard instance will work fine and provide a solid platform for experimentation and learning. However, to comfortably run a building-wide real-time location system indefinitely, a more elaborate deployment with replication will surely be required.

Those familiar with the Elastic stack or with large databases may have the experience and knowledge to efficiently manage their own deployment on a cloud provider such as Amazon Web Services (AWS). The alternative is to simply pay for the convenience of the Elasticsearch Service, in which hosting and maintenance is managed by Elastic themselves. It is our opinion that the average user will find the trade-off of cost vs. convenience to favour the as-a-service option, especially for organizations without a dedicated cloud operations team.

Tips and Traps

Even a small real-time location system deployment can produce a lot of data when run 24/7.

  • TIP: monitor the amount of free disk space and intervene well before Elasticsearch fills it all up!
  • TRAP: running Elasticsearch and Kibana on a single instance with a full disk is painful.

Elasticsearch and Kibana ship with default settings ideal for a typical deployment, but potentially detrimental to a resource-constrained instance.

  • TIP: tweak the default memory settings of Elasticsearch when running with less than 4GB of RAM. In general, Elasticsearch should never use more than half of the system RAM.

Kibana provides a friendly GUI for managing various Elastic stack settings.

  • TIP: use the Kibana Management interface if you’re less comfortable working from the command line (as cited in most tutorials)