群组管理

更新时间:2024-03-14 10:32:14下载pdf

概念介绍

  • 群组是一个或多个设备按照一定规则组成的聚合体。通过对群组的控制,达到群控该群组下设备的目的。

  • 组合群组是指一个或多个不同类型的小群组的聚合体。通过对组合群组的控制,达到群控该组合群组内的小群组的目的,进而控制所有小群组中的设备。

  • 商照 SDK 提供组合群组的创建、编辑和控制等能力,暂不支持对单个小群组进行操作

  • 组合群组附属于区域维度下,没有区域时无法创建组合群组。

    组合群组、(小)群组和设备 三者之间的关系如图所示:

    群组管理

获取能够创建组合群组的设备列表

接口说明

//创建组合群组实例
ILightingGroupPack groupPackInstance = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

//获取能够加入该组合群组的设备列表
groupPackInstance.getAvailableDevices2JoinGroupPack(long areaId, @GroupPackType String topCategory, int limit,
                                    String offsetKey,IThingResultCallback<GroupDeviceListRespBean> callback)

参数说明

参数 说明
projectId 当前项目 ID。
groupPackId 组合群组 ID。创建时,无组合群组 ID 时,可传空字符串。
areaId 当前区域 ID。组合群组附属于区域维度下,没有区域时无法创建组合群组。
topCategory 一级品类 code。当前版本仅支持创建照明品类组合群组,固定传 GroupPackCategory.CATEGORY_LIGHTING
limit 每页请求的设备列表数量。
offsetKey 当前请求的页数,第一页为 1,后续页数依次递增。
callback 设备列表结果回调。

创建组合群组

接口说明

ThingCommercialLightingGroupPack.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 = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

//更新群组中的设备列表
groupPackInstance.updateDevicesByIds(List<String> bindDevIds, List<String> unbindDevIds, final IThingResultCallback<DeviceTaskResultBean> callback);

参数说明

参数 说明
projectId 项目 ID
groupPackId 组合群组 ID
bindDevIds 新添加到当前组合群组的设备 ID 集合
unbindDevIds 从当前组合群组中移除的设备 ID 集合
callback 结果回调,其中,DeviceTaskResultBean#success 为操作成功的设备集合,failed 为操作失败的设备 ID 集合

获取组合群组信息

接口说明

//创建组合群组实例对象
ILightingGroupPack groupPackInstance = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

//获取信息
groupPackInstance.getPackedGroupInfo(IThingResultCallback<GroupPackBean> resultListener);

参数说明

参数 说明
projectId 项目 ID
groupPackId 组合群组 ID
resultListener 结果回调

组合群组重命名

接口说明

//创建组合群组实例对象
ILightingGroupPack groupPackInstance = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

groupPackInstance.renamePackedGroup(String name,IResultCallback callback);

参数说明

参数 说明
projectId 项目 ID
groupPackId 组合群组 ID
name 当前组合群组的新名称
callback 结果回调

获取组合群组中的设备列表

接口说明

//创建组合群组实例对象
ILightingGroupPack groupPackInstance = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

groupPackInstance.getDevicesInGroupPack(int limit,String offsetKey,IThingResultCallback<GroupDeviceListRespBean> callback);

参数说明

参数 说明
projectId 项目 ID
groupPackId 组合群组 ID
limit 每页请求的设备列表数量
offsetKey 当前请求的页数,第一页为 1,后续页数依次递增
callback 结果回调

解散组合群组

接口说明

解散组合群组时,建议先将该组合群组中的所有设备移出。蓝牙 Mesh 设备能够加入的群组的数量是有限制的,超出群组数量后会出现无法再次加入群组的情况。

//创建组合群组实例对象
ILightingGroupPack groupPackInstance = ThingCommercialLightingGroupPack.newGroupPackInstance(long projectId,String groupPackId);

groupPackInstance.dismiss(IResultCallback callback);

参数说明

参数 说明
projectId 项目 ID
groupPackId 组合群组 ID
callback 结果回调

获取组合群组列表

接口说明

ILightingGroupPackManager groupPackManager = ThingCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.getPackedGroupList(long areaId, int limit, String offsetKey, IThingResultCallback<GroupPackListBean> callback);

参数说明

参数 说明
areaId 当前区域 ID
limit 每页请求的组合群组列表数量
offsetKey 当前请求的页数,第一页为 1,后续页数依次递增
callback 结果回调

代码示例

ThingCommercialLightingGroupPack.getGroupPackManager().unRegisterGroupPackListener(listener);

注册组合群组变更监听

接口说明

ILightingGroupPackManager groupPackManager = ThingCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.registerGroupPackListener(ILightingGroupPackListener listener);

参数说明

参数 说明
listener 结果回调

移除组合群组变更监听

接口说明

ILightingGroupPackManager groupPackManager = ThingCommercialLightingGroupPack.getGroupPackManager();
groupPackManager.unRegisterGroupPackListener(ILightingGroupPackListener listener);

参数说明

参数 说明
listener 结果回调