> ## Documentation Index
> Fetch the complete documentation index at: https://docs.assetinfinity.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# BLE tags

> The register of Bluetooth (BLE) tags used to find assets indoors — registering a tag, fitting it to an asset and taking it off, what a tag reports about itself, and how long positions are kept.

BLE tags is the register of the Bluetooth tags your organisation sticks on assets so they can be
found indoors: which tags are fitted and to what, which are spare in the box, and which have gone
quiet. Open it from **Assets → BLE tags**, beside GPS trackers.

<Note>If you don't see this in your navigation, your administrator can switch the module on under **Administration → Modules**, or it may not be included in your plan. The register is part of indoor location, and needs **View BLE tags and the assets they are fitted to**.</Note>

<img className="block dark:hidden" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/ble-tags-light.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=266c3d86740f9f718289cb4b64af4db1" alt="The BLE tags register, with its counts of heard, silent and spare tags and how long positions are kept" width="2880" height="1800" data-path="images/assets/ble-tags-light.png" />

<img className="hidden dark:block" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/ble-tags-dark.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=ae8ed46b37f39b7466bcabdd58b2a7e7" alt="The BLE tags register, with its counts of heard, silent and spare tags and how long positions are kept" width="2880" height="1800" data-path="images/assets/ble-tags-dark.png" />

## How indoor location fits together

| Piece | What it is | Where you manage it |
| - | - | - |
| **BLE tag** | A small battery beacon stuck on an asset, known by the MAC address printed on its label | This register, or the asset itself |
| **Gateway** | A receiver on the ceiling that hears tags and reports how strongly | A site's floor plan, once the floor is set up for indoor location |
| **Floor plan** | The drawing a position is shown on, with its scale, walls and gateways | The site's [floor plans](/sites/floor-plans) |
| **Position** | Where a tag was worked out to be, from the gateways that heard it | Drawn live on the floor plan, and replayable afterwards |

A tag fitted to an asset is what lets that asset appear as a moving dot on its floor plan, and what
lets somebody play back where it went since this morning. Technicians can also walk towards a tag
with the field app: an asset that carries a tag offers **Find its BLE tag**, and **Find a BLE tag** on Home lists every tagged asset on the handset — see [finding a BLE tag](/field/find-ble-tag).

## The register

### The header

| Item | What it means |
| - | - |
| **heard** | Fitted tags that a gateway has heard recently |
| **silent** | Fitted tags no gateway has heard for longer than each tag's **Silent after (minutes)** — an hour unless somebody changed it |
| **spare** | Tags not fitted to anything |
| **tags** | Every tag on the register |
| **Register tag** | Opens [Registering a tag](#registering-a-tag). Shown to people with **Register BLE tags** |

### How long positions are kept

The panel **Positions are kept for 12 months** (or however long your organisation has chosen) opens
to say how long every indoor position worked out from a tag is kept, and the date of the oldest one
held. Positions are kept so where an asset went can be replayed on the floor plan, and are forgotten
overnight once they are older than this. Where a tagged thing was is often personal data about
whoever was carrying or wearing it, so keep what you need and no more.

| Field | What it means | Notes |
| - | - | - |
| **Keep for (months)** | How long positions are kept | From 1 to 120. **Save** applies it. Shortening it warns that positions older than the new figure will be forgotten tonight, and that keeping them longer again afterwards does not bring them back. Needs **Fit BLE tags to assets, remove them and configure them** |

### The lists

A tag that has stopped being heard looks exactly like an asset standing still on every other screen,
and a flat battery is the commonest way a tag fails, so silent tags are listed first, under **Not
heard for an hour**, with their rows in red. **Tags** below lists every tag.

| Column | What it means |
| - | - |
| **Tag** | The MAC address, written in pairs as on the label, with the tag's name and model underneath |
| **Fitted to** | The asset it is on, as a link, or **not fitted** |
| **State** | **heard**, **silent**, **not heard yet** (fitted, but no gateway has ever heard it) or **spare**. A fitted tag with no iBeacon identity also carries **not findable from an iPhone** — see [Finding a tag from an iPhone](#finding-a-tag-from-an-iphone) |
| **Last heard** | How long ago a gateway last heard it, or **never** |
| **Reports** | What the tag last said about itself, where it reports anything: **Battery** (red when low), **Temperature**, **Humidity**, **Motion** (**moving** or **standing still**) and **Button pressed** |

The buttons at the right of each row, each an icon:

| Button | What it does | Permission |
| - | - | - |
| **Fitting history** | Opens, under the row, every asset the tag has been on: **Asset**, when it was **Fitted**, when it was **Taken off** (or **on it now**) and the **Note** written at the time | Everyone who can see the register |
| **Fit to asset…** | Fits the tag to an asset. See [Fitting a tag](#fitting-a-tag) | **Fit BLE tags to assets, remove them and configure them** |
| **Take off** | Takes a fitted tag off its asset, asking why | **Fit BLE tags to assets, remove them and configure them** |
| **Edit tag** | Opens the tag's settings. See [Editing a tag](#editing-a-tag) | **Fit BLE tags to assets, remove them and configure them** |
| **Remove tag** | Removes the tag from the register, drawn in red | **Remove BLE tags** |

Removing asks first, above the list. A fitted tag is taken off its asset first; either way its
history is kept, and if a gateway still hears it the reads are treated as a tag nobody has
registered.

## Registering a tag

**Register tag** adds a tag to the register. The MAC address is how every gateway reports the tag,
so it is all this needs; the asset can be chosen now or when the tag is fitted.

<img className="block dark:hidden" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/ble-tags-register-light.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=5187fc8598be64676d14013f523f26ce" alt="The Register tag dialog, asking for the MAC address, model, name and the asset it is fitted to" width="2880" height="1800" data-path="images/assets/ble-tags-register-light.png" />

<img className="hidden dark:block" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/ble-tags-register-dark.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=0dce02885beab75bd2d2130e4fb919c9" alt="The Register tag dialog, asking for the MAC address, model, name and the asset it is fitted to" width="2880" height="1800" data-path="images/assets/ble-tags-register-dark.png" />

| Field | What it means | Notes |
| - | - | - |
| **MAC address** | The twelve characters printed on the tag or its box, such as *AC:23:3F:2B:00:42* | Required. Colons and dashes are fine — they are taken out. A MAC already on the register is refused with the asset it is on. Cannot be changed once registered: register the replacement instead |
| **Model** | What it is, such as *Minew E8* | Optional, for your reference |
| **Name** | What is written on the tag, if it carries a number of your own | Optional |
| **Fitted to** | The asset the tag goes on | Optional. Search by number or name, or use the scan button to read the asset's label |
| **iBeacon UUID**, **Major**, **Minor** | The tag's iBeacon identity | Folded under **iBeacon identity and signal**. Copy all three from the tag's configuration app, or leave all three empty — a partial identity is refused. Major and minor are whole numbers from 0 to 65535 |
| **Signal at one metre (dBm)** | The measured power the tag advertises | Optional. Usually about -59. Leave it empty to use the floor's figure |

**Register it** adds the tag, fitted if you chose an asset.

## Fitting a tag

An asset carries one tag. Fitting a tag to an asset that already has one takes the old one off, and
it becomes a spare.

**Fit to asset…** on a row asks for:

| Field | What it means | Notes |
| - | - | - |
| **Asset** | The asset the tag goes on | Required. Search by number or name, or scan the asset's label |
| **Note** | Anything worth recording about the fitting | Optional. Kept on the tag's fitting history |

**Take off** asks **Take this tag off?** with a **Why** box — *Battery dead, asset scrapped…* — and
**Take it off**. The tag becomes a spare, ready to fit to something else. The time it spent on the
asset stays in its history, so where the asset was while it carried the tag can still be answered —
and a year later, "battery dead" is the answer to why a tag went quiet.

## On an asset

Fitting is usually done standing beside the machine with the tag in your hand, so it is offered on
the asset screen itself, beside **Where it has been**.

| The asset has | The button reads | Pressing it |
| - | - | - |
| No tag | **Fit a tag** | Opens **Fit a tag**. Shown only to people who may fit tags |
| A tag | The tag's MAC address | Opens **BLE tag**, with the tag's MAC address, name, model, **State**, **Last heard**, when it was **Fitted** and whatever it reports — battery, temperature, humidity, motion and the last button press. **Take off** and **Fit another tag** are offered to people who may fit tags |

<img className="block dark:hidden" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/detail-ble-tag-light.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=996124a96d220216e44d7a44292f4175" alt="The Fit a tag dialog opened from an asset, offering a spare tag or a new one" width="2880" height="1800" data-path="images/assets/detail-ble-tag-light.png" />

<img className="hidden dark:block" src="https://mintcdn.com/assetinfinity/bawOAPMB9TubV66d/images/assets/detail-ble-tag-dark.png?fit=max&auto=format&n=bawOAPMB9TubV66d&q=85&s=86de4bbd32512e175d633626f41e67c6" alt="The Fit a tag dialog opened from an asset, offering a spare tag or a new one" width="2880" height="1800" data-path="images/assets/detail-ble-tag-dark.png" />

**Fit a tag** offers two ways, because both happen: a store keeps a box of registered spares, and a
fitter with a fresh reel has tags nobody has registered yet.

| Choice | Fields | Notes |
| - | - | - |
| **A spare tag** | **Tag** — a spare from the register, searched by MAC address or name — and an optional **Note** | The default |
| **A new tag** | **MAC address** — printed on the tag or its box; colons and dashes are fine | Registers the tag and fits it in one step. Offered to people who may also register tags |

**Fit it** fits the tag. When the asset already carries a tag, the dialog says first that the new one
replaces it and the old one becomes a spare.

## Editing a tag

**Edit tag** opens the tag's own settings. The asset it is on is not changed here — that is done by
fitting and taking off, so every move is written down.

| Section | Field | What it means | Notes |
| - | - | - | - |
| **The tag** | **MAC address**, **Name**, **Model** | As when it was registered | The MAC address cannot be changed |
| **iBeacon identity** | **iBeacon UUID**, **Major**, **Minor** | What an iPhone can find the tag by | All three or none |
| **Signal** | **Signal at one metre (dBm)** | The measured power the tag advertises | Leave it empty to use the floor's figure |
| **Alerts** | **Battery low below (%)** | Below this the site's supervisors are told, once, so the tag is changed before it goes quiet | Defaults to 20. Most coin-cell tags fall off quickly below twenty |
| | **Silent after (minutes)** | How long no gateway may hear a fitted tag before somebody is told it has gone quiet | Defaults to 60; from 15 minutes to a week |
| **Sensor readings** | **Temperature feeds**, **Humidity feeds** | The [sensor](/assets/sensors) the tag's temperature or humidity is recorded against | Optional. That sensor's limits and alerts then work exactly as for any other sensor. Leave them empty for a tag that measures nothing |

## Finding a tag from an iPhone

An iPhone cannot see a tag's MAC address, so the field app on an iPhone can find a tag only by its
iBeacon identity — its UUID, major and minor. A fitted tag without one reads **not findable from an
iPhone** on the register, and the asset's tag dialog says so too. Record the identity from the tag's
configuration app, under **iBeacon identity and signal** when registering or under **Edit tag**
afterwards. Android phones can find a tag by its MAC address alone.

## Who can do what

| Permission | What it allows |
| - | - |
| **View BLE tags and the assets they are fitted to** | See the register and the tag on an asset |
| **Register BLE tags** | Register tags, and register a new tag while fitting it |
| **Fit BLE tags to assets, remove them and configure them** | Fit, take off and edit tags, and change how long positions are kept |
| **Remove BLE tags** | Remove tags from the register |

Permissions are granted under [roles](/setup/roles).

<Card title="GPS trackers" icon="satellite" href="/assets/trackers">
  The outdoor counterpart: trackers on vehicles and plant, their trips, and the areas they report
  entering and leaving.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.