物联网mqtt消息格式定义示例
物联网mqtt通信流程
消息定义
应用下发到云
POST https://云服务器ip/iot/{product_id}/{device_id}/cmd
Content-Type: application/json
X-Auth-Token: ********
json消息格式,与1.4 云下发到设备 一致
云下发到设备
Topic: /{product_id}/{device_id}/cmd
这里product_id和device_id,由19未随机数组成,具体由平台定义;
json消息格式,FUNC时:
{
"cmd_name": "relay_ctr",
"request_id": "0",
"type": "FUNC",
"method": "SET" ,
"operate": "SET" ,
"product_id":"1",
"device_id":"36",
"function_id":"14",
"timestamp":0,
"params":{
"state":"ON"
}
}
json消息格式,VAL时:
{
"cmd_name": "temp",
"request_id": "0",
"type": "FUNC",
"method": "SET" ,
"operate": "SET" ,
"product_id":"1",
"device_id":"36",
"function_id":"4",
"timestamp":0,
"params":{
"max_val":95.4,
"val":37.5,
"min_val":8.2
}
}
说明:
cmd_name 命令名,具体由平台定义;需app和平台,嵌入设备三端一致
request_id 下发时,随机生成,由19未随机数组成;这里原样返回
type 命令类型FUNC和VAL两种,FUNC 功能型,如开关机,状态等;VAL
method SET和GET或其他;
operate ON,OFF等;
product_id 产品id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
device_id 设备id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
function_id 功能id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
timestamp 时间戳
params 具体的参数获取或设置的值;字段根据type类型有所区别:
FUNC时:
"params":{
"state":"high8"
}
VAL时:
"params":{
"max_val":95.4,
"val":37.5,
"min_val":8.2
}
注意:最后一项不能加"," 逗号,否则开发板解析有问题
设备返回结果给云
Topic:/{product_id}/{device_id}/data
这里product_id和device_id,由19未随机数组成,具体由平台定义;
json消息格式,FUNC时:
{
"result_code": 0,
"result": "success",
"message": "OK",
"response_id": "0",
"data":{
"cmd_name": "relay_ctr",
"request_id": "0",
"type": "FUNC",
"method": "SET" ,
"operate": "SET" ,
"product_id":"1",
"device_id":"36",
"function_id":"14",
"timestamp":0,
"params":{
"state":"ON"
}
}
}
json消息格式,VAL时:
{
"result_code": 0,
"result": "success",
"message": "OK",
"response_id": "0",
"data":{
"cmd_name": "temp",
"request_id": "0",
"type": "FUNC",
"method": "SET" ,
"operate": "SET" ,
"product_id":"1",
"device_id":"36",
"function_id":"4",
"timestamp":0,
"params":{
"max_val":95.4,
"val":37.5,
"min_val":8.2
}
}
}
说明:
result_code 0:成功;1或其他:失败;具体失败码定义,请参考相关文档(待定义)
result success和fail等字样,与result_code对应
message 提示性内容
response_id 响应id与request_id 一致;用于接收端区分该响应属于哪个请求;
data 具体的响应数据
cmd_name 命令名与下发时一致,具体由平台定义;需app和平台,嵌入设备三端一致
request_id 下发时,随机生成,由19未随机数组成;这里原样返回
type 命令类型FUNC和VAL两种,FUNC 功能型,如开关机,状态等;VAL
method SET和GET或其他;
operate ON,OFF等;
product_id 产品id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
device_id 设备id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
function_id 功能id,由19未随机数组成,具体由平台定义;需app和平台,嵌入设备三端一致
timestamp 时间戳
params 具体的参数获取或设置的值;字段根据type类型有所区别:
FUNC时:
"params":{
"state":"high8"
}
VAL时:
"params":{
"max_val":95.4,
"val":37.5,
"min_val":8.2
}
注意:最后一项不能加"," 逗号,否则开发板解析有问题
云返回结果给应用
Status Code: 200 OK
Content-Type: application/json
json消息格式,与1.5 云下发到设备 一致