# KPN LocationTag V

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

Also known as StreamLineTM-2001/P1A5.

* Supported network type(s): `KPNLORA`
* Device Specification ID: `kpn-locationtag-v`
* Device Specification UUID: `be8617b8-831c-4781-84ed-d535b862eace`

| Decoders                                              | decoderSpecificationUUID               | Description                                                                                                                                                                       |
| ----------------------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| + LoRa Geolocation data                               | `ec67cf00-68c2-4caa-bbd2-9d3454453295` | Add [LoRa Geolocation](https://docs.kpnthings.com/kpn-things/getting-started/tutorials/technical-overview/location-data) data to messages where location could be calculated.     |
| + Location by LoRa On Premises Gateway reception      | `d9c25a43-e073-4c0f-a488-b12119462b84` | Add location data to messages that are received by known [LoRa On Premise Gateways](https://docs.kpnthings.com/kpn-things/building-blocks/data-processing/decoders-and-encoders). |
| › Decoded payload for Asset Tracking application      | `5cf4f661-d764-4986-bd62-4b68ffc627e7` | Decoder outputting legacy SenML naming, compatible with Asset Tracking v1.x application.                                                                                          |
| › Decoded payload for Asset Tracking application (v2) | `b2b9da8f-761e-599f-8464-3a916d54b6b8` | Decoder for Streamline lora messages encoded as P3K3 (loctagiiiv2) with RotationCount (byte length 2-49).                                                                         |
| › Decoded payload with motion indication              | `b56341ae-6ab5-4b8d-a4aa-790b7a9e2ffa` | Decoder for Streamline LoRa devices configured with motion indicator configuration.                                                                                               |
| › Decoded payload with motion indication (v2)         | `e36ca071-eb67-5bf4-93de-0efa2ca087ea` | Decoder for Streamline LoRa devices configured with motion indicator configuration.                                                                                               |

### + LoRa Geolocation data

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

#### Expected SenML outputs

<table><thead><tr><th width="179.33333333333331">name</th><th width="128">type/unit</th><th width="135">example</th><th>description</th></tr></thead><tbody><tr><td>locOrigin</td><td>string</td><td>KPNLORA</td><td>indicates the origin of the location data</td></tr><tr><td>latitude</td><td>numeric</td><td>51.79</td><td></td></tr><tr><td>longitude</td><td>numeric</td><td>4.68</td><td></td></tr><tr><td>radius</td><td>m</td><td>319</td><td></td></tr><tr><td>locAccuracy</td><td>%</td><td></td><td></td></tr><tr><td>locPrecision</td><td>%</td><td></td><td></td></tr><tr><td>locTime</td><td>timestamp</td><td>1637165561</td><td></td></tr></tbody></table>

#### Example SenML-message

This location info can be merged with the payload of the device

```
[
  {
    "bn": "urn:dev:DEVEUI:A41163C212345678:",
    "bt": 1637165561
  },
  {
    "n": "locOrigin",
    "vs": "KPNLORA"
  },
  {
    "n": "latitude",
    "u": "lat",
    "v": 51.794884
  },
  {
    "n": "longitude",
    "u": "lon",
    "v": 4.687986
  },
  {
    "n": "radius",
    "u": "m",
    "v": 319.730194
  },
  {
    "n": "locAccuracy",
    "u": "%",
    "v": 9999
  },
  {
    "n": "locPrecision",
    "u": "%",
    "v": 9999
  },
  {
    "n": "locTime",
    "vs": "1637165561192"
  }
]
```

### + Location by LoRa On Premises Gateway reception

Add location data to messages that are received by known [LoRa On Premise Gateways](https://docs.kpnthings.com/kpn-things/building-blocks/data-processing/decoders-and-encoders).

### › Decoded payload for Asset Tracking application

Decoder outputting legacy SenML naming, compatible with Asset Tracking v1.x application.

#### Expected SenML outputs

<table><thead><tr><th>name</th><th>type/unit</th><th width="180">example</th><th>description</th></tr></thead><tbody><tr><td>DvLon</td><td>numeric</td><td>5.8</td><td>Longitude</td></tr><tr><td>DvLat</td><td>numeric</td><td>51.8</td><td>Latitude</td></tr><tr><td>Speed</td><td>m/s</td><td>0.0</td><td></td></tr><tr><td>Heading</td><td>rad</td><td>3.316</td><td></td></tr><tr><td>IoButt</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>IoRxd</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>IoMot</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>Io31</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>AccX</td><td>numeric</td><td>-1.3</td><td>Acceleration X</td></tr><tr><td>AccY</td><td>numeric</td><td>-0.5</td><td>Acceleration Y</td></tr><tr><td>AccZ</td><td>numeric</td><td>3.0</td><td>Acceleration Z</td></tr><tr><td>CompX</td><td>numeric</td><td>0.0</td><td>Compass X</td></tr><tr><td>CompY</td><td>numeric</td><td>0.0</td><td>Compass Y</td></tr><tr><td>CompZ</td><td>numeric</td><td>0.0</td><td>Compass Z</td></tr><tr><td>Temp</td><td>Cel</td><td>9.5</td><td>Temperature</td></tr><tr><td>VBat</td><td>V</td><td>3.6</td><td>Battery Voltage</td></tr><tr><td>TIME_ORIGINE</td><td>string</td><td>THINGSENGINE</td><td></td></tr></tbody></table>

#### Example SenML-message

```
[
	{
		"bn": "urn:dev:DEVEUI:7CC6C41000000457:",
		"bt": 1678778484
	},
	{
		"n": "DvLon",
		"u": "lon",
		"v": 5.82224
	},
	{
		"n": "DvLat",
		"u": "lat",
		"v": 51.85008
	},
	{
		"n": "Speed",
		"u": "m/s",
		"v": 0.0
	},
	{
		"n": "Heading",
		"u": "rad",
		"v": 3.316
	},
	{
		"n": "IoButt",
		"v": 1.0
	},
	{
		"n": "IoRxd",
		"v": 1.0
	},
	{
		"n": "IoMot",
		"v": 1.0
	},
	{
		"n": "Io31",
		"v": 0.0
	},
	{
		"n": "AccX",
		"u": "m/s2",
		"v": -9.9599
	},
	{
		"n": "AccY",
		"u": "m/s2",
		"v": -0.7661
	},
	{
		"n": "AccZ",
		"u": "m/s2",
		"v": -0.6129
	},
	{
		"n": "CompX",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "CompY",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "CompZ",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "Temp",
		"u": "Cel",
		"v": 9.5
	},
	{
		"n": "VBat",
		"u": "V",
		"v": 3.59
	},
	{
		"n": "TIME_ORIGIN",
		"vs": "THINGSENGINE"
	}
]
```

### › Decoded payload for Asset Tracking application (v2)

Decoder for Streamline lora messages encoded as P3K3 (loctagiiiv2) with RotationCount (byte length 2-49).

{% 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                            |
| --------------------- | ------- | ---- | -------- | -------------------------------------- |
| batteryVoltage        | number  | V    |          |                                        |
| devEui                | string  |      |          | Not present in detail level 1 messages |
| DvLat                 | number  | lat  |          | Latitude                               |
| DvLon                 | number  | lon  |          | Longitude                              |
| firmwareCRC           | string  |      |          | Not present in detail level 1 messages |
| firmwareVersion       | string  |      |          | Not present in detail level 1 messages |
| gpsActiveStill        | boolean |      | `true`   |                                        |
| gpsFixStill           | boolean |      | `true`   |                                        |
| gpsModuleActive       | boolean |      | `true`   | Not present in detail level 1 messages |
| nfcScanned            | boolean |      | `true`   |                                        |
| nfcState              | string  |      |          | Not present in detail level 1 messages |
| nrOfLoraTransmissions | number  |      |          | Not present in detail level 1 messages |
| orientationX          | number  |      |          | Not present in detail level 1 messages |
| orientationY          | number  |      |          | Not present in detail level 1 messages |
| powerupTime           | number  | min  |          | Not present in detail level 1 messages |
| rotationCount         | number  |      |          |                                        |
| rotationLeft          | number  |      |          | Not present in detail level 1 messages |
| rotationRight         | number  |      |          | Not present in detail level 1 messages |
| settingsCRC           | string  |      |          | Not present in detail level 1 messages |
| status                | string  |      |          | Not present in detail level 1 messages |
| temperature           | number  | Cel  | `18.334` |                                        |
| transmissionTime      | number  | s    |          | Not present in detail level 1 messages |

#### 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": "gpsActiveStill",
        "vb": true
    },
    {
        "n": "gpsFixStill",
        "vb": true
    },
    {
        "n": "nfcScanned",
        "vb": false
    },
    {
        "n": "batteryVoltage",
        "u": "V",
        "v": 3
    },
    {
        "n": "DvLat",
        "u": "lat",
        "v": 51.90717
    },
    {
        "n": "DvLon",
        "u": "lon",
        "v": 4.48940
    },
    {
        "n": "rotationCount",
        "v": 154
    },
    {
        "n": "temperature",
        "u": "Cel",
        "v": 1
    },
    {
        "n": "firmwareVersion",
        "vs": "cdab"
    },
    {
        "n": "firmwareCRC",
        "vs": "2143"
    },
    {
        "n": "settingsCRC",
        "vs": "7698"
    },
    {
        "n": "gpsModuleActive",
        "vb": true
    },
    {
        "n": "nfcState",
        "vs": "NFC_OFF"
    },
    {
        "n": "powerupTime",
        "u": "min",
        "v": 872379
    },
    {
        "n": "transmissionTime",
        "u": "s",
        "v": 238792
    },
    {
        "n": "nrOfLoraTransmissions",
        "v": 55
    },
    {
        "n": "devEui",
        "vs": "babcdef012"
    },
    {
        "n": "rotationLeft",
        "v": 3407873
    },
    {
        "n": "rotationRight",
        "v": 1507507
    },
    {
        "n": "orientationX",
        "v": 122
    },
    {
        "n": "orientationY",
        "v": 12
    },
    {
        "n": "status",
        "vs": "9a"
    },
    {
        "n": "timeOrigin",
        "vs": "NETWORK"
    }
]
```

### › Decoded payload with motion indication

Decoder for Streamline LoRa devices configured with motion indicator configuration.

#### Expected SenML outputs

* <table><thead><tr><th>name</th><th>type/unit</th><th width="180">example</th><th>description</th></tr></thead><tbody><tr><td>DvLon</td><td>numeric</td><td>5.8</td><td>Longitude</td></tr><tr><td>DvLat</td><td>numeric</td><td>51.8</td><td>Latitude</td></tr><tr><td>Speed</td><td>m/s</td><td>0.0</td><td></td></tr><tr><td>Heading</td><td>rad</td><td>3.316</td><td></td></tr><tr><td>movementIndication</td><td>string</td><td>START</td><td>STATIONARY, STOP, START, MOVING</td></tr><tr><td>IoButt</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>IoRxd</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>IoMot</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>Io31</td><td>numeric</td><td>1.0</td><td></td></tr><tr><td>AccX</td><td>numeric</td><td>-1.3</td><td>Acceleration X</td></tr><tr><td>AccY</td><td>numeric</td><td>-0.5</td><td>Acceleration Y</td></tr><tr><td>AccZ</td><td>numeric</td><td>3.0</td><td>Acceleration Z</td></tr><tr><td>CompX</td><td>numeric</td><td>0.0</td><td></td></tr><tr><td>CompY</td><td>numeric</td><td>0.0</td><td></td></tr><tr><td>CompZ</td><td>numeric</td><td>0.0</td><td></td></tr><tr><td>Temp</td><td>Cel</td><td>9.5</td><td>Temperature</td></tr><tr><td>VBat</td><td>V</td><td>3.6</td><td>Battery Voltage</td></tr><tr><td>TIME_ORIGINE</td><td>string</td><td>THINGSENGINE</td><td></td></tr></tbody></table>

#### Example SenML-message

```
[
	{
		"bn": "urn:dev:DEVEUI:7CC6C42600000272:",
		"bt": 1678778546
	},
	{
		"n": "DvLon",
		"u": "lon",
		"v": 6.92017
	},
	{
		"n": "DvLat",
		"u": "lat",
		"v": 52.75613
	},
	{
		"n": "Speed",
		"u": "m/s",
		"v": 0.0
	},
	{
		"n": "Heading",
		"u": "rad",
		"v": 2.862
	},
	{
		"n": "movementIndication",
		"vs": "START"
	},
	{
		"n": "GpsFix",
		"vs": "RECENT"
	},
	{
		"n": "IoButt",
		"v": 1.0
	},
	{
		"n": "IoRxd",
		"v": 1.0
	},
	{
		"n": "IoMot",
		"v": 1.0
	},
	{
		"n": "Io31",
		"v": 0.0
	},
	{
		"n": "AccX",
		"u": "m/s2",
		"v": -9.9599
	},
	{
		"n": "AccY",
		"u": "m/s2",
		"v": 1.6855
	},
	{
		"n": "AccZ",
		"u": "m/s2",
		"v": 0.0
	},
	{
		"n": "CompX",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "CompY",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "CompZ",
		"u": "T",
		"v": 0.0
	},
	{
		"n": "Temp",
		"u": "Cel",
		"v": 12.25
	},
	{
		"n": "VBat",
		"u": "V",
		"v": 3.59
	},
	{
		"n": "TIME_ORIGIN",
		"vs": "THINGSENGINE"
	}
]
```

### › Decoded payload with motion indication (v2)

Decoder for Streamline LoRa devices configured with motion indicator configuration.

{% 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                                              |
| ------------------ | ------ | ---- | -------------- | -------------------------------------------------------- |
| AccX               | number | m/s2 | `-1.3`         | Measured acceleration in the X-axis                      |
| AccY               | number | m/s2 | `-0.5`         | Measured acceleration in the Y-axis                      |
| AccZ               | number | m/s2 | `3.0`          | Measured acceleration in the Z-axis                      |
| CompX              | number | T    | `0.0000010`    | Measured compass orientation in the X-axis               |
| CompY              | number | T    | `-0.001507`    | Measured compass orientation in the Y-axis               |
| CompZ              | number | T    | `-0.002638`    | Measured compass orientation in the Z-axis               |
| DvLat              | number | lat  | `51.90717`     | Latitude                                                 |
| DvLon              | number | lon  | `4.48940`      | Longitude                                                |
| GpsFix             | string |      | `"RECENT"`     | Either `"RECENT"` or `"OUTDATED"`                        |
| Heading            | number | rad  | `3.316`        |                                                          |
| Io31               | number |      | `1.0`          | arbitrary bit                                            |
| IoButt             | number |      | `1.0`          | whether the Device's button was pressed                  |
| IoMot              | number |      | `1.0`          | whether the Device is in motion                          |
| IoRxd              | number |      | `1.0`          | Device's external digital i/o value                      |
| movementIndication | string |      | `"STATIONARY"` | Either `"STATIONARY"`, `"STOP"`, `"START"` or `"MOVING"` |
| Speed              | number | m/s  | `4.12`         |                                                          |
| Temp               | string | Cel  | `7.0`          | Temperature                                              |
| VBat               | number | V    | `3.59`         | Battery voltage                                          |

#### 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": 1701882708.84,
        "n": "DvLon",
        "u": "lon",
        "v": 4.48940
    },
    {
        "n": "DvLat",
        "u": "lat",
        "v": 51.90717
    },
    {
        "n": "Speed",
        "u": "m/s",
        "v": 4.12
    },
    {
        "n": "Heading",
        "u": "rad",
        "v": -3.944
    },
    {
        "n": "IoButt",
        "v": 1.0
    },
    {
        "n": "IoRxd",
        "v": 1.0
    },
    {
        "n": "IoMot",
        "v": 0.0
    },
    {
        "n": "Io31",
        "v": 0.0
    },
    {
        "n": "AccX",
        "u": "m/s2",
        "v": 9.5002
    },
    {
        "n": "AccY",
        "u": "m/s2",
        "v": 0.7661
    },
    {
        "n": "AccZ",
        "u": "m/s2",
        "v": 0.1532
    },
    {
        "n": "CompX",
        "u": "T",
        "v": 0.0000010
    },
    {
        "n": "CompY",
        "u": "T",
        "v": -0.001507
    },
    {
        "n": "CompZ",
        "u": "T",
        "v": -0.002638
    },
    {
        "n": "Temp",
        "u": "Cel",
        "v": 7.0
    },
    {
        "n": "movementIndication",
        "vs": "STATIONARY"
    },
    {
        "n": "GpsFix",
        "vs": "RECENT"
    },
    {
        "n": "VBat",
        "u": "V",
        "v": 3.59
    },
    {
        "n": "timeOrigin",
        "vs": "NETWORK"
    }
]
```
