使用G+link协议进行通信
更新时间: 2023-04-10

设备完成鉴权接入后,使用平台定义的G+link数据交互协议与平台进行数据交互。以下例举设备主要的上下行消息交互,完整消息G+link定义参考《开发者指南>设备管理>G+link数据交互协议》章节

# 属性状态批量上报

设备批量上报属性状态,适用于断线缓存上报、周期批量上报等场景。

此接口通过MQTT协议上报时,所以单次上报数据如超过MQTT payload限制,需通过切块或调用文件上传接口。

  • 设备需发布消息到以下主题

thing/{productKey}/{deviceName}/property/batch

  • 消息体
{
    "reqId":"442c1da4-9d3a-4f9b-a6e9-bfe858e4ac43",
    "method":"thing.property.post",
    "version":"1.0",
    "timestamp":1610430718000,
    "properties":{
        "sn":"ABC0000001",
        "firmware_version":1.2,
        "location":{
            "latitude":80.001,
            "longitude":120.1
        }
    }
}

# 事件单次上报

设备上报事件、遥测数据上报,例如温度、气压、电流电压等。设备端一次可以上报多个事件,服务端在订阅后按事件类型处理。

  • 设备需发布消息到以下主题

thing/{productKey}/{deviceName}/event/post

  • 消息体
{
    "reqId":"442c1da4-9d3a-4f9b-a6e9-bfe858e4ac43",
    "method":"thing.event.post",
    "version":"1.0",
    "timestamp":1610430718000,
    "events":{

       "sensors": {
           "temperature":24,
           "humidity":30
       },

       "coordinate": {
           "longitude":0,
           "latitude":0
       } 

    }
}

# 服务端响应消息

对于所有设备端上报消息的接口,可以指定是否需要服务端进行响应,当设置为需要(needResponse=true) 时,则设备端可通过订阅这一接口获取应用端下发的执行结果。

  • 应用端需发布消息到以下主题

thing/{productKey}/{deviceName}/response/c2d

  • 消息体
{
    "reqId":"442c1da4-9d3a-4f9b-a6e9-bfe858e4ac43",
    "method":"thing.property.post",
    "code":200,
    "description":"The property 'sn' has been updated successfully.",

    "params":{
        "test":"hello world",
        "format":"plain text"
    }

}

更多设备与平台的交互,请查阅完整G+link协议。