设备相关

设备配网

手机需要连到热点,并且填写wifi的ssid和password来进行设备的快速配网。

增加配网超时时间的配置,在任意处可以修改WifiConfig的对应字段。快联发现超时时间默认为60秒,设置建议不少于20秒。

目前支持的芯片有:乐鑫ESP8266、TI CC3200、汉枫LPB120、庆科WIFI模组。

// ESP8266 和RDA快联超时时间不可设置,内部大概60秒。

/**

​ * AirKiss快联超时时间

​ */

public static int AirKissSmartLinkTime = 60000;

/**

​ * 汉枫快联超时时间

​ */

public static int HfmartLinkTime = 60000;

/**

​ * 庆科mico快联超时时间

​ */

public static int MicoSmartLinkTime =60000;

/**

​ * MTK快联超时时间

​ */

public static int MTKSmartLinkTime = 60000;

/**

​ * 高通快联超时时间

​ */

public static int QCSmartLinkTime = 60000;

/**

​ * TICC3200快联超时时间

​ */

// public static int TISmartLinkTime = 60000;

请求参数:

参数名 类型 说明 备注 必需
ssid String Wifi 的ssid
password String Wifi的password
productId Int 设备的产品Id
ISDKCallback Function 回调函数

例子:以下startXXX方法均有对应的stopXXX方法方便用户停止发现设备。

ESP8266的芯片:
IotCloudSDK.getDeviceManager().startEspSmart(ssid,password,productId, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
TI CC3200的芯片:
IotCloudSDK.getDeviceManager(). startTiSmart(ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
汉枫wifi芯片
IotCloudSDK.getDeviceManager().startHFSmart(ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
庆科MICO芯片
IotCloudSDK.getDeviceManager().startMicoSmart(ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
高通芯片
IotCloudSDK.getDeviceManager().startQCSmart(ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
Rda芯片
IotCloudSDK.getDeviceManager().startRdaSmart (ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});
AirKiss芯片
IotCloudSDK.getDeviceManager().startAirKissSmart (ssid, password, 
new ISDKCallback () {
@Override
public void onSuccess() {
    // 配网成功
}
@Override
public void onError(ErrorMessage errorMessage) { 
    // 配网失败
}
});

返回参数:

参数名 类型 说明 备注 必需
errorCode String 错误码 参照错误码
errMsg String 错误消息 参照错误码信息
cloudDevice CloudDevice 返回成功信息 返回success或者需求数据
参数名 类型 说明 备注 必需
iotId String 设备的iot_id 从getIotId()获取
productId Int 产品id
productName String 产品名称
iotToken String 设备的token 从getIotToken()获取
deviceMac String 设备MAC
status Int 预留字段 目前没有使用

AP设备配网

​ 用户把设备当做AP的时候可以使用此方法配网

请求参数:

参数名 类型 说明 备注 必需
ssid String 路由器ssid 要连接的路由器名称
password String 路由器密码
timeout int 超时时间 毫秒
// 对AP设备发送目标路由器的ssid和密码
APNetWorkController netWorkController = 
new APNetWorkController(mView.getActivityContext().getApplicationContext());
        netWorkController.start(ssid, password, timeout, new APNetWorkController.Listener() {
            @Override
            public void onSuccess() {
                // 可以执行发现设备的逻辑了
            }

            @Override
            public void onError(ErrorMessage errorMessage) {
                // 失败
            }
        });

发现设备

用户在设备配网成功后进行执行局域网发现,设备会返回自身的数据iotId、iotToken和mac给手机端,手机端保存之后可以对该设备进行处理。

请求参数:

参数名 类型 说明 备注 必需
productIds List 产品id
timeout int 发现超时时间 单位:毫秒(ms)
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().startSearchDevice(productIdlist, timeout,
new DeviceFoundListener() {
    @Override
    public void onError(ErrorMessage errorMessage) {
}
    @Override
    public void findDevice(CloudDevice device) {
        // 发现到设备了,局域网中有多个设备的时候会持续回调
    }
    @Override
public void noFindDevice() {
// 结束,或者没有发现设备
    }
});

绑定设备


用户需要与发现的设备进行绑定,能够控制设备以及收发设备的信息。一个设备只能被一个用户绑定,不允许多个用户绑定一个设备。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().bindDevice(device
new Icallback<String>() {
@Override
public void onSucess(String result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

result参数

参数名 类型 说明 备注 必需
result String 设备显示名称

解绑设备


用户需要与已经绑定的设备进行解绑。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().unbindDevice(device, new ISDKCallback() {
@Override
public void onSucess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取设备列表

手机端获取已经绑定设备和被分享的设备信息。

请求参数:

参数名 类型 说明 备注 必需
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceList(

new Icallback>(){

@Override

public void onSucess(List result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

传入true会拉取设备功能点最新数据

见下面dataMap字段

getDeviceList(true, new Icallback>());

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表参数

参数名 类型 说明 备注 必需
iotId String 设备的iot_id getIotId()获取
iotToken String 设备的token getIotToken()获取
deviceMac String 设备的mac
displayName String 设备的显示名称
online boolean 设备是否在线
productId Int 产品id
flag Int 设备是否是分
享设备
0表示不是分享设备,
1表示该设备是分享设备
shared String 分享者姓名或
者手机号
flag为0,该字段为空,flag为1,
该字段为分享者姓名或者手机号
fUserId Int 分享者的用户id
moduleVersion String 当前设备固件
版本号
subIotId String 子设备的id 通过getSubIotId()获取,
当前设备如果是子设备,
本字段就会有值,可以通过
isSubDevice()判断当前
CloudDevice是否是子设备
subsetId String 子设备的用户
协商id
通过getSubsetId()获取,
由网关设备等上传,
用户需要与设备端开发人员协商
subsetName String 子设备的用户
协商名称
通过getSubsetName()获取,
由网关设备等上传,
用户需要与设备端开发人员协商
subsetType String 子设备的用户
协商类型
通过getSubsetType()获取,
由网关设备等上传,
用户需要与设备端开发人员协商
rId int 房间id 设备所属房间id
roomName String 房间名称 设备所属房间名称
gid int 分组id 设备所属分组id
groupName String 分组名称 设备所属分组名称
fId int 家庭id 设备所属家庭id
familyName String 家庭名称 设备所属家庭名称
dataMap Map 设备最新功
能点数据
以键值对的形式
对于二进制数据这里是
base64字符串
可以使用
SDKUtils.base64ToByteArray
方法转换成二进制数组

获取单个设备的详细信息

手机端获取指定设备的详细信息。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 设备
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceInfo(device, new ISDKCallback(){

@Override

public void onSucess(DeviceInfo result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result DeviceInfo 返回成功信息 返回success或者需求数据

result 参数

参数名 类型 说明 备注 必需
iotId String 设备的iot_id 通过
deviceMac String 设备的mac
deviceType String 设备的类型 如:手环、户外、车载等
wifiType String wifi模组的类型 如:Esp8266、CC3200等
displayName String 设备的显示名称
online boolean 设备是否在线
isLinkage boolean 设备是否可以联动
dataPointNum Int 该设备的功能点个数
deviceIp String 设备的ip地址 设备联网的出口ip
ipLocation String 设备的经纬度

获取产品上报功能点

手机查询产品官网上创建的可上报功能点。

请求参数:

参数名 类型 说明 备注 必需
productId int 产品id
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getReportedDP(productId,

new ISDKCallbackList() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
id int 功能点的id
unit int 功能点数据类型 0 int 1 bool 2 enum 3 string
4 float 5 error 错误类型(字符串)
6 binary 二进制类型
updateTime Time 创建时间 13位时间戳
name String 功能点名称
value String 功能点定义的值 多个数据之前逗号分隔
isdelete int 该功能点是否删除 0 删除,1未删除
type int 功能点类型 1可上报可下发, 2上报, 3下发
key String 功能点变量
productId int 功能点的产品id

获取产品下发功能点

手机查询产品官网上创建的可下发功能点。

请求参数:

参数名 类型 说明 备注 必需
productId int 产品id
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getIssuedDP(productId, new Icallback>() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
id int 功能点的id
unit int 功能点数据类型 0 int 1 bool 2 enum 3 string
4 float 5 error 错误类型(字符串)
6 binary 二进制类型
updateTime Time 创建时间 13位时间戳
name String 功能点名称
value String 功能点的值 多个数据之前逗号分隔
isdelete int 该功能点是否删除 0 删除,1未删除
type int 功能点类型 1可上报可下发, 2上报, 3下发
key String 功能点变量
productId int 功能点的产品id

获取设备某个功能点上传单条数据

手机端查询某绑定设备的最新一条数据。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
key String 功能点的变量 该产品的上报功能点
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceData(device, key, new Icallback(){

@Override

public void onSucess(DeviceData result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result DeviceData 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
time String 时间戳 Unix时间戳
value String 数值

获取设备某个功能点上传多条数据

手机端查询某绑定设备当天的指定数目的数据。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
key String 功能点的变量 该产品的上报功能点
count Int 获取多少条数据
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceListData(device, key, count,

new Icallback>() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
time String 时间戳 Unix时间戳
value String 数值

修改设备信息

手机修改已经绑定的某设备的信息,修改设备的显示名称。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备的
displayName String 设备显示名
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().modifyDeviceName(device, displayName,

new ISDKCallback() {

@Override

public void onSucess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

检查设备固件版本

检查设备固件版本是否需要升级。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
Icallback Function 回调函数

例子:

IotCloudSDK.getOTAManager().checkDeviceOTA(device, new Icallback() {

@Override

public void onSucess(OTAInfo result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result OTAInfo hasNewVersion返回
true的时候说明有新
的版本可升级
otaDesc 字段表示OTA
更新说明,可能为空

获取设备某个功能点所有数据列表

获取设备历史数据(数据会一分钟进行一次合并)

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
key String 设备功能点
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getHistoryDeviceDataList(device,key,

new Icallback>() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
time String 时间戳 Unix时间戳
value String 数值

获取设备所有功能点最新数据

获取设备所有功能点最新数据,如果在网页配置的功能点是可上报的则只能获取到当天最新的,如果当天设备没有上传最新的数值,则为空,如果需要保存某些功能点最新的数据,需要将功能点定义成可上报可下发的。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getAllLatestData(device,

new Icallback>() {

@Override

public void onSucess(Map result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result Map 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
result Map 返回指定条数的数据 数据以key value的形式返回,如果数据点是
二进制的,则返回的value是base64字符串,
可以使用SDK提供的SDKUtils类转换成byte数组

获取设备所在天气和地理位置

获取设备所在天气和地理位置。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定设备的iotId
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceWeatherAndLocation(device,

new Icallback() {

@Override

public void onSucess(CloudLocationAndWeather result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result CloudLocationAndWeather 返回成功信息 返回success或者需求数据
参数名 类型 说明 备注 必需
city String
country String 国家
operator String 区/街道
province String
humidity String 湿度
pm25 String 可吸入颗粒物
skycon String 天气概况
temperature String 温度

获取设备某个功能点用户操作数据

获取操作该设备指定功能点的数据,包含操作的用户昵称、操作的数据、时间戳。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
dpKey String 设备的功能点
count int 数据列表的数量
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getUserOperatorList(device, dpKey,

​ count, new Icallback>() {

​ @Override

​ public void onSuccess(List result) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
userInfo String 用户的昵称或手机号或邮箱 优先返回的是昵称,按先后顺序的
优先级能够获取到什么数据就返回什么数据
timeStamp String Unix时间戳
dataValue String 用户操作的数据

获取设备某个功能点设备操作数据

获取设备操作的数据,一般是设备物理按键操作的功能点、操作的数据、时间戳,这个功能点需要。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
dpKey String 设备的功能点
count int 数据列表的数量
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceOperatorList(device, dpKey,

​ count, new Icallback>() {

​ @Override

​ public void onSuccess(List result) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
userInfo String 这里数据一直都是空 只是复用了用户操作行为实体类
timeStamp String Unix时间戳
dataValue String 用户操作的数据

添加定时任务

为设备配置定时任务。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
time Int Unix时间戳
circle Int 星期重复 使用Week类,可以使用 Week.MON
& Week.WED 来实现多个星期的重复
Week.NULL是不按星期重复只执行一次。
dpKey String 功能点变量名
dpValue String 功能点的值
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().addTimer(device, time, circle, dpKey, dpValue, dpKey,

new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改定时任务

为设备修改定时任务。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
id Int 定时任务的id
time Int Unix时间戳
circle Int 星期重复 使用Week类,可以使用 Week.MON
& Week.WED 来实现多个星期的重复
dpKey String 功能点变量名
dpValue String 功能点的值
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().updateTimer(device, time, circle, dpKey, dpValue, dpKey,

​ count, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取定时任务列表

获取定时任务列表。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getTimerList(device, new Icallback> () {

​ @Override

​ public void onSuccess(List list) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result Timer 定时任务

result列表里的参数:

参数名 类型 说明 备注 必需
id Int 定时任务id
iotId String 设备id
time Int Unix时间戳
dpId Int 功能点的id
dpKey String 功能点的key
dpValue String 功能点的值
status Int 状态,0关闭1开启

Tiemr.getWeek()可以获取重复的星期列表List

打开定时任务

打开关闭的定时任务。

请求参数:

参数名 类型 说明 备注 必需
timerId Int 定时任务的id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().openTimer(timerId, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

关闭定时任务

关闭打开的定时任务。

请求参数:

参数名 类型 说明 备注 必需
timerId Int 定时任务的id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().closeTimer(timerId, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除定时任务

删除定时任务。

请求参数:

参数名 类型 说明 备注 必需
timerId Int 定时任务的id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().deleteTimer(timerId, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

添加延时任务

为设备配置延时任务。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
time Int Unix时间戳 要延时的时刻
timeInterval Int 要延时的秒钟数 延时多久
dpKey String 功能点变量名
dpValue String 功能点的值
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().addDelayTime(device, time, timeInterval, dpKey, dpValue,

dpKey, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

修改延时任务

修改设备的延时任务。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
id Int 定时任务的id
time Int Unix时间戳
timeInterval Int 要延时的秒钟数 延时多久
dpKey String 功能点变量名
dpValue String 功能点的值
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().updateDelayTime(device, time, timeInterval, dpKey, dpValue, dpKey, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取延时任务列表

获取延时任务列表。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDelayTimeList(device,

new Icallback>() {

​ @Override

​ public void onSuccess(List list) {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result DelayTime 定时任务

result列表里的参数:

参数名 类型 说明 备注 必需
id Int 定时任务id
iotId String 设备id
time Int Unix时间戳
dpId Int 功能点的id
dpKey String 功能点的key
dpValue String 功能点的值
timeInterval Int 延时的秒钟数
status Int 状态,0关闭1开启

关闭延时任务

关闭延时任务。

请求参数:

参数名 类型 说明 备注 必需
delayTimeId Int 延时任务的id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().closeDelayTime(timerId, new ISDKCallback () {

​ @Override

​ public void onSuccess() {

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

​ });

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除延时任务

删除延时任务。

请求参数:

参数名 类型 说明 备注 必需
delayTimeId Int 定时任务的id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().deleteDelayTime(timerId, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

删除子设备

删除子设备。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 子设备
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().delSubDevice(device, new ISDKCallback () {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

通过id获取设备和子设备

请求参数:

参数名 类型 说明 备注 必需
iotId String 设备id
subIotId String 子设备id
Icallback Function 回调函数

例子:

获取设备信息,信息同设备列表中的CloudDevice
IotCloudSDK.getDeviceManager().getDevice(iotId, new Icallback<CloudDevice> () {
@Override
public void onSuccess(CloudDevice result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

获取子设备设备信息,信息同设备列表中的CloudDevice
IotCloudSDK.getDeviceManager().getDevice(iotId, subIotId, new Icallback<CloudDevice> () {
@Override
public void onSuccess(CloudDevice result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取多个数据点的汇总数据

从最近开始往前倒,获取多个数据点的汇总数据,以时间为维度进行合并,可能会确实某些时间或者某些时间下对应key的数据

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 设备
keys List 设备功能点
count int 数量
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getCombinedDeviceData(device, keys, count, 
new Icallback<List<CombinedDeviceData>> () {
@Override
public void onSuccess(List<CombinedDeviceData> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List

result参数说明

参数名 类型 说明 备注 必需
tt String UNIX时间戳
dpv List 键值对list 设备数据点的key和对应的值
KeyAndValue KeyAndValue 键值对 k表示功能点的变量名 v表示功能点的值

获取多个数据点的以天为单位合并的数据集合

获取时间范围内的多个key的时间和值的集合,以天为维度合并数据,取平均值。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 设备
keys List 设备功能点
startYear int 起始年份
startMonth int 起始月份
startDay int 起始日
endYear int 结束年份
endMonth int 结束月份
endDay int 结束日
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceDataByDate(device, keys, startYear, 
startMonth, startDay, endYear, endMonth, endDay,
new Icallback<Map<String, List<TimeAndValue>>> () {
@Override
public void onSuccess(Map<String, List<TimeAndValue>> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result Map>

result参数说明

Map> 的 key 是设备功能点的变量名

TimeAndValue参数说明参数:

参数名 类型 说明 备注 必需
t String UNIX时间戳
v String 对应的值

获取多个数据点的以月为单位合并的数据集合

获取时间范围内的多个key的时间和值的集合,以月为维度合并数据,取平均值。

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 设备
keys List 设备功能点
startYear int 起始年份
startMonth int 起始月份
endYear int 结束年份
endMonth int 结束月份
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getDeviceDataByMonth(device, keys, startYear, startMonth, endYear, endMonth, 
new Icallback<Map<String, List<TimeAndValue>>> () {
@Override
public void onSuccess(Map<String, List<TimeAndValue>> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result Map>

result参数说明

Map> 的 key 是设备功能点的变量名

TimeAndValue参数说明参数:

参数名 类型 说明 备注 必需
t String UNIX时间戳
v String 对应的值

通过产品id获取产品信息

通过产品id获取产品信息,返回结果同获取产品信息列表

请求参数:

参数名 类型 说明 备注 必需
productId int 产品id
Icallback Function 回调函数

例子:

IotCloudSDK.getDeviceManager().getProductInfo(productId, 
new Icallback<Product> () {
@Override
public void onSuccess(Product result) {                  
}
@Override
public void onError(ErrorMessage errorMessage) {                   
}
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result Product

根据日期获取设备某个功能点所有数据列表

获取设备历史数据(数据会一分钟进行一次合并)

请求参数:

参数名 类型 说明 备注 必需
device CloudDevice 绑定的设备
key String 设备功能点
startDate TimeData 开始时间配置
endDate TimeData 结束时间配置
callback Function 回调函数

例子:

TimeData startDate = new TimeData(2019, 1, 1);

TimeData endDate = new TimeData(2019, 1, 30);

IotCloudSDK.getDeviceManager().getAllDeviceDataByDate(device,key,startDate,endDate,

new Icallback>() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
time String 时间戳 Unix时间戳
value String 数值

通过MAC地址查询设备绑定信息

通过MAC地址查询设备绑定信息

请求参数:

参数名 类型 说明 备注 必需
macList List 设备的mac地址信息列表
callback Function 回调函数

例子:

BindDeviceReqInfo bindDeviceReqInfo =

new BindDeviceReqInfo(“00:00:00:00:00:00”); // 传入设备对应的mac地址

IotCloudSDK.getDeviceManager().getDeviceBindInfoByMac(macList,

new ICallback>() {

@Override

public void onSucess(List result ) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result List 返回成功信息 返回success或者需求数据

result列表里的参数:

参数名 类型 说明 备注 必需
mac String 设备的mac地址
displayName String 设备的名称
bindStatus int 绑定状态 0:未绑定,1:被自己绑定,2:被其他人绑定
bindUserName String 绑定用户昵称
bindUserTel String 绑定用户手机号
bindUserMail String 绑定用户邮箱

通知音响盒子设备列表同步

设备解绑的时候,第三方音箱盒子的设备列表是无法同步的,需要调用该接口进行同步设备列表

请求参数:

参数名 类型 说明 备注 必需
deviceMac String 设备mac
UUID String 唯一标识 代表着: 亚马逊的endpointId
天猫的skill_id 谷歌的agentUserId

例子:

IotCloudSDK.getDeviceManager().getNotifyAudioDevice(deviceMac, UUID, new ICallback<String>() {
@Override
public void onSuccess(String result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
 }
});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码
result String 返回成功信息 返回success

长连接相关

MQTT消息发送和接收

​ 消息接收的配置

消息接受采用广播的形式,用户使用静态或者动态的形式注册广播接收者。

例子:

动态注册原理相同,action和permission与静态广播中的一致即可。

例子:

public class MqttBroadcast extends BroadcastReceiver {

​ @Override

public void onReceive(Context context, Intent intent) {

​ DeviceController.onReceive(intent);

}

}

消息发送的配置

消息发送一般只用DeviceController类

DeviceController deviceController =

new DeviceController(CloudDevice device); // 可以通过CloudDevice初始化

构造一个DeviceController后可以多次使用,下发多次命令或数据。

注意在页面退出(Activity onDestroy)或者不使用DeviceController的时候需要调用

deviceController.onDestroy();

来回收内存,避免内存泄漏。

全局消息接收

全局消息目前包括收到设备分享消息、收到设备新固件版本消息、收到错误消息。

DeviceController.bindGlobalMessage(new DeviceController.GlobalListener() {

​ @Override

​ public void onMessage(CloudMessage cloudMessage) {

​ if (cloudMessage.getErrorMessage().getCode()

== CommonError.MQTT_MESSAGE_SUCCESS) {

​ // success

switch (cloudMessage.getType()) {

// 有设备需要手动OTA升级

​ case CloudMessageType.TYPE_OTA_REV:

break;

// 有分享消息,请到分享消息列表查看

​ case CloudMessageType.TYPE_SHARE_REV:

​ int shareType = ShareMessageType.getShareType(cloudMessage);

​ if (shareType == ShareMessageType.TYPE_DEVICE) {

​ // 设备分享消息

​ } else if (shareType == ShareMessageType.TYPE_FAMILY) {

​ // 家庭分享消息

​ }

​ break;

​ }

​ } else {

​ // error错误信息

​ }

​ }

​ });

CloudMessage返回参数:

参数名 类型 说明 备注 必需
data String 数据
iotId String 设备id,可能为空
productId int 产品id,可能为空
getErrorMessage() ErrorMessage 获取错误信息
getType() int 消息类型

其他消息接收

DeviceController deviceController =

new DeviceController(CloudDevice device);

透传字符串(Push)消息

deviceController.setPushListener(new DeviceController.PushListener() {

@Override

public void onPush(CloudMessage cloudMessage) {

if (!TextUtils.isEmpty(cloudMessage.data)) {

​ cloudMessage.data // 设备透传上来的字符串数据

}

});

透传二进制数据

deviceController.setBinaryPushListener(new DeviceController.BinaryPushListener() {

@Override

public void onBinaryPush(CloudMessage cloudMessage) {

if (!TextUtils.isEmpty(cloudMessage.binaryData)) {

​ cloudMessage.binaryData // 设备透传上来的字符串数据

}

});

设备功能点更新消息

deviceController.setDPUPdateListener(new DeviceController.DPUpdateListener() {

​ @Override

​ public void onDPUpdate(List list) {

​ // 设备功能点更新(状态改变)

​ }

​ });

设备错误信息

deviceController.setErrorListener(new DeviceController.ErrorListener() {

​ @Override

​ public void onError(CloudMessage cloudMessage) {

​ // 设备的错误信息,例如设备不在线

​ cloudMessage.getErrorMessage();

​ }

​ });

下发常规命令

手机端下发命令控制设备,比如让设备关闭、开启等。

DeviceController deviceController =

new DeviceController(CloudDevice device);

构造设备功能点数据

MessageData.Builder builder = new MessageData.Builder();

builder.put(key, value);

// 注意DeviceController回收

deviceController.sendCommand(builder, new ISDKCallback() {

@Override

public void onSuccess() {

​ Log.d(“TAG”, “command发送成功”);

}

@Override

public void onError(ErrorMessage errorMessage) {

​ Log.d(“TAG”, “command发送失败” + errorMessage.toString());

}

});

手机透传(push)消息到设备

手机向设备发送消息。

DeviceController deviceController =

new DeviceController(CloudDevice device);

// 发送字符串

DeviceController.push(“this is phone push message”); // 注意DeviceController回收

// 发送二进制数据

DeviceController.pushBinary(byte[] array); // 注意DeviceController回收

发送分享消息

分享者分享设备和被分享者接收消息都需要调用该接口通知对方消息。

DeviceController deviceController =

​ // 产品id必填项,当发送家庭分享消息时可以取任意产品id

​ new DeviceController(mDeviceSharingBean.productId,

// 可以通过产品id和设备iotId初始化,当发送家庭分享消息时iotId可填入”” 空字符串

​ mDeviceSharingBean.iotId);

​ deviceController.sendShare(tid, type); // 对方用户的id

// 不用的时候或者Activity退出的时候需要回收

​ deviceController.onDestroy();

sendShare的type字段使用ShareMessageType.TYPE_XXX来设置分享消息类型

目前支持TYPE_DEVICE // 设备分享消息

​ TYPE_FAMILY // 家庭分享消息

MQTT连接状态

获取MQTT连接状态。

请求参数:

参数名 类型 说明 备注 必需
IconnectionStatusListener Function 回调函数

例子:

IotCloudSDK.setConnectionStatusListener(new IconnectionStatusListener() {

@Override

public void onConnectionStatus(int result) {

}

});

返回参数:

参数名 类型 说明 备注 必需
result int 连接状态 1 已连接未订阅 2 已连接已订阅 3 未连接

设备手动OTA升级

查询可以OTA升级的设备

请求参数:

参数名 类型 说明 备注 必需
ICallback Function 回调函数

例子:

IotCloudSDK.getOTAManager().getAllOTAUpdateInfo(ICallback>(){

​ @Override

​ public void onSuccess(OTAUpdateInfo result) {

// 这里返回的数据都可以调用获取单个设备升级状态和升级进度

​ }

​ @Override

​ public void onError(ErrorMessage errorMessage) {

​ }

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

result:

参数名 类型 说明 备注 必需
productId int 产品id
name String OTA升级名称,管理平台上传ota
升级包的时候可以填写
mcuVersion String 版本号 要升级的版本
mcuSizeValue long 包的大小,可以上传两个mcu
mcuSize2Value long 包的大小,可以上传两个mcu
description String OTA升级描述
iotId String 设备唯一id
deviceMac String 设备mac地址
deviceName String 设备名称

向设备主动发送检查升级指令

发送检查升级指令。

请求参数:

参数名 类型 说明 备注 必需
iotId String 设备唯一id
ISDKCallback Function 回调函数

例子:

IotCloudSDK.getOTAManager().doDeviceCheckOTA(iotId, new ISDKCallback() {

@Override

public void onSuccess() {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

获取单个设备升级状态和升级进度

获取设备的升级状态和升级进度。

请求参数:

参数名 类型 说明 备注 必需
iotId String 设备唯一id
mcuVersion String 要升级的目标版本号
ICallback Function 回调函数

例子:

IotCloudSDK.getOTAManager().cancelLogout(iotId, mcuVersion,

new ICallback() {

@Override

public void onSuccess(OTAUpdateProgress result) {

}

@Override

public void onError(ErrorMessage errorMessage) {

}

});

返回参数:

参数名 类型 说明 备注 必需
errorMessage ErrorMessage 错误码 参照错误码

result:

参数名 类型 说明 备注 必需
status int 状态包含5种: 0未下载
可以向设备发送检查升级指令
1正在下载 2已下载
3更新完成 4更新失败 5正在升级
mcuSizeValue long 包的大小,可以上传两个mcu
mcuSize2Value long 包的大小,可以上传两个mcu
iotId String 设备唯一id
totalSizeValue long 总共大小 下载完成后会变为0,即状态2的时候
downloadSizeValue long 当前下载的大小 下载完成后会变为0,即状态2的时候
Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""