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.