更新时间:2023-05-25 06:23:50
设备群组由同一种类型设备组成,是一系列设备的集合。常见的有 Wi-Fi 设备群组和 Zigbee 设备群组。涂鸦提供群组管理能力,您可以创建群组、修改群组名称、管理群组设备、通过群组管理和控制多个设备、解散群组。
接口说明
ThingHomeSdk.newHomeInstance(homeId).queryDeviceListToAddGroup(groupId, productId,
new IThingResultCallback<List<GroupDeviceBean>>() {
@Override
public void onSuccess(List<GroupDeviceBean> arrayList) {
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
groupId | 群组 ID
|
productId | 入口设备的产品 ID(即 Product ID) |
接口说明
ThingHomeSdk.newHomeInstance(mHomeId).createGroup(productId, name, selectedDeviceIds,
new IThingResultCallback<Long>() {
@Override
public void onSuccess(Long groupId) {
//返回 groupId
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
productId | 选择创建群组的设备的 PID(即 Product ID) |
name | 新群组的名称 |
selectedDeviceIds | 选择的设备的 deviceId 列表 |
在群组中添加或者移除设备后,您需要将交互的结果,同步更新保存到云端。
接口说明
ThingHomeSdk.newGroupInstance(groupId).updateDeviceList(deviceIds,
new IResultCallback() {
@Override
public void onError(String s, String s1) {
}
@Override
public void onSuccess() {
}
});
参数说明
参数 | 说明 |
---|---|
groupId | 群组 ID |
deviceIds | 新增或者移除指定的设备的 ID 列表数组 |
Zigbee 群组的创建支持 Zigbee 子设备、智能网关 Pro 子设备、Sub-G 子设备等,这些其他接入协议可以复用 Zigbee 协议的设备来创建群组。
接口说明
ThingHomeSdk.newHomeInstance(homeId).queryZigbeeDeviceListToAddGroup(groupId, productId, meshId,
new IThingResultCallback<List<GroupDeviceBean>>() {
@Override
public void onSuccess(List<GroupDeviceBean> arrayList) {
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
groupId | 群组 ID
|
productId | 选择入口设备的 PID(即 Product ID) |
meshId | 选择群组的设备的网关 ID,可以通过 deviceBean.getMeshId() 查询 |
接口说明
ThingHomeSdk.newHomeInstance(homeId).createZigbeeGroup(productId, meshId, name,
new IThingResultCallback<CloudZigbeeGroupCreateBean>() {
@Override
public void onSuccess(CloudZigbeeGroupCreateBean cloudZigbeeGroupCreateBean) {
//输出结果
long mGroupId = cloudZigbeeGroupCreateBean.getGroupId();
String mGId = cloudZigbeeGroupCreateBean.getLocalId();
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
productId | 选择创建群组的设备的 PID(即 Product ID) |
meshId | 选择创建群组的设备的网关 ID,可以通过 deviceBean.getMeshId() 查询 |
name | 新群组的名称 |
添加新设备到群组的过程,是主要与固件交互,写入群组设备到网关。
接口说明
mIThingZigbeeGroup.addDeviceToGroup(meshId, selectedDeviceIds, gid,
new IThingResultCallback<ZigbeeGroupCreateResultBean>() {
@Override
public void onSuccess(ZigbeeGroupCreateResultBean zigbeeGroupCreateResultBean) {
if (zigbeeGroupCreateResultBean != null) {
//新增设备成功的列表
if (zigbeeGroupCreateResultBean.getSuccess() != null && zigbeeGroupCreateResultBean.getSuccess().size() > 0) {
List<String> mAddSuccessDeviceIds = new ArrayList<>();
mAddSuccessDeviceIds.addAll(zigbeeGroupCreateResultBean.getSuccess());
}
//新增设备失败的列表
if (zigbeeGroupCreateResultBean.getFailure() != null && zigbeeGroupCreateResultBean.getFailure().size() > 0) {
List<String>mAddFailDeviceIds = new ArrayList<>();
mAddFailDeviceIds.addAll(zigbeeGroupCreateResultBean.getFailure());
}
//选择合适的时机调用 [更新保存群组关系]
//ThingHomeSdk.newZigbeeGroupInstance(groupId).updateGroupDeviceList()
}
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
meshId | 选择创建群组的设备的网关 ID,您可以通过 deviceBean.getMeshId() 查询 |
selectedDeviceIds | 选择待添加的设备的 deviceId 列表 |
gid | 群组的 localId
|
移除网关中存储的群组中已有设备。
接口说明
mIThingZigbeeGroup.delDeviceToGroup(meshId, selectedDeviceIds, gid,
new IThingResultCallback<ZigbeeGroupCreateResultBean>() {
@Override
public void onSuccess(ZigbeeGroupCreateResultBean zigbeeGroupCreateResultBean) {
if (zigbeeGroupCreateResultBean != null) {
//移除设备成功的列表
if (zigbeeGroupCreateResultBean.getSuccess() != null && zigbeeGroupCreateResultBean.getSuccess().size() > 0) {
List<String> mDelSuccessDeviceIds = new ArrayList<>();
mDelSuccessDeviceIds.addAll(zigbeeGroupCreateResultBean.getSuccess());
}
//移除设备失败的列表
if (zigbeeGroupCreateResultBean.getFailure() != null && zigbeeGroupCreateResultBean.getFailure().size() > 0) {
List<String> mDelFailDeviceIds = new ArrayList<>();
mDelFailDeviceIds.addAll(zigbeeGroupCreateResultBean.getFailure());
}
//选择合适的时机调用 [更新保存群组关系]
//ThingHomeSdk.newZigbeeGroupInstance(groupId).updateGroupDeviceList()
}
}
@Override
public void onError(String errorCode, String errorMsg) {
}
});
参数说明
参数 | 说明 |
---|---|
meshId | 群组设备的网关 ID,可使用 deviceBean.getMeshId() 查询 |
selectedDeviceIds | 选择移除设备的 deviceId 列表 |
gid | 群组的 localId
|
在群组中添加或者移除设备后,您需要将跟网关固件交互的结果,同步更新保存到云端。
接口说明
ThingHomeSdk.newZigbeeGroupInstance(groupId).updateGroupDeviceList(homeId, selectedDeviceIds,
new IResultCallback() {
@Override
public void onError(String s, String s1) {
}
@Override
public void onSuccess() {
}
});
参数说明
参数 | 说明 |
---|---|
groupId | 群组 ID |
homeId | 家庭 ID |
selectedDeviceIds | 新增或者移除成功后的总设备 ID 列表 |
接口说明
IThingGroup mIThingGroup= ThingHomeSdk.newGroupInstance(groupId);
参数说明
参数 | 说明 |
---|---|
groupId | 群组 ID |
接口说明
ThingHomeSdk.newGroupInstance(groupId).renameGroup(titleName,
new IResultCallback() {
@Override
public void onError(String s, String s1) {
}
@Override
public void onSuccess() {
}
});
参数说明
参数 | 说明 |
---|---|
groupId | 群组 ID |
titleName | 群组名称 |
接口说明
ThingHomeSdk.newGroupInstance(groupId).dismissGroup(new IResultCallback() {
@Override
public void onError(String s, String s1) {
}
@Override
public void onSuccess() {
}
});
参数说明
参数 | 说明 |
---|---|
groupId | 待解散的群组 ID |
接口说明
mThingGroup.publishDps(String command, IResultCallback listener);
参数说明
参数 | 说明 |
---|---|
command | 控制命令 |
示例代码
//群组开灯代码片段
LampBean bean = new LampBean();
bean.setOpen(true);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put(STHEME_LAMP_DPID_1, bean.isOpen());
mThingGroup.publishDps(JSONObject.toJSONString(hashMap),callback);
//注册群组回调事件
mIThingGroup.registerGroupListener(new IGroupListener() {
@Override
public void onDpUpdate(long l, String s) {
}
@Override
public void onGroupInfoUpdate(long l) {
}
@Override
public void onGroupRemoved(long l) {
}
});
//注销群组回调事件
mIThingGroup.unRegisterGroupListener();
向群组发送控制指令后,如果返回了结果,是指发送给云端成功,并不是指实际控制设备成功。
调用该接口前,您需要初始化家庭(home
),即调用 getHomeDetail()
或者 getHomeLocalCache()
之后,才能查询到数据。
//查询指定的群组数据
ThingHomeSdk.getDataInstance().getGroupBean(long groupId);
//查询群组下设备列表
ThingHomeSdk.getDataInstance().getGroupDeviceList(long groupId);
//群组数据销毁,建议退出群组控制页面的时候调用。
mIThingGroup.onDestroy();
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈