# Streamline M2M

![Streamline M2M](https://portal.kpnthings.com/assets/images/device-types/supported-streamline-m2m.png)

For all streamline M2M devices.

* Supported network type(s): `KPNSTREAMLINEM2M`
* Device Specification ID: `supported-streamline-m2m`
* Device Specification UUID: `1ee3544d-1f5e-4d70-aba7-b50e80bad402`

| Decoders                           | decoderSpecificationUUID               | Description                                   |
| ---------------------------------- | -------------------------------------- | --------------------------------------------- |
| › Decoded Streamline M2M data      | `cf36febd-ba2e-4d1b-bbda-da4b6dbf2ca3` | Decoder for selection of Streamline M2M data. |
| › Decoded Streamline M2M data (v2) | `b5becc8a-ff52-5d2d-85ee-42b03a852bc4` | Decoder for selection of Streamline M2M data. |

### › Decoded Streamline M2M data

Decoder for selection of Streamline M2M data.

**Expected SenML records**

| name            | type   | unit   |
| --------------- | ------ | ------ |
| accelerationX   | number | m/s2   |
| accelerationY   | number | m/s2   |
| accelerationZ   | number | m/s2   |
| altitude        | number | m      |
| altitudeMargin  | number | m      |
| batteryVoltage  | number | V      |
| firmwareVersion | string | string |
| gpsTime         | number | s      |
| gsmNetworkId    | string | string |
| heading         | number | rad    |
| latitude        | number | lat    |
| longitude       | number | lon    |
| phoneNumber     | string | string |
| radius          | number | m      |
| temperature     | number | Cel    |
| velocity        | number | m/s    |

### › Decoded Streamline M2M data (v2)

Decoder for selection of Streamline M2M data.

{% 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    | `3.59`               |             |
| firmwareVersion | string |      | `"474"`              |             |
| gpsTime         | number | s    | `1664810842.4`       |             |
| heading         | number | rad  | `0.7148868616168774` |             |
| latitude        | number | lat  | `51.90717`           |             |
| longitude       | number | lon  | `4.48940`            |             |
| radius          | number | m    |                      |             |
| velocity        | number | m/s  |                      |             |

#### 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:IMEI:999999999000090:",
        "bt": 1664810824.4,
        "n": "batteryVoltage",
        "u": "V",
        "v": 3.62
    },
    {
        "n": "firmwareVersion",
        "vs": "474"
    },
    {
        "n": "gpsTime",
        "u": "s",
        "v": 1664810842.4
    },
    {
        "n": "heading",
        "u": "rad",
        "v": 0.7148868616168774
    },
    {
        "n": "latitude",
        "u": "lat",
        "v": 51.90717
    },
    {
        "n": "longitude",
        "u": "lon",
        "v": 4.48940
    },
    {
        "n": "radius",
        "u": "m",
        "v": 0
    },
    {
        "n": "velocity",
        "u": "m/s",
        "v": 0
    }
]
```
