> 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/viloc.md).

# Viloc

![Viloc Tag](https://portal.kpnthings.com/assets/images/device-types/supported-viloc.png)

* Supported network type(s): `KPNLORA`
* Device Specification ID: `supported-viloc`
* Device Specification UUID: `5cc004e1-3950-4d62-a9ea-34fcc6a1de0c`

| Decoders                | decoderSpecificationUUID               | Description                                                    |
| ----------------------- | -------------------------------------- | -------------------------------------------------------------- |
| = Raw LoRa payload (v2) | `f88a69e3-fa7f-513a-a3a3-cf1f1e3617b2` | Forward the raw LoRa payload and port number without decoding. |
| › Decoded payload (v2)  | `f4d326fe-ee09-5946-9fc2-266039dea972` | Decoder outputting sabotage flag and temperature reading.      |

### = 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](https://docs.kpnthings.com/kpn-things/getting-started/tutorials/technical-overview/location-data) 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](https://docs.kpnthings.com/kpn-things/building-blocks/data-processing/thingsml-and-senml/senml/understanding-and-interpreting-senml-data).
{% endhint %}

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

### › Decoded payload (v2)

Decoder outputting sabotage flag and temperature reading.

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

The following SenML records can be present, amongst others:

| name            | type    | unit | example | description                                  |
| --------------- | ------- | ---- | ------- | -------------------------------------------- |
| sabotaged       | boolean |      | `false` | `true` if the device has detected sabotage   |
| temperature     | number  | Cel  | `14`    | The temperature measured by the device       |
| batteryLevelLow | boolean |      | `false` | `true` if the battery gets below a threshold |

#### 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](https://docs.kpnthings.com/kpn-things/building-blocks/data-processing/thingsml-and-senml/senml/understanding-and-interpreting-senml-data).
{% endhint %}

The `batteryLevelLow` field in the example below is optional and will not be present in every uplink.

```json
[
    {
        "bn": "6E5E267F2E6FB3BF",
        "bt": 1693136532,
        "n": "sabotaged",
        "vb": false
    },
    {
        "n": "temperature",
        "u": "Cel",
        "v": 29
    },
    {
        "n": "batteryLevelLow",
        "vb": true
    }
]
```
