14 April, 2020

BLE beacons for indoor navigation

Real-life cases of using tracker-beacon combination for precise indoor monitoring.

Tracking location inside buildings is becoming more demanded as the open-air monitoring market saturates and businesses start seeking new opportunities to optimize their resources. GPS technology performs great outdoors and ensures decent accuracy. However, GPS struggles indoors.

The solution we demonstrate here enables both outdoor and indoor monitoring thanks to a combination of a GPS tracker and BLE beacons.

Use cases at hand


Assume that we have a forklift that works in a factory. The factory has several buildings: a warehouse, a garage, a manufacturing shop, etc. The forklift moves between the buildings and inside the buildings. We need to know the precise location of the forklift outdoors as well as indoors (which is more complex). 

  • Which rack at the warehouse does it serve?

  • How much time does it spend in the parking spot?

These tasks are not easy to solve with a simple GPS tracker since the GPS signals cannot be captured inside the building. So the tracker must report its position in some other way. The solution here is to use the dedicated forklift tracker from Teltonika and BLE beacons at the specific fixed indoor locations. All other Teltonika BLE enabled devices are suitable too, it’s up to you to select the one that best suits your use case.


What if we have a load-truck that serves a warehouse with several gateways. Gateways are under the roof so the GPS signal is not precise. Moreover, the truck spends some time in the garage block that also has no GPS coverage.

  • At which gate of the manufacturing building is it waiting for the cargo? 

  • Which box in the garage does it occupy?

A simple GPS positioning may be imprecise for these scenarios. The solution here may be to use one of the widely presented vehicle trackers that support communication with BLE Beacons. Moreover, the solution can analyze the signal strength and pick the one with the biggest value.


Let’s consider several other use cases, in which a person works indoors and visits multiple rooms.

For a doctor in the hospital, the following insights might be helpful to optimize logistics:

  • Average time dedicated to a patient

  • Time outside the room

  • Route optimization based on the priority of patients

  • Reaction time to the patient call

For a janitor in the office building, we may check the productivity and quality:

  • The time it takes to clean each room

  • Controlling the cleaning schedule (making sure no room was missed)

The solution here is to use a small personal tracker or a lone worker badge and place BLE Beacons inside rooms. Some of the beacons can also report temperature and humidity, which can be valuable information for healthcare and office buildings.

Fixed BLE Beacon

If the GPS signal is unreliable inside the building, we need to use another type of signal. We have already discussed the use of BLE technology for asset tracking. The difference with this case is that here beacons are fixed to the rack, wall or ceiling, hence they will not move and their position is known. This means that if a tracker reports that it is near a certain beacon, we can assume that its position is near the beacon with a known position.

Technology behind

To deploy the beacon-based solution described above, you need to complete the following steps:

  1. Configure the Teltonika device to scan for BLE beacon IDs (as described here)

  2. Set up the BLE Beacons channel (as shown here)

  3. Register a device of the “BLE Beacon Fix” device type in flespi with and specify precise coordinates of the beacon:

  4. Register a “BLE Positioned device”

So the idea is pretty simple. flespi takes coordinates from the registered BLE Beacon Fix and uses them in a BLE positioned device to enhance its position if the GPS data is invalid. 

Configuring BLE Positioned Device

The BLE-positioned device has two notable configuration options.

Positioning method. As far as Teltonika devices can send a list of beacons with up to 100 items (each item contains at least Beacon ID and Signal strength) flespi needs to know how to interpret this data 

  • Use the nearest beacon for positioning — use coordinates of the BLE Beacon fix with the strongest signal in the message.

  • Use mass-center algorithm across all visible static beacons — approximate position using the rule “the more signal strength, the closer to specified location”.

  • You are welcome to suggest another positioning method in the forum discussion for this article.

Note that only registered “BLE Beacons Fix” are used to determine the location of “BLE Positioned Device”. So if Teltonika device reports some unregistered BLE beacons data with strong signal - it will not affect the resulting position.

Positioning mode regarding GNSS position data. What should flespi do if the device can be positioned both by GPS signal and BLE beacon data?

  • Priority to GNSS position if position.valid=true. If the original message contains the parameter position.valid = true flag, then BLE beacons data is not processed, the original position is stored. This choice gives priority to valid GNSS data.
  • Use the GNSS position if the BLE position is not fixed. If the position can not be determined by the data from Fixed BLE beacons, the original message with GNSS data will be stored. Otherwise, if the device can be positioned by Fixed BLE beacons, the original position is replaced. This choice gives priority to BLE data.
  • Skip messages without Fixed BLE beacons data. For indoor positioning only. No Fixed BLE beacons — no positioning.

Real-life usage demonstration

We asked the implementation partner of the Gurtam company in Minsk — Wialon Operator — to test the described technology. They kindly shared their results with us. The team of brave experimenters equipped their office room with beacons, set up a flespi account with teltonika and ble-beacons channels and registered all the beacons with their precise positions. Then they carried the Teltonika device inside and outside the building to emulate the use case. Here are the results:

Walking inside the building (increased speed):

Walking inside and outside:

Set up some custom geofence logic on Wialon side after setting up the stream to forward the data from flespi to Wialon


The BLE-beacon-based solutions are trending in different application areas owing to their relative cheapness, ease of deployment, and flexibility of configuration. flespi, in turn, offers a convenient environment to quickly establish the connectivity with trackers, configure the BLE beacons, and fine-tune the positioning method. Keep this scenario in mind for your future projects.