在平台开放的所有接口中,向设备下发命令是最核心、也是最常用的命令。
初次接入设备时,也建议先实现 “向设备下发命令” ,再通过其他接口实现另外的功能。

在向设备下发命令前,请先确定设备已连接网络,并在控制台显示在线。
准备工作
在开始编写代码前,请做好以下准备工作:
1 已注册、并登录平台,并安装“物联网控制台”模块
2 设备已通电,上线,并在控制台可以控制
3 下载 / 安装一个类似Postman的接口请求工具(如无)

4.1 下发命令接口

接口地址:
https://api.yoyoiot.cn/{AppID}/device/control/?sign={sign}&ts={ts}
{AppID} 为您的应用ID(由平台生成)请按准备工作的引导进入控制台,在开发设置页面查看。
{sign} 和 {ts} 的算法,请查看上一节中的描述

参数较长时建议使用POST方式 

名称 必填 类型 说明
device string
设备ID,设备唯一ID(在设备壳体上、控制台均可以找到) 指定多台设备时请用间隔符(,或|)连接 指定多个设备时,不要这些设备属于同一类产品,但必须有相同的指令
order string
命令,可传JSON字符串(推荐)或直接传参 简单命令:可直接GET或POST:设备的属性名称=属性值 复杂或较长的命令:请POST {"order":{命令内容}} ----------------------------------------------------------------------- 在一些业务场景,需要在命令里携带一些特征信息:如订单号等 可在order中增加一个字段extra,如{"power":1,"extra":"T25030700001"} 在本条命令对应的异步消息推送中,会原样返回此特征信息。 extra只支持32位以内的大小写英文字母和数字(a-zA-Z0-9)
需要注意的是,200仅代表平台接收到了合规的设备ID与参数名称,并成功向设备下发命令
而设备可能已离线,或命令内容 / 参数有误,在设备上并没有看到预期效果。
在一些必须要求反馈的场景,请接收云端的消息推送,通过异步消息来标记设备是否成功执行命令。
名称 类型 说明
code int
200 命令下发成功。 501 未指定设备ID,设备ID为一个整型数字,或由“|”或“,"连接的多个数字。设备列表接口中输出了此ID,在本控制台的设备列表中也可以查看。 502 设备不存在或没有可用设备,传入设备ID均不存在。请检查设备ID是否正确,设备是否删除。 503 指定了过多设备,一次最多指定100台设备ID 504 一次指定了多个设备ID,但其中有一些并不可用(不存在、无权限或已删除) 50xx 请见“全局错误代码”

4.2 产品支持命令

命令 名称 内容 说明
线路1
power1
{"power1":"1"}
{"power1":"0"}
线路2
power2
{"power2":"1"}
{"power2":"0"}
线路3
power3
{"power3":"1"}
{"power3":"0"}
线路4
power4
{"power4":"1"}
{"power4":"0"}
线路5
power5
{"power5":"1"}
{"power5":"0"}
线路6
power6
{"power6":"1"}
{"power6":"0"}
线路7
power7
{"power7":"1"}
{"power7":"0"}
线路8
power8
{"power8":"1"}
{"power8":"0"}
线路9
power9
{"power9":"1"}
{"power9":"0"}
线路10
power10
{"power10":"1"}
{"power10":"0"}
线路11
power11
{"power11":"1"}
{"power11":"0"}
线路12
power12
{"power12":"1"}
{"power12":"0"}
批量控制
batch
全开 {"batch":"{"power":1}"}
全关 {"batch":"{"power":0}"}
线路1|3|5|7|9|11开 {"batch":"{"relay":[1,3,5,7,9,11],"power":1}"}
线路1|3|5|7|9|11关 {"batch":"{"relay":[1,3,5,7,9,11],"power":0}"}
线路2|4|6|8|10|12开 {"batch":"{"relay":[2,4,6,8,10,12],"power":1}"}
线路2|4|6|8|10|12关 {"batch":"{"relay":[2,4,6,8,10,12],"power":0}"}
先通后断
point
500毫秒,全部线路 {"point":"{"interval":500}"}
1秒,线路1|3|5|7 {"point":"{"relay":[1,3,5,7],"interval":1000}"}
2秒,线路2|4|6|8 {"point":"{"relay":[2,4,6,8],"interval":2000}"}
3秒,线路9|11 {"point":"{"relay":[9,11],"interval":3000}"}
4秒,线路10|12 {"point":"{"relay":[10,12],"interval":4000}"}
先断后通
reset
500毫秒,全部线路 {"reset":"{"interval":500}"}
1秒,线路1|3|5|7 {"reset":"{"relay":[1,3,5,7],"interval":1000}"}
2秒,线路2|4|6|8 {"reset":"{"relay":[2,4,6,8],"interval":2000}"}
3秒,线路9|11 {"reset":"{"relay":[9,11],"interval":3000}"}
4秒,线路10|12 {"reset":"{"relay":[10,12],"interval":4000}"}

4.3 调用代码示例

编程方式: