# KPN LocationTag WS

![KPN LocationTag WS](https://portal.kpnthings.com/assets/images/device-types/kpn-locationtag-ws.png)

A small device using WiFi scanning for localisation.

* Supported network type(s): `KPNLORA`
* Device Specification ID: `kpn-locationtag-ws`
* Device Specification UUID: `2c05af48-434e-4806-a0f3-837360f4f3cb`

| Decoders                                      | decoderSpecificationUUID               | Description                                                                                                                                            |
| --------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| + LoRa Geolocation data                       | `decc2f80-10b3-4c7c-8a47-a2f704272e6e` | Add [LoRa Geolocation](/kpn-things/getting-started/tutorials/technical-overview/location-data.md) data to messages where location could be calculated. |
| = Raw LoRa payload                            | `a1125bd2-1aaf-4284-b866-72e91a1a6862` | Forward the raw LoRa payload and port number without decoding.                                                                                         |
| = Raw LoRa payload (v2)                       | `2186c46a-04b7-5f24-a0ab-c46ebbd009f9` | Forward the raw LoRa payload and port number without decoding.                                                                                         |
| = Raw LoRa payload Extended                   | `3a1af5c6-6499-48a0-b3ff-682e5e496cea` | Forward the raw LoRa payload and other metadata without decoding.                                                                                      |
| = Raw LoRa payload Extended (v2)              | `049ef907-3732-586e-b638-cdaddafa66c9` | Forward the raw LoRa payload and lora network metadata without decoding.                                                                               |
| › Decoded payload with WiFi scan results      | `94fb4c11-6d05-481d-b3e6-58a86c2bcea6` | Decoder for Streamline LoRa message type 0xF1.                                                                                                         |
| › Decoded payload with WiFi scan results (v2) | `94b73332-ff18-59e5-873a-5ef7e8fad583` | Decoder for Streamline LoRa message type 0xF1.                                                                                                         |

### + LoRa Geolocation data

Add [LoRa Geolocation](/kpn-things/getting-started/tutorials/technical-overview/location-data.md) data to messages where location could be calculated.

### = Raw LoRa payload

Forward the raw LoRa payload and port number without decoding.

**Expected SenML records**

| name    | type   | unit |
| ------- | ------ | ---- |
| payload | string |      |
| port    | number |      |

### = Raw LoRa payload (v2)

Forward the raw LoRa payload and port number without decoding.

{% hint style="info" %}
This decoder also decodes [Geolocation and Local Gateway](/kpn-things/getting-started/tutorials/technical-overview/location-data.md) data.
{% endhint %}

The following SenML records can be present, amongst others:

| name    | type   | unit | example                    | description                            |
| ------- | ------ | ---- | -------------------------- | -------------------------------------- |
| payload | string |      | `"4D985C495AC4D8C9682CFD"` | The LoRa hex payload                   |
| port    | number |      | `200`                      | The LoRa port used to send this uplink |

#### Example SenML

{% hint style="info" %}
SenML can be structured in different ways, and we do not guarantee the examples below will look the same as what you will receive on your Destination. To make sure you can handle the SenML optimally, take a look at our documentation about [Understanding and Interpreting SenML Data](/kpn-things/building-blocks/data-processing/thingsml-and-senml/senml/understanding-and-interpreting-senml-data.md).
{% endhint %}

```json
[
    {
        "bn": "urn:dev:DEVEUI:0123456789012345:",
        "bt": 1693136532.83,
        "n": "payload",
        "vs": "4D985C495AC4D8C9682CFD"
    },
    {
        "n": "port",
        "v": 1
    },
    {
        "n": "timeOrigin",
        "vs": "NETWORK"
    }
]
```

### = Raw LoRa payload Extended

Forward the raw LoRa payload and other metadata without decoding.

**Expected SenML records**

| name         | type   | unit |
| ------------ | ------ | ---- |
| ADRbit       | number |      |
| Channel      | string |      |
| DevLrrCnt    | number |      |
| FCntDn       | number |      |
| FCntUp       | number |      |
| FPort        | number |      |
| LrrESP       | string |      |
| LrrRSSI      | string |      |
| LrrSNR       | string |      |
| SpFact       | number |      |
| SubBand      | string |      |
| payload\_hex | string |      |

### Raw LoRa payload Extended (v2)

Forward the raw LoRa payload and lora network metadata without decoding.

Fixes from '= Raw LoRa payload Extended':

* `LrrRSSI` is changed to a `number`.
* `LrrSNR` is changed to a `number`.
* `LrrESP` is changed to a `number`.

{% hint style="info" %}
This decoder also decodes [Geolocation and Local Gateway](/kpn-things/getting-started/tutorials/technical-overview/location-data.md) data.
{% endhint %}

The following SenML records can be present, amongst others:

| name      | type   | unit | example                    | description                                  |
| --------- | ------ | ---- | -------------------------- | -------------------------------------------- |
| ADRbit    | number |      | `0`                        | Adaptive Data Rate indicator                 |
| Channel   | string |      | `LC255`                    | Lora channel of the transmission             |
| DevLrrCnt | number |      | `0`                        | Amount of gateways that received the message |
| FCntDn    | number |      | `21725`                    | The downlink framecounter                    |
| FCntUp    | number |      | `30117`                    | The uplink framecounter                      |
| LrrRSSI   | number |      | `0`                        | Received Signal Strength Indicator           |
| LrrSNR    | number |      | `0`                        | Signal to Noise Ratio                        |
| payload   | string |      | `"4D985C495AC4D8C9682CFD"` | raw hex payload string                       |
| port      | number |      | `1`                        | LoRa port used                               |
| SpFact    | number |      | `9`                        | Spreading factor used                        |
| SubBand   | string |      | `"G0"`                     | Lora band of the transmission                |

#### Example SenML

{% hint style="info" %}
SenML can be structured in different ways, and we do not guarantee the examples below will look the same as what you will receive on your Destination. To make sure you can handle the SenML optimally, take a look at our documentation about [Understanding and Interpreting SenML Data](/kpn-things/building-blocks/data-processing/thingsml-and-senml/senml/understanding-and-interpreting-senml-data.md).
{% endhint %}

```json
[
    {
        "bn": "urn:dev:DEVEUI:0123456789012345:",
        "bt": 1693136532.83,
        "n": "payload",
        "vs": "8ca683bd93124178afc5ff"
    },
    {
        "n": "port",
        "v": 1
    },
    {
        "n": "FCntUp",
        "v": 30117
    },
    {
        "n": "FCntDn",
        "v": 21725
    },
    {
        "n": "LrrRSSI",
        "v": 0
    },
    {
        "n": "LrrSNR",
        "v": 0
    },
    {
        "n": "DevLrrCnt",
        "v": 0
    },
    {
        "n": "SpFact",
        "v": 9
    },
    {
        "n": "SubBand",
        "vs": "G0"
    },
    {
        "n": "Channel",
        "vs": "LC255"
    },
    {
        "n": "ADRbit",
        "v": 0
    },
    {
        "n": "timeOrigin",
        "vs": "NETWORK"
    }
]
```

### › Decoded payload with WiFi scan results

Decoder for Streamline LoRa message type 0xF1.

### › Decoded payload with WiFi scan results (v2)

Decoder for Streamline LoRa message type 0xF1.

{% hint style="info" %}
This decoder also decodes [Geolocation and Local Gateway](/kpn-things/getting-started/tutorials/technical-overview/location-data.md) data.
{% endhint %}

The following SenML records can be present, amongst others:

| name            | type    | unit | example    | description                                                                      |
| --------------- | ------- | ---- | ---------- | -------------------------------------------------------------------------------- |
| batteryLevelLow | boolean |      | `false`    | Indicates if the battery voltage has been below the threshold                    |
| batteryVoltage  | number  | V    |            |                                                                                  |
| firmwareCRC     | string  |      |            | Firmware info, only sent after device boot                                       |
| firmwareVersion | string  |      |            | Firmware info, only sent after device boot                                       |
| mode            | string  |      | `"active"` | Operation modus. Either `"production"`, `"active"`, `"presales"` or `"missing"`) |
| settingsCRC     | string  |      |            | Settings info, only sent after device boot                                       |

#### Example SenML

{% hint style="info" %}
SenML can be structured in different ways, and we do not guarantee the examples below will look the same as what you will receive on your Destination. To make sure you can handle the SenML optimally, take a look at our documentation about [Understanding and Interpreting SenML Data](/kpn-things/building-blocks/data-processing/thingsml-and-senml/senml/understanding-and-interpreting-senml-data.md).
{% endhint %}

```json
[
    {
        "bn": "urn:dev:DEVEUI:0123456789012345:",
        "bt": 1693136532.83,
        "n": "mode",
        "vs": "active"
    },
    {
        "n": "batteryLevelLow",
        "vb": false
    },
    {
        "n": "batteryVoltage",
        "u": "V",
        "v": 3.59
    },
    {
        "n": "firmwareVersion",
        "vs": "0443"
    },
    {
        "n": "firmwareCRC",
        "vs": "397F"
    },
    {
        "n": "settingsCRC",
        "vs": "A3E5"
    },
    {
        "n": "timeOrigin",
        "vs": "NETWORK"
    }
]
```


---

# Agent Instructions: 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:

```
GET https://docs.kpnthings.com/kpn-things/building-blocks/devices/trackers/kpn-locationtag-ws.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
