设备控制
当设备私有化配置完成,并可成功访问设备信息页后,即可尝试向设备下发命令,控制设备。
1. 接口调用
接口请求:
{命令}
在设备所在的网络内的任何机器,均可向设备发起控制请求。
请求地址: http://设备IP地址/control
例如:设备IP地址为 192.168.1.123,
那么请求地址为:http://192.168.1.123/control
那么请求地址为:http://192.168.1.123/control
如果配置时,在user信息里,为设备指定了客户端端口号client,则需要在IP地址后指定端口号。
例如:如果为设备指定了客户端端口号“1998”,那么请求地址应为:
http://192.168.1.123:1998/control
例如:如果为设备指定了客户端端口号“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
例如:如果为设备指定了密码“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以及端口。
对设备所在网络的路由进行设置,将外网的请求,映射到设备的IP以及端口。
另一种方式:
在设备所在网络建立一个web服务(接口)来响应外部请求,接口则负责将这些请求转发给设备。
在设备所在网络建立一个web服务(接口)来响应外部请求,接口则负责将这些请求转发给设备。