设备管理

1. 设备配置网络接口格式

void deviceConfig(String action, String params, DeviceConfigCallback callback)

1.1 配网

    action: EasyConfig

    params:
        {
          "ssid":"Broadlink",      // wifi ssid
          "password":"12345678",   // wifi密码
          "timeout": 60,           // 配置超时时间,单位秒
          "pid" : "",              // 配置设备的产品信息,可以为空
          "version": 2             // 配网版本
        }

    callback返回:
        {
          "status":0,
          "deviceInfo": deviceInfo //配置成功上的设备信息
        }

1.2 取消配置

      action: EasyConfigCancel

      params:
        

      callback返回:
        {
          "status":0 ,
          "msg": "success"
        }

1.3 扫描局域网设备

    action: ScanDevices

    params:
            {
                "did" : "",              // 扫描设备信息,如果为空,则返回局域网所有设备
            }

    callback返回:
            {
                "status":0,
                "list": [
                    deviceInfo, //设备信息
                    ...
                ]
            }

2. 设备控制接口格式

String deviceControl(String action, String endPointInfo, String subEndPointInfo, String params, BLLetAsyncRequestCallbacker callbacker)

  1. 如果控制的不是子设备,那 subEndPointInfo 为 nil。endPointInfo 和 subEndPointInfo 格式相同。
  2. 具体控制参数(”params” “vals”)需要从设备的 Profile 中获取得知

2.1 设备脚本Profile查询

  1. 脚本的Profile包含有设备的相关信息,标准的控制指令等。
  2. 由于同一类的产品型号Pid的产品脚本都是相同的,所以同一类的产品只需要下载一份脚本即可。
  3. 如果没有下载该脚本,SDK会默认下载该脚本到指定路径下。
    action: QueryProfile

    params:
        {
            "scriptPath" : "xxxxxx"     // 指定Profile路径 可以为空,则查询默认路径下文件
        }

    返回:
        {
            "status":0,
            "msg":"success"
            "profile": "xxxxxx"         // 获取到的Profile内容
        }

2.2 设备标准控制

    action: DevControl

    params:
      {
        "did":"xx",
        "srv":"",
        "act":"set",                      // 设备控制操作 "set" "get"
        "params":["pwr"],                 // 设备控制参数
        "vals"[{"val":1,"index":0}]       // 设备控制参数对应值
      }

    返回:
      {
        "status":0,
        "msg":"success"
            "data":{
                    "params":["pwr"],
                    "vals"[{"val":1,"index":0}]
                }
      }

2.3 设备透传控制

    action: DevPassthough

    params:
        {
            "data": "xxxxxxx"       // 透传数据 Base64 编码
        }

    返回:
        {
            "status":0,
            "msg":"success",
            "data" : "xxxxxxxx"     // 返回数据 Base64 编码
        }

2.4 设备状态查询

    action: DevStateQuery

    params:
        {
        }

    返回:
        {
            "status":0,
            "msg":"success",
            "state" : 1     // 设备状态
        }

设备状态

状态值 设备状态
0 初始化状态
1 局域网状态
2 远程状态
3 离线状态

2.5 设备历史数据查询

    action: GetDeviceHistory

    params:
        {
            "reportType":"", //数据上报的报表类型
            "startTime":"", //查询起始时间 格式 "yyyy-MM-dd_HH:mm:ss"
            "endTime":"",   //查询结束时间 格式 "yyyy-MM-dd_HH:mm:ss"
            "familyId":"",  //终端所在家庭ID,可以不传
        }

    返回:
        {
            "status":0 , //获取结果
            "msg": "success",
            "data": "xxx" // 数据列表
        }

reportType

参数值 参数说明
fw_currentstate_v1 设备属性(默认报表)
fw_energystatus_v1 通用电工历史数据
fw_energystats_v1 通用电工 电量统计
fw_spminielec_v1 SP Mini 电量统计
fw_spminiswitch_v1 SP Mini 开关记录
fw_s1push_v1 S1 推送数据

2.6 设备固件版本查询

    action: QueryFirmware

    params:
        {
        }

    返回:
        {
            "status":0 , //获取结果
            "msg": "success",
            "version": "xxx" // 设备固件版本号
        }

2.7 设备固件升级

    action: UpgradeFirmware

    params:
        {
            "url": "xxxxxxxxx" //新固件下载地址   
        }

    返回:
        {
            "status":0 ,        //获取结果
            "msg": "success",
        }

注意:

  1. 命令发送结果,并非固件升级结果。
  2. 固件升级结果需要观察设备状态,设备重启,指示灯慢闪重新连接上网络之后则升级成功。

3. 子设备管理接口格式

void subDeviceManagement(String action, String endPointInfo, String params,SubDeviceManagementCallback callback)

3.1 添加子设备

  action: AddSubDevice

  params:
      {
         "pid":"xxxx"    //需要添加的子设备的产品pid
      }

  callback返回:
      {
          "status":0 ,
          "subDeviceInfo": deviceInfo //配置成功上的设备信息
      }

3.2 删除子设备

    action: DelSubDevice

    params:
        {
            "sDid":""            //需要删除的子设备的唯一标识符did
        }
        
    callback返回:
        {
            "status":0
        }

3.3 获取子设备列表

    action: QuerySubDevice

    params:
        {
        }

    callback返回:
        {
            "status": 0,
            "list" : [          // 改次查询到的子设备列表
                deviceInfo,
                ...
            ]
        }