templatestelemetryazure-iot-centralazure-digital-twinsttn

Azure IoT Central device template issue


I`m trying to get data from meters through "TheThingsNetwork". To analyse my data, i would like to see them in MS Azure IoT Central. The meters are sending their payload to my ToT Central application. When i try to build an automatic device template, the whole payload is shown in "unmodeled data". unmodled data Can somebody help me to fix that issue?

This is my Payload:

{
"_unmodeleddata": {
    "end_device_ids": {
        "device_id": "94193a010300045e",
        "application_ids": {
            "application_id": "blurred"
        },
        "dev_eui": "94193A010300045E",
        "join_eui": "94193A0303000001",
        "dev_addr": "260BC45C"
    },
    "correlation_ids": [
        "as:up:01G7XQVSHENYQWDJCC5MMP8HY2",
        "gs:conn:01G7MYTB0H8DKVR3A41G8AQDC7",
        "gs:up:host:01G7MYTB1K770TADHFTWM6SD22",
        "gs:uplink:01G7XQVSAW35X99Z3Y4P6GP6H9",
        "ns:uplink:01G7XQVSAXFF552N4Q02AV5V6H",
        "rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01G7XQVSAWJA39MTGM9F3MGQSW",
        "rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01G7XQVSHDNAK3EGVMAZ7YVNJF"
    ],
    "received_at": "2022-07-14T06:55:41.102327327Z",
    "uplink_message": {
        "session_key_id": "AYGVIF1ZUllwEYMfJ9cBYg==",
        "f_port": 2,
        "f_cnt": 418,
        "frm_payload": "HgQHHgAAAAQUUfQsAAIrAAACOwAAAlq0AgJe1QIHeQgYgXKlEaAEAf0XAA==",
        "decoded_payload": {
            "energy": 0.3,
            "flow": 0,
            "fw": 69.2,
            "id": 72811808,
            "rt": 72.5,
            "volumen": 29461.29
        },
        "rx_metadata": [
            {
                "gateway_ids": {
                    "gateway_id": "acd1",
                    "eui": "F15HGD15INA7"
                },
                "time": "2022-07-14T06:55:40.511876106Z",
                "timestamp": 2638236812,
                "rssi": -117,
                "channel_rssi": -117,
                "snr": -9,
                "location": {
                    "latitude": 52.53678311323148,
                    "longitude": 13.007938200333063,
                    "source": "SOURCE_REGISTRY"
                },
                "uplink_token": "ChIKEAoEdHd2MhII/MI9//4tVaYQjJmB6gkaDAjs+76WBhCftb+pAyDghayZ5IBDKgwI7Pu+lgYQiriK9AE="
            }
        ],
        "settings": {
            "data_rate": {
                "lora": {
                    "bandwidth": 125000,
                    "spreading_factor": 9
                }
            },
            "coding_rate": "4/5",
            "frequency": "867900000",
            "timestamp": 2638236812,
            "time": "2022-07-14T06:55:40.511876106Z"
        },
        "received_at": "2022-07-14T06:55:40.893049499Z",
        "consumed_airtime": "0.349184s",
        "network_ids": {
            "net_id": "000013",
            "tenant_id": "ttn",
            "cluster_id": "eu1",
            "cluster_address": "eu1.cloud.thethings.network"
        }
    }
},
"_eventtype": "Telemetrie",
"_timestamp": "2022-07-14T06:55:41.727Z"

}

And this is my current DTDL:

{
"@id": "dtmi:zhlerauslesung:n94193a0103000ba4;1",
"@type": "Interface",
"contents": [
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:energy;1",
        "@type": [
            "Telemetry",
            "NumberValue"
        ],
        "displayName": {
            "en": "energy"
        },
        "name": "energy",
        "schema": "double"
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:flow;1",
        "@type": [
            "Telemetry",
            "NumberValue"
        ],
        "displayName": {
            "en": "flow"
        },
        "name": "flow",
        "schema": "double"
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:fw;1",
        "@type": [
            "Telemetry",
            "NumberValue"
        ],
        "displayName": {
            "en": "fw"
        },
        "name": "fw",
        "schema": "double"
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:rt;1",
        "@type": [
            "Telemetry",
            "NumberValue"
        ],
        "displayName": {
            "en": "rt"
        },
        "name": "rt",
        "schema": "double"
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:volumen;1",
        "@type": [
            "Telemetry",
            "NumberValue"
        ],
        "displayName": {
            "en": "volumen"
        },
        "name": "volumen",
        "schema": "double"
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:id;1",
        "@type": [
            "Property",
            "NumberValue"
        ],
        "displayName": {
            "en": "id"
        },
        "name": "id",
        "schema": "double",
        "writable": false
    },
    {
        "@id": "dtmi:zhlerauslesung:n94193a0103000ba4:CMI4160_537;1",
        "@type": "Component",
        "displayName": {
            "en": "Komponente"
        },
        "name": "CMI4160_537",
        "schema": "dtmi:zHlerauslesung:CMI4160_537;1"
    }
],
"displayName": {
    "en": "94193a0103000ba4"
},
"@context": [
    "dtmi:iotcentral:context;2",
    "dtmi:dtdl:context;2"
]

}


Solution

  • You should use the mapping telemetry data on ingress, see more details here.

    Based on your payload and the device model, the raw data will be the following:

    Mapping: enter image description here

    Raw data:

    enter image description here

    Dashboard:

    enter image description here

    Note, that I had to remove your component CMI4160_537 from the device model for test purpose.