Reporting Offline Measurement Points in Batch


Offline measurement points are reported in batch in the following scenarios:

  • A gateway device reports the measurement point data of its sub-devices.

  • A device that is directly connected to EnOS reports measurement points with different timestamps.

  • Both scenarios mentioned above.

Note

Configure the following parameters according to the parameters defined in the model. If part of the data fails to be reported, the entire request will fail, and the first return code that occurs will be returned.


Upstream

  • Request TOPIC: /sys/{productKey}/{deviceKey}/thing/measurepoint/resume/batch

  • Reply TOPIC: /sys/{productKey}/{deviceKey}/thing/measurepoint/resume/batch_reply

Sample Request Format

{
    "id":"123",
    "version":"1.0",
    "allowOfflineSubDevice": true,
    "skipInvalidMeasurepoints": true,
    "params":[
        {
            "productKey":"product1",
            "deviceKey":"device1",
            "measurepoints":{
                "Power":{
                    "value":1,
                    "quality":9
                },
                "temp":1.02,
                "branchCurr":[
                    "1.02",
                    "2.02",
                    "7.93"
                ]
            },
            "time":123456
        },
        {
            "productKey":"product1",
            "deviceKey":"device1",
            "measurepoints":{
                "Power":{
                    "value":2,
                    "quality":9
                },
                "temp":2.02,
                "branchCurr":[
                    "2.02",
                    "3.02",
                    "9.93"
                ]
            },
            "time":123567
        },
        {
            "productKey":"product2",
            "deviceKey":"device2",
            "measurepoints":{
                "Power":{
                    "value":1,
                    "quality":9
                },
                "temp":1.02,
                "branchCurr":[
                    "1.02",
                    "2.02",
                    "7.93"
                ]
            },
            "time":123456
        }
    ],
    "method":"thing.measurepoint.resume.batch"
}

Sample Response Format

{
    "id":"123",
    "code":200,
    "data":{   }
}

Request Parameter Description

Parameter

Type

Mandatory/Optional

Description

id

String

Optional

The message ID. It is a reserved parameter that is reserved for future use.

version

String

Mandatory

The version of the protocol. The current version is 1.0.

allowOfflineSubDevice

Boolean

Optional

  • true = Allow the sending of measurement point data for offline devices.

  • false (default) = Do not allow the sending of measurement point data for offline devices. If the value is set to false and the request contains an offline device, the entire request is declined.

skipInvalidMeasurepoints

boolean

Optional

  • true = Skip invalid measurement points data in a request.

  • false (default) = Do not skip invalid measurement points data in a request. If the value is set to false and the request contains invalid measurement points data, the entire request is declined.

params

Object

Mandatory

The parameters used for reporting the device measurement points.

productKey

String

Optional

The product key of the device. If you need to report the data of sub-devices, the product and device keys of the sub-devices are required. If the product and device keys of sub-devices are not provided, those of the gateway device will be used instead.

deviceKey

String

Optional

The device key of the device. If you need to report the data of sub-devices, the product and device keys of the sub-devices are required. If the product and device keys of sub-devices are not provided, those of the gateway device will be used instead.

measurepoints

Object

Mandatory

The list of the measurement points to be reported.

Power

Struct

Optional

The identifier of the measurement point that you want to report. In this example, the measurement point has the identifier Power. The value you set for the point must match the data type defined for this parameter. In this case, the data type for Power is struct, defined with 2 paramters value and quality.

value

Integer

Optional

The parameter name of the struct data type of the measurement point Power. The value you set must match the data type defined for this parameter. For example, when the data type of this parameter is set to integer in the model, the value here must be an integer.

quality

Integer

Optional

The parameter name of the struct data type of the measurement point Power. In this example, the quality parameter indicates the data quality. Similar to the above, the value you set must match the data type defined for this parameter.

temp

String

Optional

The identifier of the measurement point that you want to report. In this example, the measurement point has the identifier temp. Similar to the above, the value you set must match the data type defined for this parameter.

branchCurr

String

Optional

The identifier of the measurement point that you want to report. In this example, the measurement point has the identifier branchCurr. Similar to the above, the value you set must match the data type defined for this parameter.

time

Timestamp

Mandatory

The timestamp of the measurement point.

method

String

Mandatory

The request method.

Response Parameter Description

Parameter

Type

Mandatory/Optional

Description

code

Integer

Mandatory

The return code. “200” indicates that the request operation is executed successfully.

data

JSON

Optional

The detailed returned information in JSON format.

Return Code

Return Code

Error Message

Explanation

1204

Model validate failed

measurepoints contains invalid fields.

1206

Measurepoint post data format error

Invalid JSON format.

1212

No sub-device permission

The sub-device is offline or is not connected to EnOS through the pre-configured gateway device.