H5开发

国美智能超级APP JS SDK说明文档

JS SDK作用

开发者使用JS SDK可以实现设备状态查询、设备控制、定时任务等功能

JS SDK获取方法

开发者可以在国美智能开发者平台网站上获取到JS SDK的下载链接http://superapp.gomesmart.com

JS SDK引入方法

开发者可以使用以下方式在需要使用JS SDK的页面引入JS SDK
1. 通过script标签引入

<script src="gomesamrt2.0.js"></script>

注:使用script引入请将此标签放在body元素之后

2. 通过RequestJS、SeaJS等模块化加载工具加载

注:请确保页面加载完毕之后在执行require语句

JS SDK使用方法

1. 创建设备实例

    var device = new GS.Device();

2. 查询设备在线状态

    device.setOnlineListener(callback);
  • callback为查询在线状态之后的回调函数,其参数为:

    result:返回数据
    1-在线,0-离线

例如:

    device.setOnlineListener(function(result){
        if(result=="0"){
            //离线逻辑
        }else {
           //在线逻辑
        }
    })

3. 查询设备状态

    device.setOnPostListener(callback)
  • callback为查询在线状态之后的回调函数,其参数为:

    error:错误信息
    data:返回数据

data数据格式

    device.setOnPostListener(function(data){
        console.log(data);
        var as = JSON.parse(data)["as"];
        for (var key in as) {
            if (key == "0") {
            as0 = as[key];
                if(as0=="0")
                {
                //属性0的功能逻辑
                }
                else{

                }
            }
        }
        });

注:指令名和指令值代表的意义请在国美智能平台网站查询

4. 操作wifi、网关设备

    device.opt(as, values);
  • as {Array}:待操作的功能属性
  • values {Array}:待操作的功能属性值

5. 操作蓝牙设备

    device.operateBTDevice(command, keys, values)
  • command:指令名称
    keys {Array}:参数名称
    values {Array}:参数值

6. 添加定时任务

     device.addTimer(as, values, type, period, time, enable, callback, note);
  • as {Array}: 定时任务触发的功能属性
  • values {Array}: 定时任务触发的功能属性对应的值
  • type: 定时任务类型,1为周期性的,2为一次性的
  • period: type=1时必须传入,表示周几执行,传入十进制整数,转换成七位0/1数字表示,如1010101
  • time: 表示任务执行时间点距离零点零分零秒的秒数,比如00:01:01则传入61
  • enable: 定时任务是否开启,1-开启
  • callback: {Function} callback 回调函数
  • note: 定时任务说明、备注

7. 删除定时任务

     device.removeTimer(id, callback);
  • id: 定时任务的id
  • callback: {Function} callback 回调函数

8. 上传设备历史记录

    device.uploadHistoryData(data, callback);
  • callback: {Function} callback 回调函数

9. 修改定时任务

    device.modifyTimer(taskId, as, values, type, period, time, enable, callback);
  • taskId: 定时任务id
  • as {Array}: 定时任务触发的功能属性
  • values {Array}: 定时任务触发的功能属性对应的值
  • type: 定时任务类型,1为周期性的,2为一次性的, 无变化传-1
  • period: type=1时必须传入,表示周几执行,传入十进制整数,转换成七位0/1数字表示,如1010101, 无变化传-1
  • time: 表示任务执行时间点距离零点零分零秒的秒数,比如00:01:01则传入61, 无变化传-1
  • enable: 定时任务是否开启,1-开启, 无变化传-1
  • callback: {Function} callback 回调函数

10. 故障上报

    device.setOnFaultListener(callback);
  • callback为查询在线状态之后的回调函数,其参数为:

    result:返回数据为故障码数组,如设备上报故障码为1001、1002,则result为 [1001,1002]
    根据设备厂商提供的故障码内容,更新页面,给出用户提示

11. 向平台发送http请求

向服务器发送自定义请求,用于app没有开放接口,而服务端存在的特殊功能 一般不使用

    device.req(method, path, data, callback)
  • method: 请求方式,post、get、delete、put
  • path 请求路径,如/device/status,由服务端给出
  • data json格式,传服务器的参数
  • callback: {Function} callback 回调函数,一个参数 result,用于接收请求结果。

12. 数据统计类接口

获取设备的统计数据:如插座一段时间的电量、冰箱开门次数等

    device.getStatisticData(period, dvid, date, type, callback)
  • period: {String} 历史数据的时间区间 {day, week, month, year}
  • dvid: {String} 查询状态的dvid,即设备的某一个功能属性
  • date: {String} 日期,格式2012-12-02
  • type: {String} 统计类型 {sum, average}
  • callback: {Function} callback 回调函数,一个参数 result,用于接收请求结果。