概述
OneNET物联网MQTT协议之发送命令
请求方式:POST
URL参数
参数名称
格式
是否必须
说明
device_id
string
是
接收该数据的设备ID
qos
int
否
是否需要设备应答,默认为0。 0:最多发送一次,不关心设备是否响应 1:至少发送一次,如果设备收到命令后没有应答,则会在下一次设备登录时若命令在有效期内(有效期定义参见timeout参数)则会重发该命令
timeout
int
否
命令有效时间,默认0。 0:在线命令,若设备在线,下发给设备,若设备离线,直接丢弃 >0: 离线命令,若设备在线,下发给设备,若设备离线,在当前时间加timeout时间内为有效期,有效期内,若设备上线,则下发给设备 单位:秒 有效范围:0~2678400
http body内容
用户自定义数据:json、string、二进制数据(小于64K)
http请求返回参数
参数名称
格式
说明
errno
int
调用错误码,为0表示调用成功
error
string
错误描述,为"succ"表示调用成功
data
json
接口调用成功之后返回的设备相关信息,见data描述表
data描述表
参数名称
格式
说明
cmd_uuid
string
命令id,平台范围内唯一
请求示例1
POST http://api.heclouds.com/cmds?device_id=8029377 HTTP/1.1
返回示例1:成功创建命令
{
"errno": 0,
"error": "succ",
"data": {
"cmd_uuid": "81572aae-fc34-5deb-8f06-ab45d73cb12b"
}
}
返回示例2:设备不在线
{
"errno": 10,
"error": "device not online: 8029377"
}
请求示例2:发送离线命令且需要设备应答
POST http://api.heclouds.com/cmds?device_id=8029377&qos=1&timeout=3600 HTTP/1.1
返回示例
{
"errno": 0,
"error": "succ",
"data": {
"cmd_uuid": "81572aae-fc34-5deb-8f06-ab45d73cb12b"
}
}
Python示例
设备下发命名内容 (字符串下发)
下发命令是自己设备端自定义的命令规则
{
"func":"sethrkeyval",
"key": "S_SET_MUTE", # 消音
# "key": "S_RUN_RESET", # 复位
"value":1
}
代码示例
import json
import requests
device_id = ******
url = "http://api.heclouds.com/cmds?device_id={}".format(device_id)
payload = {
"func":"sethrkeyval",
"key": "S_SET_MUTE", # 消音
# "key": "S_RUN_RESET", # 复位
"value":1
}
headers = {
'api-key': 'mopTrQSq********=',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=json.dumps(payload))
print(response.text)
运行结果
{"errno":0,"data":{"cmd_uuid":"75e76821-e80c-5e22-8ff0-9c46f0452c9e"},"error":"succ"}
最后
以上就是舒服咖啡为你收集整理的物联网服务器mqtt协议命令,OneNET物联网MQTT协议之发送命令的全部内容,希望文章能够帮你解决物联网服务器mqtt协议命令,OneNET物联网MQTT协议之发送命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复