更新时间:2022-02-17 05:46:20下载pdf
群组是一个或多个设备按照一定规则的聚合体,通过对群组的控制以达到群控该群组下设备的目的。
组合群组是指一个或多个不同类型的小群组的聚合体,通过对组合群组的控制以达到群控该组合群组内的小群组的目的,进而控制所有小群组中的设备。
商照SDK提供组合群组的创建、编辑、控制等能力,暂不支持对单个小群组进行操作。
组合群组附属于区域维度下,没有区域时无法创建组合群组。
组合群组-(小)群组-设备三者之前的关系如图所示:
接口说明
//创建组合群组实例
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
//获取能够加入该组合群组的设备列表
groupPackInstance.getAvailableDevices2JoinGroupPack(long areaId, @GroupPackType String topCategory, int limit,
String offsetKey,ITuyaResultCallback<GroupDeviceListRespBean> callback)
参数说明
参数 | 说明 |
---|---|
projectId | 当前项目ID |
groupPackId | 组合群组ID,创建时无组合群组ID时,可传空字符串 |
areaId | 当前区域ID,组合群组附属于区域维度下,没有区域时无法创建组合群组。 |
topCategory | 一级品类code,当前版本仅支持创建照明品类组合群组,固定传GroupPackCategory.CATEGORY_LIGHTING |
limit | 每页请求的设备列表数量 |
offsetKey | 当前请求的页数,第一页为1,后续页数依次递增 |
callback | 设备列表结果回调 |
接口说明
TuyaCommercialLightingGroupPack.getGroupPackManager()
.createPackedGroup(long projectId,long areaId,String packedGroupName,List<ComplexDeviceBean> addDevices,
@GroupPackCategory int topCategory,String deviceId,DefaultDeviceTransferListener listener)
参数说明
参数 | 说明 |
---|---|
projectId | 当前项目ID |
areaId | 当前区域ID,组合群组附属于区域维度下,没有区域时无法创建组合群组。 |
packedGroupName | 组合群组名称 |
addDevices | 要加入该组合群组的设备列表,该设备列表为获取能够加入组合群组的设备列表接口返回的数据。 |
topCategory | 一级品类code,当前版本仅支持创建照明品类组合群组,固定传GroupPackCategory.CATEGORY_LIGHTING |
deviceId | 主设备ID,默认传空字符串 |
listener | 创建组合群组的回调,各种回调方法的具体含义可参考区域管理章节中DefaultDeviceTransferListener的介绍 |
接口说明
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
//更新群组中的设备列表
groupPackInstance.updateDevicesByIds(List<String> bindDevIds, List<String> unbindDevIds, final ITuyaResultCallback<DeviceTaskResultBean> callback);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
bindDevIds | 新添加到当前组合群组的设备ID集合 |
unbindDevIds | 从当前组合群组中移除的设备ID集合 |
callback | 结果回调,其中,DeviceTaskResultBean#success为操作成功的设备集合,failed为操作失败的设备ID集合 |
接口说明
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
//获取信息
groupPackInstance.getPackedGroupInfo(ITuyaResultCallback<GroupPackBean> resultListener);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
resultListener | 结果回调 |
接口说明
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
groupPackInstance.renamePackedGroup(String name,IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
name | 当前组合群组新名称 |
callback | 结果回调 |
接口说明
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
groupPackInstance.getDevicesInGroupPack(int limit,String offsetKey,ITuyaResultCallback<GroupDeviceListRespBean> callback);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
limit | 每页请求的设备列表数量 |
offsetKey | 当前请求的页数,第一页为1,后续页数依次递增 |
callback | 结果回调 |
接口说明
解散组合群组时,建议先将该组合群组中的所有设备移出。蓝牙Mesh设备能够加入的群组的数量是有限制的,超出群组数量后会出现无法再次加入群组的情况。
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
groupPackInstance.dismiss(IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
callback | 结果回调 |
接口说明
如非必要,请勿调用该接口,原则上组合群组中的小群组是用户无感知的。
//创建组合群组实例对象
ILightingGroupPack groupPackInstance = TuyaCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);
groupPackInstance.getChildrenGroupBeans(ITuyaResultCallback<List<GroupBean>> callback);
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackId | 组合群组ID |
callback | 结果回调 |
接口说明
ILightingGroupPackManager groupPackManager = TuyaCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.getPackedGroupList(long areaId, int limit, String offsetKey, ITuyaResultCallback<GroupPackListBean> callback);
参数说明
参数 | 说明 |
---|---|
areaId | 当前区域ID |
limit | 每页请求的组合群组列表数量 |
offsetKey | 当前请求的页数,第一页为1,后续页数依次递增 |
callback | 结果回调 |
代码示例
TuyaCommercialLightingGroupPack.getGroupPackManager().unRegisterGroupPackListener(listener);
接口说明
ILightingGroupPackManager groupPackManager = TuyaCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.registerGroupPackListener(ILightingGroupPackListener listener);
参数说明
参数 | 说明 |
---|---|
listener | 结果回调 |
接口说明
ILightingGroupPackManager groupPackManager = TuyaCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.unRegisterGroupPackListener(ILightingGroupPackListener listener);
参数说明
参数 | 说明 |
---|---|
listener | 结果回调 |
组合群组控制是指对该组合群组下的设备进行总控的一种功能,目前支持的区域总控功能为开关
、亮度
、模式
、色温
等,该部分功能必须在请求获取组合群组列表后执行该操作
接口说明
ILightingGroupPackDpsManager groupPackDpsManager = TuyaCommercialLightingGroupPack.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
ILightingGroupPackDpsManager groupPackDpsManager = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getDps()
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
String groupDps = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getDps()
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getSwitchStatus()
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
boolean switchOn = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getSwitchStatus()
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getBrightPercent()
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
int brightnessPercent = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getBrightPercent()
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getTemperaturePercent()
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
int temperaturePercent = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getTemperaturePercent()
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getColorData();
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
String colorData = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getColorData();
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getSceneStatus();
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
LightDefaultSceneType sceneType = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getSceneStatus();
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.getCurrentMode();
参数说明
参数 | 说明 |
---|---|
projectId | 项目ID |
groupPackBean | 组合群组对象 |
示例代码
AreaDpMode groupDpMode = TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
.getCurrentMode();
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishSwitchStatus(boolean status, final IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
status | 开关状态,true:开启 false:关闭 |
callback | 执行结果回调 |
示例代码
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishSwitchStatus(true, new IResultCallback() {
@Override
public void onError(String errorCode, String errorMsg) {
if (callback != null) {
callback.onError(errorCode, errorMsg);
}
}
@Override
public void onSuccess() {
if (callback != null) {
callback.onSuccess();
}
}
});
当前支持三种灯光模式,分别为白光模式、彩光模式和场景模式,分别对应AreaDpMode枚举中的MODE_WHITE_LIGHT
、MDOE_COLORFUL_LIGHT
和MODE_SCENE
。
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishWorkMode(AreaDpMode mode, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
Mode | 要切换的模式的枚举值,包含MODE_WHITE_LIGHT 、MDOE_COLORFUL_LIGHT 和MODE_SCENE |
callback | 执行结果回调 |
示例代码
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
.publishWorkMode(AreaDpMode.MODE_WHITE_LIGHT, new IResultCallback() {
@Override
public void onError(String errorCode, String errorMsg) {
if (callback != null) {
callback.onError(errorCode, errorMsg);
}
}
@Override
public void onSuccess() {
if (callback != null) {
callback.onSuccess();
}
}
});
该操作仅支持在白光模式下进行。
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishTemperaturePercent(int value, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
value | 色温值,取值范围0-1000 |
callback | 执行结果回调 |
示例代码
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
.publishTemperaturePercent(int value, new IResultCallback() {
@Override
public void onError(String errorCode, String errorMsg) {
if (callback != null) {
callback.onError(errorCode, errorMsg);
}
}
@Override
public void onSuccess() {
if (callback != null) {
callback.onSuccess();
}
}
});
该操作仅支持在场景模式下进行。
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishSceneStatus(LightDefaultSceneType type, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
type | 场景类型,包含NONE 、WORK 、MEETING 、SIESTA 、OFF_DUTY ,分表表示无模式、会议模式灯光、工作模式灯光、午休模式灯光和下班模式灯光。 |
callback | 执行结果回调 |
示例代码
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
.publishSceneStatus(LightDefaultSceneType.WORK, new IResultCallback() {
@Override
public void onError(String errorCode, String errorMsg) {
if (callback != null) {
callback.onError(errorCode, errorMsg);
}
}
@Override
public void onSuccess() {
if (callback != null) {
callback.onSuccess();
}
}
});
该操作仅支持在彩光模式下进行。
通过getColorData
获取到彩光模式的数据,该数据为12位的组合数据,组合的规则为hhhhssssvvvv
,其中hhhh表示16进制后的色调值,ssss表示16进制后的饱和度值,vvvv表示16进制后的亮度值,可使用stringToHSV方法将colorData转换成hsv的值,代码如下:
public static float[] stringToHSV(String hsv){
int h = Integer.valueOf(hsv.substring(0,4),16);
int s = Integer.valueOf(hsv.substring(4,8),16);
int v = Integer.valueOf(hsv.substring(8,12),16);
return new float[]{(float)h,(float)s,(float)v};
}
并可通过hsvToString将HSV的值转换成colorData,代码如下:
public static String hsvToString(int[] hsv) {
String h = numToHex4(hsv[0]);
String s = numToHex4(hsv[1]);
String v = numToHex4(hsv[2]);
String hhhhssssvvvv = h + s + v;
return hhhhssssvvvv;
}
public static String numToHex4(int num) {
return String.format("%04x", num);
}
接口说明
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(long projectId,GroupPackBean groupPackBean)
.publishColors(String color, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
color | 颜色值,16位字符串,格式为hhhhssssvvvv |
callback | 执行结果回调 |
示例代码
TuyaCommercialLightingGroupPack
.newGroupPackDpsManager(projectId,groupPackBean)
.publishColors("hhhhssssvvvv", new IResultCallback() {
@Override
public void onError(String errorCode, String errorMsg) {
if (callback != null) {
callback.onError(errorCode, errorMsg);
}
}
@Override
public void onSuccess() {
if (callback != null) {
callback.onSuccess();
}
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈