> For the complete documentation index, see [llms.txt](https://docs.buildings.ability.abb/collection/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildings.ability.abb/collection/english-v14/apps/apps/kontakt.io.md).

# Kontakt.io

## Eliona App for Kontakt.io - Digital building solutions

*Kontakt.io* manufactures intelligent IoT devices, cloud solutions, and powerful APIs that help turn buildings into indoor spaces that are useful to people on their daily journey toward achieving their goals, at work or in care, in a safe and sustainable indoor environment.

## Installation

The app *Kontakt.io* can be installed in Eliona via the App Store.

## Assets

*Kontakt.io* automatically creates all necessary asset types and assets that are accessible via the configured endpoints. The following asset types are created:

* *Day*: Any type of BLE smart tag that indicates the location.
* *Badge*: A Smart Badge or Asset Tag 2 that indicates the location like a tag, but has a temperature sensor and two buttons (not yet implemented).
* *Beacon*: Beacons capture the locations of the tags and badges and provide information about air quality.
* *Portal Beam*: Like beacons, but also counts the number of people in the room.

The following attributes are defined:

<table><thead><tr><th width="224">Attributes</th><th width="157">Description</th><th width="40">Day</th><th>Badge</th><th>Beacon</th><th>Portal Beam</th><th>Filterable</th></tr></thead><tbody><tr><td><code>position</code></td><td>Position</td><td>x</td><td>x</td><td></td><td></td><td></td></tr><tr><td><code>temperature</code></td><td>Temperature</td><td></td><td>x</td><td>x</td><td>x</td><td></td></tr><tr><td><code>air_pressure</code></td><td>Air pressure</td><td></td><td></td><td>x</td><td>x</td><td></td></tr><tr><td><code>humidity</code></td><td>Humidity</td><td></td><td></td><td>x</td><td>x</td><td></td></tr><tr><td><code>light_intensity</code></td><td>Light intensity</td><td></td><td></td><td>x</td><td>x</td><td></td></tr><tr><td><code>air_quality</code></td><td>Air quality</td><td></td><td></td><td>x</td><td>x</td><td></td></tr><tr><td><code>people_count</code></td><td>People count</td><td></td><td></td><td></td><td>x</td><td></td></tr><tr><td><code>firmware</code></td><td>Firmware version</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr><tr><td><code>model</code></td><td>Model of the device</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr><tr><td><code>battery_level</code></td><td>Battery level</td><td>x</td><td>x</td><td>x</td><td>x</td><td>x</td></tr><tr><td><code>product</code></td><td>Product name</td><td></td><td></td><td></td><td></td><td>x</td></tr><tr><td><code>name</code></td><td>Name in Kontakt.io</td><td></td><td></td><td></td><td></td><td>x</td></tr></tbody></table>

## Dashboards

*Kontakt.io* provides a dashboard with all automatically created assets. This can be created automatically via the Eliona frontend `Copy Dashboard > Kontakt.io` and then customized as desired.

<figure><img src="/files/95df1909e55eaf7cdf73b7b253137de960e73cbe" alt=""><figcaption></figcaption></figure>

## Configuration

{% hint style="info" %}
More information on configuring apps can be found [↗ here](https://doc.eliona.io/collection/dokumentation/einstellungen/apps).
{% endhint %}

The *Kontakt.io* The app is configured by defining one or more API tokens. Each configuration requires the following data:

| Attributes        | Description                                                                                                                                                                                                                                 |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `apiKey`          | API key                                                                                                                                                                                                                                     |
| `enable`          | Flag to enable or disable fetching from this API                                                                                                                                                                                            |
| `refreshInterval` | Interval in seconds for collecting data from API                                                                                                                                                                                            |
| `requestTimeout`  | API query timeout in seconds                                                                                                                                                                                                                |
| `assetFilter`     | Filter for asset creation, more details can be found in app's README                                                                                                                                                                        |
| `projectIDs`      | List of Eliona project IDs for which this device should collect data. For each project ID, all smart devices are automatically created as assets in Eliona. The mapping between Eliona is stored as an asset mapping in the Kontakt.io app. |

The configuration is done via a corresponding JSON structure. As an example, the following JSON structure can be used to define an endpoint:

```
{
  "apiKey": "VGhlIGNvbmZpZ3VyYXRpb24gaXMgZG9uZSB2",
  "enable": true,
  "refreshInterval": 60,
  "requestTimeout": 120,
  "assetFilter": [
    [{ "parameter": "Product", "regex": ".*Tag.*" }, { "parameter": "Product", "regex": ".*Beacon.*" }],
    [{ "parameter": "Mac", "regex": "(70:82:0E:12:28:CC|70:56:06:12:.*)" }],
    [{ "parameter": "Name", "regex": ".*Lobby.*" }]
  ],
  "projectIDs": [
    "99"
  ]
}
```

Endpoints can be created with this structure in Eliona under `Apps > Kontakt.io > Settings`. To do this, select the /configs endpoint with the PUT method.

### Floor height settings

Since the system *Kontakt.io* refers to rooms instead of the 3D coordinates of tags, the app must internally convert between the two systems in order to display assets on the map and in the BIM model in Eliona. To do this, the app must know the height above the floor of each storey (the Z coordinate).

To simplify this setting, the app retrieves all floors set up in the system *Kontakt.io* and displays them in a widget on the dashboard. Here, the user can set the heights of the floors that the app should use from this point on.

<figure><img src="/files/4a69483c09c0e9d2f984fab3e8cf868eab553133" alt=""><figcaption></figcaption></figure>

Once the heights have been set, the widget can be removed. For later changes, the Asset Management section can be used.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.buildings.ability.abb/collection/english-v14/apps/apps/kontakt.io.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
