设备控制

当设备私有化配置完成,并可成功访问设备信息页后,即可尝试向设备下发命令,控制设备。

1. 接口调用

接口请求:
在设备所在的网络内的任何机器,均可向设备发起控制请求。
请求地址: http://设备IP地址/control

例如:设备IP地址为 192.168.1.123,
那么请求地址为:http://192.168.1.123/control

如果配置时,在user信息里,为设备指定了客户端端口号client,则需要在IP地址后指定端口号。
例如:如果为设备指定了客户端端口号“1998”,那么请求地址应为:
http://192.168.1.123:1998/control

如果配置时,在user信息里,为设备指定了密码secret,则需要在请求地址中携带sign参数。
例如:如果为设备指定了密码“123”,那么请求地址应为:
http://192.168.1.123/control?sign=202cb962ac59075b964b07152d234b70
sign=md5(secret),所以sign的值为md5("123")=202cb962ac59075b964b07152d234b70
请求协议:HTTP;请求方式:POST;数据格式为JSON,具体如下:

{命令}
例如:打开一台智能墙壁开关,直接向接口POST数据: {"power":1}

产品支持的命令,请参阅每款产品的产品手册,有详细描述
特别要注意的是:

对于语音播报类产品:设备不支持utf-8字符集,
因此:
在向设备下发播报命令{"play:gbk:16":"content"}时, 需要将 content 转码为gbk或gb2312字符集,再转16进制转码后再发送。
例如:
{"play:gbk:16":"你好"}, “你好”转码后的结果为:c4e3bac3,发送给设备的命令应为: {"play:gbk:16":"c4e3bac3"}

设备返回信息:
请求成功后,设备将返回如下信息。
参数 / 名称 说明
状态码
code
1. 设备正确响应返回200;
2. 设备未正确响应返回>200;
数据
data
1. code==200时,设备在data中返回执行后的消息内容
2. code!=200时:没有data返回
消息
msg
1. code==200时,返回 ok
2. code!=200时:返回相应的异常信息

返回示例:

2. 远程控制

如果需要在设备所在网络外,远程控制设备,可以通过下两种方式实现:
第一种方式:
对设备所在网络的路由进行设置,将外网的请求,映射到设备的IP以及端口。
另一种方式:
在设备所在网络建立一个web服务(接口)来响应外部请求,接口则负责将这些请求转发给设备。