fog2

来自于:开发者立即使用

初始化

用户管理

设备配网

搜索设备

绑定设备

设备管理

权限管理

远程控制

状态码

概述

想通过APP远程控制一个智能设备,您需要FAE的支持,如果WIFI模块(硬件)已经准备就绪,那么您只需要完成以下几步

1、通过Fogcloud平台注册一个APP,得到appid,因为下面需要用到

2、对于一个新用户而言,首先需要注册用户,步骤:获取验证码、验证验证码、完成注册

3、注册完成后,还没有一个可以控制的设备,需要绑定一个设备,绑定之前需要先让设备连上WIFI路由器

1)让设备连上路由器(EasyLink),

2)连上以后找到这个设备的IP(SearchDevice),

3)绑定设备(bindDevice)

4、可以将自己名下的设备分享给别人使用,这些在(ManageDevices)部分

5、远程控制设备(ControlRemoteDevice)

备注

不能同时添加的模块:mqtt

init

初始化,设置服务器域名

init({params})

params

host

  • 类型:字符串, 不可为空
  • 描述:服务器域名,一次性设置http的api域名和mqtt的host

示例代码

const host = {host:"https://v2.fogcloud.io"};
var mico2 = api.require('fog2');
mico2.init(host);

可用性

iOS系统,Android系统

getVerifyCode

获取验证码,填入的内容需要为手机号码或者邮箱

getVerifyCode({params}, callback(ret, err))

params

loginname

  • 类型:字符串, 不可为空
  • 描述:手机号码或邮箱

appid

  • 类型:字符串, 不可为空
  • 描述:在Fogcloud平台注册的APP的id

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Send E-mail successfully.",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "Params error",
    "code": 23013
  },
  "data": {

  }
}

示例代码

var param = {
    loginname: "8800000@qq.com",
    appid: "d8cdf9c6-de8c-11e5-a7-xxxx"
};
mico2.getVerifyCode(param, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

checkVerifyCode

验证获取到的手机验证码

checkVerifyCode({params}, callback(ret, err))

params

loginname

  • 类型:字符串, 不可为空
  • 描述:手机号码或邮箱

vercode

  • 类型:字符串, 不可为空
  • 描述:收到的验证码

appid

  • 类型:字符串, 不可为空
  • 描述:在Fogcloud平台注册的APP的id

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "clientid": "a015e6d6-1d6e-11e6-a739-00163e0204c0"
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "Please use correct phone number or email address",
    "code": 23013
  },
  "data": {

  }
}

示例代码

var param = {
    loginname: "8800000@qq.com",
    vercode: "886526",
    appid: "d8cdf9c6-de8c-11e5-a7-xxxx"
};
mico2.checkVerifyCode(param, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

setPassword

验证码验证成功后,设置初始密码,这一步可以跳过

setPassword({params}, callback(ret, err))

params

password

  • 类型:字符串, 不可为空
  • 描述:用户密码

token

  • 类型:字符串, 不可为空
  • 描述:验证验证码后返回的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Update password successfully.",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "Params error",
    "code": 23013
  },
  "data": {

  }
}

示例代码

var param = {
    password: "123456",
    token: "eyJhVlSV8I..."
};
mico2.setPassword(param, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

login

用户登录

login({params}, callback(ret, err))

params

loginname

  • 类型:字符串, 不可为空
  • 描述:手机号码/邮箱

password

  • 类型:字符串, 不可为空
  • 描述:用户密码

appid

  • 类型:字符串, 不可为空
  • 描述:在Fogcloud平台注册的APP的id

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "clientid": "a015e6d6-1d6e-11e6-a739-00163e0204c0"
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": {
      "non_field_errors": [
        "Password error."
      ]
    },
    "code": 23010
  },
  "data": {

  }
}

示例代码

var mico2 = api.require('fog2');
var param = {
    loginname: "8800000@qq.com",
    password: "123456",
    appid: "d8cdf9c6-de8c-11e5-a7-xxxx"
};
mico2.login(param, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

refreshToken

刷新用户的token,服务器端默认7天内生效,刷新后可以后延7天,失效了就需要重新登录

refreshToken({params}, callback(ret, err))

params

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后服务器端返回的token值,一般保存在localstorege里,以便下一次获取使用

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "clientid": "a015e6d6-1d6e-11e6-a739-00163e0204c0"
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": {
      "non_field_errors": [
        "Parser signature error."
      ]
    },
    "code": 23010
  },
  "data": {

  }
}

示例代码

var param = {
    token: "eyJhVlSV8I..."
};
mico2.refreshToken(param, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

getSSID

获取当前手机连接的WIFI的名称,即ssid

getSSID(callback(ret, err))

callback

ssid

  • 类型:字符串
  • 描述:当前WIFI的名称
{ssid: "mico2"}

示例代码

mico2.getSSID(function(ret, err){
    alert(ret.ssid);
});

可用性

iOS系统,Android系统

startEasyLink

发送数据包(包含ssid和password)给设备,每10ms发一次,连续发10s,再停止10s,继续发,如此反复

startEasyLink({params}, callback(ret, err))

params

ssid

  • 类型:字符串, 不可为空
  • 描述:准备发送的ssid

password

  • 类型:字符串, 不可为空
  • 描述:ssid对应的WIFI密码

runSecond

  • 类型:数字, 不可为空,单位ms
  • 描述:发送持续的时间,到点了就停止发送

sleeptime

  • 类型:数字,可为空,单位ms,默认20ms
  • 描述:配网发包频率,数字越小发包速度越快,越快设备越容易配上网,但是路由器压力越大,建议值为20-200之间

extraData

  • 类型:字符串, 可为空
  • 描述:配网时候发送给设备的标记,以为此参数会影响配网效率,无特殊需求不建议添加,若非得添加,建议不超过20个字节

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{message: "success"}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{code: 9403, message: "It is closed."}

示例代码

var param = {
    ssid: "mico2",
    password: "12345678",
    runSecond: 20000 //20秒后停止发包
};
mico2.startEasyLink(param, function(ret, err) {
    if(ret)
        alert(ret);
    else
        alert(err);
});

可用性

iOS系统,Android系统

stopEasyLink

停止发送数据包

stopEasyLink(callback(ret, err))

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{message: "stop success"}

示例代码

mico2.stopEasyLink(function(ret, err) {
    if(ret)
        alert(ret);
    else
        alert(err);
});

可用性

iOS系统,Android系统

startSearchDevices

设备连上WIFI路由器后,我就可以通过这个接口来发现他。当然,前提是手机和设备必须在同一个网段

startSearchDevices(callback(ret, err))

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "devices": [
    {
      "Name": "EMW3081 Module#E00582",
      "IP": "172.25.14.6",
      "Port": 8002,
      "MAC": "C8:93:46:E0:05:82",
      "Firmware Rev": "fog_3081_ciline@007",
      "FogProductId": "c9aca280-08f3-11e6-a739-00163e0204c0",
      "IsHaveSuperUser": "true",
      "MICO OS Rev": "30810002.049",
      "Model": "EMW3081",
      "Protocol": "fog2.0.1"
    },
    {
      "Name": "MiCOKit 3165#075AEE",
      "IP": "192.168.18.182",
      "Port": 8002,
      "MAC": "D0:BA:E4:07:5A:EE",
      "Firmware Rev": "fog_3165_aca@002",
      "FogProductId": "6486b2d1-0ee9-4647-baa3-78b9cbc778f7",
      "IsEasylinkOK": "true",
      "IsHaveSuperUser": "false",
      "RemainingUserNumber": "3",
      "Hardware Rev": "MK3165_1",
      "MICO OS Rev": "31620002.046",
      "Model": "MiCOKit-3165",
      "Protocol": "com.mxchip.fogcloud",
      "Manufacturer": "MXCHIP Inc.",
      "Seed": "22"
    }
  ]
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{code: 9403, message: "It is closed."}

示例代码

mico2.startSearchDevices(function(ret, err) {
    if (ret)
        alert(JSON.stringify(ret));
    else
        alert(err);
});

可用性

iOS系统,Android系统

stopSearchDevices

停止发现设备,发现了需要激活的设备,主动调用此接口

stopSearchDevices(callback(ret, err))

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{message: "stop success"}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数

示例代码

mico2.stopSearchDevices(function(ret, err) {
    if (ret)
        alert(ret);
    else
        alert(err);
});

可用性

iOS系统,Android系统

bindDevice

通过startSearchDevices获取准备绑定设备的信息,从中提取出IP地址,和deviceid,再通过此接口绑定设备

bindDevice({params}, callback(ret, err))

params

ip

  • 类型:字符串, 不可为空
  • 描述:即将绑定的设备的IP

port

  • 类型:String, 不可为空
  • 描述:设备服务的端口

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Rebind device to this User",
    "code": 0
  },
  "data": {
    "devicepw": "6715",
    "deviceid": "f92009de-168c-11e6-a739-00163e0204c0",
    "devicename": "沁麟靠谱煲"
  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
//设备未被绑定,但是传入参数不对
{
  "meta": {
    "message": "请求参数错误",
    "code": 23010
  },
  "data": {
  }
}

//设备已经被绑定了,8002端口没有打开,所以连接不上
{
  code: 0,
  message: "org.apache.http.conn.HttpHostConnectException: Connection to http://172.25.14.6:8002 refused"
}

示例代码

var param = {
    ip:"192.168.1.10",
    port: "8002",
    token:"eyJhVlSV8I..."
};
mico2.bindDevice(param, function(ret, err) {
    if (ret)
        alert(ret);
    else
        alert(err);
});

可用性

iOS系统,Android系统

unBindDevice

用户不准备使用此设备时候,调用此接口解绑设备,

1)如果是普通用户或者普通管理员,解绑只会解绑自己和设备的绑定关系

2)如果是超级管理员,那么解绑后,所有人均不能控制这个设备了

unBindDevice({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

token

  • 类型:字符串, 不可为空
  • 描述:用户token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Unbind superuser successfully.",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": {
      "81d79316-bb5a-11e5-a739-00163e0204c0": [
        "Ensure this field has no more than 36 characters."
      ]
    },
    "code": 23010
  },
  "data": {
  }
}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    token: "eyJhVlSV8I..."
};
mico2.unBindDevice(param, function(ret, err) {
    if (ret)
        alert(ret);
    else
        alert(err);
});

可用性

iOS系统,Android系统

addSubDevice

添加子设备

addSubDevice({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

productid

  • 类型:字符串, 可为空
  • 描述:设备的产品ID

timeout

  • 类型:数字, 不可为空
  • 描述:网关超时时间

extend

  • 类型:字符串, 可为空
  • 描述:扩展字段

token

  • 类型:字符串, 不可为空
  • 描述:用户token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "success.",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "this device is not gateway.",
    "code": 23022
  },
  "data": {

  }
}

示例代码

var param = {
    deviceid:"11a50060-7ed7-11e6-9baf-00163e120d98",
    timeout:10,
    token:$api.getStorage(_TOKEN)
};
fog2.addSubDevice(param, function(ret, err){
    if(ret)
        console.log(JSON.stringify(ret));
    else
        console.log("err - "+JSON.stringify(err));
});

可用性

iOS系统,Android系统

getDeviceList

获取本账号名下的所有相关设备

getDeviceList({params}, callback(ret, err))

params

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "device list by user",
    "code": 0
  },
  "data": [
    {
      "device_pw": "1486",
      "product_icon": "",
      "device_name": "mxchip-3031",
      "mac": "d0bae45001e5",
      "role": 1,
      "online": false,
      "product_name": "mxchip-3031",
      "device_id": "e5dc25a4-700c-11e6-9baf-00163e120d98"
    },
    {
      "device_pw": "5600",
      "product_icon": "",
      "device_name": "MiCOKit-3165",
      "mac": "D0BAE4077AA4",
      "role": 1,
      "online": true,
      "product_name": "MiCOKit-3165",
      "device_id": "501370ec-86b7-11e6-9baf-00163e120d98"
    }
  ]
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{"code":401,"message":{"detail":"签名解码错误"}}

示例代码

var param = {
    token: "eyJhVlSV8I..."
};
mico2.getDeviceList(param, function(ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

getDeviceInfo

获取设备信息

getDeviceInfo({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:即将绑定的设备的deviceid

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Device info",
    "code": 0
  },
  "data": {
    "alias": "iBake",
    "online": false,
    "devicepw": "7176"
  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "code": 400,
  "message": {
    "meta": {
      "message": "No binding between user and device.",
      "code": 23100
    },
    "data": {
    }
  }
}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    token: "eyJhVlSV8I..."
};
mico2.getDeviceInfo(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

updateDeviceAlias

修改设备名称

updateDeviceAlias({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:即将绑定的设备的deviceid

devicename

  • 类型:字符串, 不可为空
  • 描述:设备名称

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Update alias successfully.",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{"code":9001,"message":"请求参数错误"}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    devicename: "好风尚",
    token: "eyJhVlSV8I..."
};
mico2.updateDeviceAlias(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

getShareVerCode

我是超级管理员或者普通管理员,那么我就能把我名下的设备分享给别人,首先需要获取分享码, 一般用他生成二维码

getShareVerCode({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:即将绑定的设备的deviceid

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Generate captcha successfully.",
    "code": 0
  },
  "data": {
    "vercode": "7ec3977a-95d8-11e6-9baf-00163e120d98"
  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "code": 400,
  "message": {
    "meta": {
      "message": "No binding between user and device.",
      "code": 23100
    },
    "data": {
    }
  }
}

//只有管理员才能分析设备
{
  "code": 9500,
  "message": {
    "meta": {
      "message": "用户对该设备不具有管理员权限",
      "code": 23201
    },
    "data": {
    }
  }
}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    token: "eyJhVlSV8I..."
};
mico2.getShareVerCode(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

addDeviceByVerCode

解析出二维码里的内容,并通过此接口绑定被授权的设备

addDeviceByVerCode({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的id

devicepw

  • 类型:字符串, 不可为空
  • 描述:设备的PW

bindvercode

  • 类型:int, 不可为空
  • 描述:vercode

role

  • 类型:int, 不可为空
  • 描述:3普通用户 2管理员,建议为3

bindingtype

  • 类型:字符串, 不可为空
  • 描述:绑定类型 sa 超级用户 home 家庭用户 guest 访客 other 其他,建议填home

iscallback

  • boolean, 不可为空
  • 描述:是否返回绑定状态,此版本请都设置为false

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Grant successfully.",
    "code": 0
  },
  "data": {
    "id": 30739,
    "devicepw": "2428",
    "bindingtype": "home",
    "role": 2,
    "remark": "",
    "bindingtime": "2016-10-19T17:03:11.540708",
    "validitytime": null,
    "status": 1,
    "deleteflag": false,
    "alias": "iBake",
    "extra": {
    },
    "enduser": 31942,
    "app": "db456b4a-17fc-11e6-a739-00163e0204c0",
    "device": 26
  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "Captcha has expired",
    "code": 23081
  },
  "data": {
  }
}

示例代码

var param = {
    deviceid: 'aa2dde14-0b8d-11e6-a739-00163e0204c0',
    devicepw: '2428',
    bindvercode: '5a0d893e-95da-11e6-9d95-00163e103941',
    role: 3,
    bindingtype: "home",
    token: "eyJhVlSV8I..."
};
mico2.addDeviceByVerCode(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

getMemberList

获取此设备名下的用户,只能看到自己以外的用户

getMemberList({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Get user list successfully.",
    "code": 0
  },
  "data": [
    {
      "realname": "",
      "enduserid": "e32bd592-1bf8-11e6-a739-00163e0204c0",
      "app": "db456b4a-17fc-11e6-a739-00163e0204c0",
      "is_active": true,
      "phone": "",
      "role": 2,
      "nickname": "",
      "email": "wz88roid@126.com"
    }
  ]
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数


示例代码

var param = {
    deviceid: "db456b4a-17fc-xxxx",
    token: "eyJhVlSV8I..."
};
mico2.getMemberList(param, function(ret, err) {
    if (ret) {
        console.log(JSON.stringify(ret));
    } else {
        console.log(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

removeBindRole

删除某人的设备管理权限

removeBindRole({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

enduserid

  • 类型:字符串, 不可为空
  • 描述:用户的id

token

  • 类型:字符串, 不可为空
  • 描述:用户登录后获取的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Remove successfully.",
    "code": 0
  },
  "data": {
    "enduserid": "b861bc58-95da-11e6-9d95-00163e103941"
  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{
  "meta": {
    "message": "no binding between device with removed user",
    "code": 23100
  },
  "data": {

  }
}

示例代码

var enduserid = "";
var param = {
    deviceid: "db456b4a-17fc-11e6-a739-00163e0204",
    enduserid: "e32bd592-1bf8-11e6-a739-00163e0204c0",
    token: "eyJhVlSV8I..."
};
mico2.removeBindRole(param, function(ret, err) {
    if (ret) {
        console.log(JSON.stringify(ret));
    } else {
        console.log(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

startListenDevice

远程监听设备,获取设备上报的数据

startListenDevice({params}, callback(ret, err))

params

host

  • 类型:字符串, 不可为空
  • 描述:云端的host地址

port

  • 类型:字符串, 不可为空
  • 描述:云端的port

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

username

  • 类型:字符串, 不可为空
  • 描述:enduserid

password

  • 类型:字符串, 不可为空
  • 描述:如果设置过密码,password与用户密码相同,如果是用验证码登录,那么password与注册验证码相同

clientid

  • 类型:字符串, 不可为空
  • 描述:enduserid,即用户登录后获取的enduserid

isencrypt

  • 类型:boolean, 可为空
  • 描述:是否通过SSL通道发送数据

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
//这里说明设备连上MQTT服务器了
{
  "status": "Connected",
  "code": 2001
}

//这里说明收到设备上报的数据了
{
  "topic": "d2c/aa2dde14-0b8d-11e6-a739-00163e0204c0/status",
  "payload": {
    "deviceid": "aa2dde14-0b8d-11e6-a739-00163e0204c0",
    "attrSet": [
      "POWER",
      "START"
    ],
    "POWER": "0",
    "START": "0"
  },
  "code": 2000
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数

示例代码

var param = {
    host: "v2.fogcloud.io",
    port: "8443",
    username: "enduserid",
    password: "password",
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    clientid: "enduserid",
    isencrypt: true
};
mico2.startListenDevice(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

sendCommand

发送指令给设备端

sendCommand({params}, callback(ret, err))

params

deviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

devicepw

  • 类型:字符串, 不可为空
  • 描述:设备的devicepw

command

  • 类型:字符串, 不可为空
  • 描述:发送给设备的指令"json"格式的字符串

token

  • 类型:字符串, 不可为空
  • 描述:用户的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Send command successfully",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{"message":"Json Exception"}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    devicepw: "1234",
    command: '{"KG_Bottom":"1"}',
    token: "eyJhVlSV8I..."
};
mico2.sendCommand(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

sendCommandSub

发送指令给子设备端

sendCommandSub({params}, callback(ret, err))

params

subdeviceid

  • 类型:字符串, 不可为空
  • 描述:设备的deviceid

devicepw

  • 类型:字符串, 不可为空
  • 描述:设备的devicepw

command

  • 类型:字符串, 不可为空
  • 描述:发送给设备的指令"json"格式的字符串

cmdtype

  • 类型:字符串, 不可为空
  • 描述:payload格式,目前固定值为“json”,可为空

flag

  • 类型:数字, 可为空
  • 描述:功能启用标识,可为空。(flag采用各bit位是否为1标识是否启用对应的功能,对应关系如下: 0位→是否发送mqtt消息到设备topic(c2d/deviceid/commands) 1位→是否将payload数据存入数据库 默认情况下会发送mqtt消息和存储payload到数据库),如果既要保存进数据库又要发送给设备,那么flag为3

token

  • 类型:字符串, 不可为空
  • 描述:用户的token

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{
  "meta": {
    "message": "Send command successfully",
    "code": 0
  },
  "data": {

  }
}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{"message":"Json Exception"}

示例代码

var param = {
    deviceid: "81d79316-bb5a-11e5-a739-00163e0204c0",
    devicepw: "1234",
    command: '{"KG_Bottom":"1"}',
    token: "eyJhVlSV8I..."
};
mico2.sendCommandSub(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

addDeviceListener

增加订阅的频道

addDeviceListener({params}, callback(ret, err))

params

topic

  • 类型:字符串, 不可为空
  • 描述:需要定义的topic,例"d2c/" + deviceid + "/status"

qos

  • 类型:int, 不可为空
  • 描述:0,建议填0

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{"message":"success"}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
{"message":"success"}

示例代码

var param = {
    topic: "d2c/" + deviceid + "/status",
    qos: 0
};
mico2.addDeviceListener(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

removeDeviceListener

移除某个监听的topic

removeDeviceListener({params}, callback(ret, err))

params

topic

  • 类型:字符串, 不可为空
  • 描述:需要定义的topic

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{"message":"success"}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数
```

##示例代码

```java
var param = {
    topic: "d2c/" + deviceid + "/status"
};
mico2.removeDeviceListener(param, function (ret, err) {
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

stopListenDevice

停止监听设备

stopListenDevice(callback(ret, err))

callback

ret

  • 类型:JSON 对象
  • 描述:接口调用成功后的回调函数
{"message":"success"}

err

  • 类型:JSON 对象
  • 描述:接口调用失败后的回调函数

示例代码

mico2.stopListenDevice(function(ret, err){
    if (ret){
        alert(JSON.stringify(ret));
    }else{
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

状态码摘要

code 描述
0 success
1003 取消
9000 未登陆
9001 请求参数错误
9003 Json Exception

更多的状态码