OneNET物联网MQTT协议之发送命令

OneNET物联网MQTT协议之发送命令

请求方式:POST

URL:http://api.heclouds.com/cmds

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

<this is a command>

返回示例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

<this is a command>

返回示例

{
    "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"}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容