设备相关

设备配网

手机需要连到热点,并且填写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 ""