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

switch_数字 、sub_switch_数字 类型。| 类名 | 说明 |
|---|---|
| TuyaSmartMultiControl | 设备多控关联接口封装 |

接口说明
从云端查询设备所有 DP 的多语言名称等信息。
- (void)getDeviceDpInfoWithDevId:(NSString *)devId success:(void (^)(NSArray<TuyaSmartMultiControlDatapointModel *> *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| devId | 设备 ID |
| success | 成功回调,即参数 NSArray<TuyaSmartMultiControlDatapointModel *> |
| failure | 失败回调 |
TuyaSmartMultiControlDatapointModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| dpId | NSString | 设备 DP ID |
| name | NSString | 设备 DP 名称 |
| code | NSString | 设备 DP 标准名称,即 dpCode |
| schemaId | NSString | 按键 DP 所属的 schema ID |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
[multiControl getDeviceDpInfoWithDevId:@"your_devId" success:^(NSArray<TuyaSmartMultiControlDatapointModel *> * list) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
multiControl.getDeviceDpInfo(withDevId: "your_devId", success: { (list) in
}) { (error) in
}
接口说明
查询当前的设备 DP 关联的多控和自动化详情。当前设备称为为主设备,关联的其他设备称为附属设备。
- (void)queryDeviceLinkInfoWithDevId:(NSString *)devId dpId:(NSString *)dpId success:(void (^)(TuyaSmartMultiControlLinkModel *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| devId | 主设备 ID |
| dpId | 主设备 DP ID |
| success | 成功回调,即参数 TuyaSmartMultiControlLinkModel * |
| failure | 失败回调 |
TuyaSmartMultiControlLinkModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| multiGroup | TuyaSmartMultiControlGroupModel | 已关联多控组数据结构 |
| parentRules | NSArray<TuyaSmartMultiControlParentRuleModel *> |
已关联的场景自动化数据结构 |
TuyaSmartMultiControlGroupModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| multiControlId | NSString | 多控组 ID |
| groupName | NSString | 多控组名称 |
| groupType | NSInteger | 多控组类型 |
| groupDetail | NSArray<TuyaSmartMultiControlGroupDetailModel *> |
多控组信息 |
| enabled | BOOL | 是否开启多控组 |
| multiRuleId | NSString | 多种自动化的 ID |
| ownerId | NSString | 家庭 ID |
| uid | NSString | 用户 ID |
TuyaSmartMultiControlGroupDetailModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| detailId | NSString | 详情 ID |
| multiControlId | NSString | 多控组 ID |
| devId | NSString | 附属设备 ID |
| devName | NSString | 附属设备名称 |
| dpId | NSString | 已关联的附属设备的 DP ID |
| dpName | NSString | 已关联的附属设备的 DP 名称 |
| enabled | BOOL | 已关联的附属设备是否可以通过多控功能控制 |
| datapoints | NSArray<TuyaSmartMultiControlDatapointModel *> |
DP 信息 |
TuyaSmartMultiControlParentRuleModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| ruleId | NSString | 自动化 ID |
| name | NSString | 自动化名称 |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
[multiControl queryDeviceLinkInfoWithDevId:@"your_devId" dpId:@"your_dpId" success:^(TuyaSmartMultiControlLinkModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
multiControl.queryDeviceLinkInfo(withDevId: "your_devId", dpId: "your_dpId", success: { (linkModel) in
}) { (error) in
}
接口说明
- (void)addMultiControlWithDevId:(NSString *)devId groupName:(NSString *)groupName groupDetail:(NSArray<TuyaSmartMultiControlDetailModel *> *)groupDetail success:(void (^)(TuyaSmartMultiControlModel *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| devId | 主设备 ID |
| groupName | 多控组名称 |
| groupDetail | 多控组关联详情(参数 NSArray<TuyaSmartMultiControlDetailModel *>) |
| success | 成功回调 |
| failure | 失败回调 |
TuyaSmartMultiControlDetailModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| detailId | NSString | |
| devId | NSString | 附属设备 ID |
| dpId | NSString | 已关联的附属设备的 DP ID |
| enable | BOOL | 已关联的附属设备是否可以通过多控功能控制 |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
TuyaSmartMultiControlDetailModel *detailModel = [[TuyaSmartMultiControlDetailModel alloc] init];
detailModel.dpId = @"";
detailModel.devId = @"";
detailModel.enable = true;
[multiControl addMultiControlWithDevId:@"your_devId" groupName:@"groupName" groupDetail:@[detailModel] success:^(TuyaSmartMultiControlModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
let detail = TuyaSmartMultiControlDetailModel.init()
detail.devId = ""
detail.dpId = ""
detail.enable = true
multiControl.add(withDevId: "your_devId", groupName: "groupName", groupDetail: [detail], success: { (model) in
}) { (error) in
}
接口说明
实现为主设备添加其他设备进入多控组,可以更新多控组名称,更新多控组内的设备列表。
更新方式为全量更新。
- (void)updateMultiControlWithDevId:(NSString *)devId multiControlModel:(TuyaSmartMultiControlModel *)model success:(void (^)(TuyaSmartMultiControlModel *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| devId | 主设备 ID |
| model | 多控组的数据结构 |
| success | 成功回调 |
| failure | 失败回调 |
TuyaSmartMultiControlModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| multiControlId | NSString | 多控组 ID |
| groupName | NSString | 多控组名称 |
| groupType | NSInteger | 多控组类型,默认为 1 |
| groupDetail | NSArray<TuyaSmartMultiControlDetailModel *> |
多控组信息 |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
TuyaSmartMultiControlDetailModel *detailModel = [[TuyaSmartMultiControlDetailModel alloc] init];
detailModel.detailId = @"";
detailModel.dpId = @"";
detailModel.devId = @"";
detailModel.enable = true;
TuyaSmartMultiControlModel *model = [[TuyaSmartMultiControlModel alloc] init];
model.multiControlId = @"";
model.groupName = @"";
model.groupType = 1;
model.groupDetail = @[detailModel];
[multiControl updateMultiControlWithDevId:@"your_devId" multiControlModel:model success:^(TuyaSmartMultiControlModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
let detailModel = TuyaSmartMultiControlDetailModel.init()
detailModel.detailId = ""
detailModel.dpId = ""
detailModel.devId = ""
detailModel.enable = true
let model = TuyaSmartMultiControlModel.init()
model.multiControlId = ""
model.groupName = ""
model.groupDetail = [detailModel]
multiControl.update(withDevId: "your_devId", multiControlModel: model, success: { (model) in
}) { (error) in
}
接口说明
- (void)enableMultiControlWithMultiControlId:(NSString *)multiControlId enable:(BOOL)enable success:(TYSuccessBOOL)success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| multiControlId | 多控组 ID |
| enable | 启用或停用 |
| success | 成功回调 |
| failure | 失败回调 |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
[multiControl enableMultiControlWithMultiControlId:@"multiControlId" enable:true/false success:^(BOOL result) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
multiControl.enableMultiControl(withMultiControlId: "multiControlId", enable: true, success: { (result) in
}) { (error) in
}
接口说明
查询支持多控的设备列表,包括用户的和家庭的。
- (void)getMultiControlDeviceListWithHomeId:(long long)homeId success:(void (^)(NSArray<TuyaSmartMultiControlDeviceModel *> *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| homeId | 家庭 ID |
| success | 成功回调,即参数 NSArray<TuyaSmartMultiControlDeviceModel *> |
| failure | 失败回调 |
TuyaSmartMultiControlDeviceModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| devId | NSString | 设备 ID |
| productId | NSString | 产品 ID |
| name | NSString | 设备名称 |
| iconUrl | NSString | 设备图标下载链接 |
| roomName | NSString | 所在房间名 |
| inRule | BOOL | 该设备是否在自动化的条件中 |
| datapoints | NSArray<TuyaSmartMultiControlDatapointModel *> |
DP 信息 |
| multiControlIds | NSArray<NSString *> |
设备已被关联的多控组 ID 数组 |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
[multiControl getMultiControlDeviceListWithHomeId:123 success:^(NSArray<TuyaSmartMultiControlDeviceModel *> * list) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
multiControl.getDeviceList(withHomeId: 123, success: { (list) in
}) { (error) in
}
接口说明
查询附属设备的 DP 信息、已关联的多控、自动化信息。
- (void)queryDeviceDpRelationWithDevId:(NSString *)devId success:(void (^)(TuyaSmartMultiControlDpRelationModel *))success failure:(TYFailureError)failure;
参数说明
| 参数 | 说明 |
|---|---|
| devId | 设备 ID |
| success | 成功回调,即参数 TuyaSmartMultiControlDpRelationModel *) |
| failure | 失败回调 |
TuyaSmartMultiControlDpRelationModel字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| datapoints | NSArray<TuyaSmartMultiControlDatapointModel *> |
DP 信息 |
| mcGroups | NSArray<TuyaSmartMcGroupModel *> |
已关联的多控组信息 |
| parentRules | NSArray<TuyaSmartMultiControlParentRuleModel *> |
已关联的自动化信息 |
TuyaSmartMcGroupModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| multiControlId | NSString | 多控组 ID |
| groupName | NSString | 多控组名称 |
| groupDetail | NSArray<TuyaSmartMcGroupDetailModel *> |
多控组关联详情 |
| enabled | BOOL | 多控组是否可用 |
| groupType | NSInteger | 多控组类型 |
| multiRuleId | NSString | |
| ownerId | NSString | 家庭 ID |
| uid | NSString | 用户 ID |
TuyaSmartMcGroupDetailModel 数据类型
| 字段 | 类型 | 说明 |
|---|---|---|
| detailId | NSString | |
| dpId | NSString | DP ID |
| dpName | NSString | DP 名称 |
| devId | NSString | 设备 ID |
| devName | NSString | 设备名称 |
| enabled | BOOL | 是否可用 |
| multiControlId | NSString | 多控组 ID |
示例代码
Objc:
TuyaSmartMultiControl *multiControl = [[TuyaSmartMultiControl alloc] init];
[multiControl queryDeviceDpRelationWithDevId:@"your_devId" success:^(TuyaSmartMultiControlDpRelationModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = TuyaSmartMultiControl.init()
multiControl.queryDeviceDpRelation(withDevId: "your_devId", success: { (model) in
}) { (error) in
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈