OneNET物联网平台 平台介绍 入门手册 设备开发指南 应用开发指南
API
API使用 API列表 SDK MQTT LwM2M EDP Modbus TCP
消息队列MQ HTTP推送
服务定价 扩展服务 常见问题 发布公告

数据点 topic 簇

OneNET支持用户以数据流-数据点模型(模型详情)将数据上传至平台并进行存储,设备可以通过数据点 topic 簇调用数据点存储服务存储数据,可以通过订阅系统 topic 获取数据处理结果通知,如下图所示:

数据点 topic 簇 topic 列表如下:

系统topic用途QoS可订阅可发布
$sys/{pid}/{device-name}/dp/post/json设备上传数据点0/1
$sys/{pid}/{device-name}/dp/post/json/accepted系统通知"设备上传数据点成功"0
$sys/{pid}/{device-name}/dp/post/json/rejected系统通知"设备上传数据点失败"0

设备数据点上传

设备可以通过向系统固定 topic:$sys/{pid}/{device-name}/dp/post/json 发送数据点存储消息,消息中payload字段数据内容仅支持json格式,示例如下:

{
    "id": 123,        
    "dp": {             
        "temperatrue": [{     
            "v": 30,       
            "t": 1552289676
        }],
        "power": [{     
            "v": 4.5,        
            "t": 1552289676 
        }],
        "status": [{
                "v": {
                    "color": "blue"
                },
                "t": 1552289677
            },
            {
                "v": {
                    "color": "red"
                },
                "t": 1552289678
            }
        ]
    }
}

其中,参数说明如下:

参数类型是否必填说明
idint消息ID,大于0的整数,数值范围为,4字节有符号数取值范围
dpobject数据点内容,key-value格式,key为数据流名称,value为list格式的一个或者多个数据点值
上例中向temperatrue、power、status三个数据流中上传带时间戳的数据
v-数据点值,可以为int/float/string/object多种格式
tint数据点时间戳,unix时间,单位为秒,若不携带,则系统将以数据到达平台时间作为其数据时间

设备数据点上传,支持 QoS1,若 publish QoS=1,则平台回复 publish ack

平台通知上传结果

消息处理完成后,平台通过系统 topic 向设备发送上传结果通知,若设备订阅了该 topic,则能收到该消息

当上传数据处理成功时

返回消息至:$sys/${pid}/${device-name}/dp/post/json/accepted

数据格式为:

{
    "id": 123              //对应数据上报时的消息ID
}

当上传数据处理失败时

返回消息至:$sys/${pid}/${device-name}/dp/post/json/rejected

若不能成功解析合法id,错误时,返回数据格式为:

{
    "id": -1,             
    "err_code": 98,
    "err_msg":"Illegal Data"
}

若能成功解析合法id,由其他格式问题导致的错误,返回数据格式为:

{
    "id": 123,            
    "err_code": 98,
    "err_msg":"Illegal Data"
}

错误码

上传数据处理失败时,错误码如下:

错误码 err_code 错误消息 err_msg 说明
98 Illegal Data payload格式有误,平台解析失败

个搜索结果,搜索内容 “

    0 个搜索结果,搜索内容 “