> For the complete documentation index, see [llms.txt](https://docs.kpnthings.com/kpn-things/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kpnthings.com/kpn-things/building-blocks/devices/trackers/kpn-locationtag-ws.md).

# 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                                                              |
| --------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------ |
| = Raw LoRa payload (v2)                       | `2186c46a-04b7-5f24-a0ab-c46ebbd009f9` | Forward the raw LoRa payload and port number 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 (v2) | `94b73332-ff18-59e5-873a-5ef7e8fad583` | Decoder for Streamline LoRa message type 0xF1.                           |

### = 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 (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 (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"
    }
]
```
