更新时间:2023-04-13 09:31:07下载pdf
设备多控关联是指设备的某个 DP 与另一个设备的某个 DP 之间建立关联,生成一个多控组。当控制多控组内某个建立 DP 关联的设备,组内其他设备关联的 DP 状态同步。
例如,三个二路 Zigbee 子设备开关,每个开关的第一个 DP 与另外两个开关的第一个 DP 建立多控组,当控制其中一个开关的第一个 DP 状态为关闭状态,另外两个开关的第一个 DP 同步关闭。

switch_数字 、sub_switch_数字 类型。IThingDeviceMultiControl iThingDeviceMultiControl = ThingHomeSdk.getDeviceMultiControlInstance();
在区分主设备和附属设备时,查询的当前的设备 DP 关联的多控和自动化称为主设备,返回的数据关联的其他设备称为附属设备。
接口说明
void getDeviceDpInfoList(String devId, IThingDataCallback<ArrayList<DeviceDpInfoBean>> callback);
参数说明
| 参数 | 说明 |
|---|---|
| devId | 设备 ID |
| callback | 结果回调 |
示例代码
IThingDeviceMultiControl iThingDeviceMultiControl = ThingHomeSdk.getDeviceMultiControlInstance();
iThingDeviceMultiControl.getDeviceDpInfoList(mDevId, new IThingDataCallback<ArrayList<DeviceDpInfoBean>>() {
@Override
public void onSuccess(ArrayList<DeviceDpInfoBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
接口说明
void queryLinkInfoByDp(String devId, String dpId, IThingDataCallback<MultiControlLinkBean> callback);
参数说明
| 参数 | 说明 |
|---|---|
| devId | 设备 ID |
| dpId | 设备 DP ID |
| callback | 结果回调 |
示例代码
iThingDeviceMultiControl.queryLinkInfoByDp(mDevId, dpId, new IThingDataCallback<MultiControlLinkBean>() {
@Override
public void onSuccess(MultiControlLinkBean result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
MultiControlLinkBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| multiGroup | MultiControlLinkBean.MultiGroupBean | 已关联多控组数据结构 |
| parentRules | List<MultiControlLinkBean.ParentRulesBean> | 已关联的场景自动化数据结构 |
MultiControlLinkBean.MultiGroupBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| uid | String | 用户 ID |
| groupName | String | 多控组名称 |
| groupType | int | 多控组类型 |
| multiRuleId | String | 规则 ID |
| id | int | 多控组 ID |
| ownerId | String | 家庭 ID |
| enabled | boolean | 是否开启多控组 |
| status | int | 多控组状态 |
| groupDetail | List |
多控组信息 |
GroupDetailBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| devId | String | 附属设备 ID |
| dpName | String | 已关联的附属设备的 DP 名称 |
| multiControlId | int | 多控组 ID |
| dpId | int | 已关联的附属设备的 DP ID |
| devName | String | 已关联的附属设备的名称 |
| enabled | boolean | 该已关联的附属设备是否可以通过多控功能控制 |
| status | int | 多控组状态 |
| datapoints | List |
DP 信息 |
MultiControlDataPointsBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| code | String | DP 标准名称,即 dpCode |
| dpId | int | DP ID |
| name | String | DP 名称 |
ParentRulesBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| id | String | 自动化 ID |
| name | String | 自动化名称 |
接口说明
void getMultiControlDeviceList(long mHomeId, IThingDataCallback<ArrayList<MultiControlDevInfoBean>> callback);
参数说明
| 参数 | 说明 |
|---|---|
| mHomeId | 家庭 ID |
| callback | 结果回调 |
示例代码
iThingDeviceMultiControl.getMultiControlDeviceList(Constant.HOME_ID, new IThingDataCallback<ArrayList<MultiControlDevInfoBean>>() {
@Override
public void onSuccess(ArrayList<MultiControlDevInfoBean> result) {
iMultiControlDeviceView.setData(result);
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
MultiControlDevInfoBean 字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| productId | String | 产品 ID |
| devId | String | 设备 ID |
| iconUrl | String | 设备图标 |
| name | String | 设备名称 |
| roomName | String | 房间名称 |
| inRule | boolean | 是否已经关联到主设备 |
| datapoints | List |
DP 信息 |
接口说明
GroupDetail 中必须包含主设备的设备信息。MultiControlBean。通过 MultiControlBean 可以实现:
GroupDetail 传空即可。void saveDeviceMultiControl(long mHomeId, MultiControlBean multiControlBean, IThingResultCallback<MultiControlBean> callback);
void saveDeviceMultiControl(long mHomeId, String json, IThingResultCallback<MultiControlBean> callback);
参数说明
| 参数 | 说明 |
|---|---|
| mHomeId | 家庭 ID |
| MultiControlBean | 多控组的数据结构 |
| json | 多控组的数据结构 |
| callback | 结果回调 |
JSON 完整数据结构如下:
{
"groupName":"多控组 1",
"groupType":1,
"groupDetail":[{"devId":"adadwfw3e234ferf41","dpId":2, "id":22, "enable":true}],
"id":22 //多控组 ID
}
groupType 必须传 1。
示例代码
iThingDeviceMultiControl.saveDeviceMultiControl(Constant.HOME_ID, multiControlBean, new IThingResultCallback<MultiControlBean>() {
@Override
public void onSuccess(MultiControlBean result) {
ToastUtil.shortToast(mContext,"success");
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
MultiControlBean 字段说明
| 字段 | 类型 | 是否可选 | 说明 |
|---|---|---|---|
| groupName | String | 是 | 多控组名称 |
| groupType | int | 否 | 多控组类型,固定传 1 |
| groupDetail | List |
是 | 多控组设备信息 |
| id | int | 是 | 多控组 ID |
接口说明
void enableMultiControl(long multiControlId, IThingResultCallback<Boolean> callback);
void disableMultiControl(long multiControlId, IThingResultCallback<Boolean> callback);
参数说明
| 参数 | 说明 |
|---|---|
| multiControlId | 多控组 ID |
| callback | 结果回调 |
示例代码
iThingDeviceMultiControl.enableMultiControl(id, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
ToastUtil.shortToast(mContext,"success");
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
iThingDeviceMultiControl.disableMultiControl( id, new IThingResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
ToastUtil.shortToast(mContext,"success");
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
接口说明
void getDeviceDpLinkRelation(String devId, IThingDataCallback<DeviceMultiControlRelationBean> callback);
参数说明
| 参数 | 说明 |
|---|---|
| devId | 设备 ID |
| callback | 结果回调 |
示例代码
iThingDeviceMultiControl.getDeviceDpLinkRelation(devId, new IThingDataCallback<DeviceMultiControlRelationBean>() {
@Override
public void onSuccess(DeviceMultiControlRelationBean result) {
L.d("MultiControlDeviceListPresenter",result.toString());
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
DeviceMultiControlRelationBean 字段信息
| 字段 | 类型 | 说明 |
|---|---|---|
| datapoints | List |
DP 信息 |
| mcGroups | List |
已关联的多控组信息 |
| parentRules | List |
已关联的场景自动化信息 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈