更新时间:2024-11-18 11:33:08
设备多控关联是指设备的某个 DP 与另一个设备的某个 DP 之间建立关联,生成一个多控组。当控制多控组内某个建立 DP 关联的设备,组内其他设备关联的 DP 状态同步。
例如,三个二路 Zigbee 子设备开关,每个开关的第一个 DP 与另外两个开关的第一个 DP 建立多控组,当控制其中一个开关的第一个 DP 状态为关闭状态,另外两个开关的第一个 DP 同步关闭。
switch_数字
、sub_switch_数字
类型。ITuyaDeviceMultiControl iTuyaDeviceMultiControl = TuyaHomeSdk.getDeviceMultiControlInstance();
在区分主设备和附属设备时,查询的当前的设备 DP 关联的多控和自动化称为主设备,返回的数据关联的其他设备称为附属设备。
接口说明
void getDeviceDpInfoList(String devId, ITuyaDataCallback<ArrayList<DeviceDpInfoBean>> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
callback | 结果回调 |
示例代码
ITuyaDeviceMultiControl iTuyaDeviceMultiControl = TuyaHomeSdk.getDeviceMultiControlInstance();
iTuyaDeviceMultiControl.getDeviceDpInfoList(mDevId, new ITuyaDataCallback<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, ITuyaDataCallback<MultiControlLinkBean> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
dpId | 设备 DP ID |
callback | 结果回调 |
示例代码
iTuyaDeviceMultiControl.queryLinkInfoByDp(mDevId, dpId, new ITuyaDataCallback<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, ITuyaDataCallback<ArrayList<MultiControlDevInfoBean>> callback);
参数说明
参数 | 说明 |
---|---|
mHomeId | 家庭 ID |
callback | 结果回调 |
示例代码
iTuyaDeviceMultiControl.getMultiControlDeviceList(Constant.HOME_ID, new ITuyaDataCallback<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, ITuyaResultCallback<MultiControlBean> callback);
void saveDeviceMultiControl(long mHomeId, String json, ITuyaResultCallback<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
。
示例代码
iTuyaDeviceMultiControl.saveDeviceMultiControl(Constant.HOME_ID, multiControlBean, new ITuyaResultCallback<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, ITuyaResultCallback<Boolean> callback);
void disableMultiControl(long multiControlId, ITuyaResultCallback<Boolean> callback);
参数说明
参数 | 说明 |
---|---|
multiControlId | 多控组 ID |
callback | 结果回调 |
示例代码
iTuyaDeviceMultiControl.enableMultiControl(id, new ITuyaResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
ToastUtil.shortToast(mContext,"success");
}
@Override
public void onError(String errorCode, String errorMessage) {
ToastUtil.shortToast(mContext,errorMessage);
}
});
iTuyaDeviceMultiControl.disableMultiControl( id, new ITuyaResultCallback<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, ITuyaDataCallback<DeviceMultiControlRelationBean> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
callback | 结果回调 |
示例代码
iTuyaDeviceMultiControl.getDeviceDpLinkRelation(devId, new ITuyaDataCallback<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 |
已关联的场景自动化信息 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈