iotedge-lorawan-starterkit icon indicating copy to clipboard operation
iotedge-lorawan-starterkit copied to clipboard

Support for batch report comming from devices

Open kbeaugrand opened this issue 4 years ago • 0 comments

Is your feature request related to a problem? Please describe. Some LoRa Device doesn't send only unitary frames. They can send also a batch of telemetry inside the same payload. Each telemetry has it's own timestamp inside this batch. The batch is considered as an unitary telemetry message.

Describe the solution you'd like I would sugest to have a simple contract between the Network Server and the decoders that specify an array of telemetry item as a result of decoding. In that way the network server could iterate through the results to post each messages separatly. Since each message have a timestamp, the NetworkServer should also take that timestamp and set a message property comming from that timestamp.

Describe alternatives you've considered Actually, we need to use a specific Edge Module to flatten the messages... but we would loose the original sender at that time.

Additional context Exemple for the decoding context:

{
    "batch_counter": 0,
    "batch_relative_timestamp": 35400,
    "batch_absolute_timestamp": "2021-10-05T12:11:53.058",
    "dataset": [
        {
            "data_relative_timestamp": 811,
            "data": {
                "value": 2400,
                "label": 0,
                "label_name": "Temperature"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:24.058Z"
        },
        {
            "data_relative_timestamp": 841,
            "data": {
                "value": 2420.0,
                "label": 0,
                "label_name": "Temperature"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:54.058Z"
        },
        {
            "data_relative_timestamp": 811,
            "data": {
                "value": 4500,
                "label": 1,
                "label_name": "RelativeHumidity"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:24.058Z"
        },
        {
            "data_relative_timestamp": 841,
            "data": {
                "value": 5400.0,
                "label": 1,
                "label_name": "RelativeHumidity"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:54.058Z"
        },
        {
            "data_relative_timestamp": 811,
            "data": {
                "value": 20.0,
                "label": 2,
                "label_name": "Luminosity"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:24.058Z"
        },
        {
            "data_relative_timestamp": 841,
            "data": {
                "value": 320.0,
                "label": 2,
                "label_name": "Luminosity"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:54.058Z"
        },
        {
            "data_relative_timestamp": 844,
            "data": {
                "value": 0,
                "label": 3,
                "label_name": "Disposable_BatteryLevel"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:57.058Z"
        },
        {
            "data_relative_timestamp": 840,
            "data": {
                "value": 3000,
                "label": 4,
                "label_name": "Rechargeable_BatteryLevel"
            },
            "data_absolute_timestamp": "2021-10-05T02:35:53.058Z"
        }
    ]
}

kbeaugrand avatar Oct 05 '21 06:10 kbeaugrand