更新时间:2024-03-04 07:32:16
设备多控关联是指设备的某个 DP 与另一个设备的某个 DP 之间建立关联,生成一个多控组。当控制多控组内某个建立 DP 关联的设备,组内其他设备关联的 DP 状态同步。
例如,三个二路 Zigbee 子设备开关,每个开关的第一个 DP 与另外两个开关的第一个 DP 建立多控组,当控制其中一个开关的第一个 DP 状态为关闭状态,另外两个开关的第一个 DP 同步关闭。
switch_数字
、sub_switch_数字
类型。类名 | 说明 |
---|---|
ThingSmartMultiControl | 设备多控关联接口封装 |
接口说明
从云端查询设备所有 DP 的多语言名称等信息。
- (void)getDeviceDpInfoWithDevId:(NSString *)devId success:(void (^)(NSArray<ThingSmartMultiControlDatapointModel *> *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 成功回调,即参数 NSArray<ThingSmartMultiControlDatapointModel *> |
failure | 失败回调 |
ThingSmartMultiControlDatapointModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
dpId | NSString | 设备 DP ID |
name | NSString | 设备 DP 名称 |
code | NSString | 设备 DP 标准名称,即 dpCode |
schemaId | NSString | 按键 DP 所属的 schema ID |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
[multiControl getDeviceDpInfoWithDevId:@"your_devId" success:^(NSArray<ThingSmartMultiControlDatapointModel *> * list) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
multiControl.getDeviceDpInfo(withDevId: "your_devId", success: { (list) in
}) { (error) in
}
接口说明
查询当前的设备 DP 关联的多控和自动化详情。当前设备称为为主设备,关联的其他设备称为附属设备。
- (void)queryDeviceLinkInfoWithDevId:(NSString *)devId dpId:(NSString *)dpId success:(void (^)(ThingSmartMultiControlLinkModel *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 主设备 ID |
dpId | 主设备 DP ID |
success | 成功回调,即参数 ThingSmartMultiControlLinkModel * |
failure | 失败回调 |
ThingSmartMultiControlLinkModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
multiGroup | ThingSmartMultiControlGroupModel | 已关联多控组数据结构 |
parentRules | NSArray<ThingSmartMultiControlParentRuleModel * > |
已关联的场景自动化数据结构 |
ThingSmartMultiControlGroupModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
multiControlId | NSString | 多控组 ID |
groupName | NSString | 多控组名称 |
groupType | NSInteger | 多控组类型 |
groupDetail | NSArray<ThingSmartMultiControlGroupDetailModel * > |
多控组信息 |
enabled | BOOL | 是否开启多控组 |
multiRuleId | NSString | 多种自动化的 ID |
ownerId | NSString | 家庭 ID |
uid | NSString | 用户 ID |
ThingSmartMultiControlGroupDetailModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
detailId | NSString | 详情 ID |
multiControlId | NSString | 多控组 ID |
devId | NSString | 附属设备 ID |
devName | NSString | 附属设备名称 |
dpId | NSString | 已关联的附属设备的 DP ID |
dpName | NSString | 已关联的附属设备的 DP 名称 |
enabled | BOOL | 已关联的附属设备是否可以通过多控功能控制 |
datapoints | NSArray<ThingSmartMultiControlDatapointModel * > |
DP 信息 |
ThingSmartMultiControlParentRuleModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
ruleId | NSString | 自动化 ID |
name | NSString | 自动化名称 |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
[multiControl queryDeviceLinkInfoWithDevId:@"your_devId" dpId:@"your_dpId" success:^(ThingSmartMultiControlLinkModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
multiControl.queryDeviceLinkInfo(withDevId: "your_devId", dpId: "your_dpId", success: { (linkModel) in
}) { (error) in
}
接口说明
- (void)addMultiControlWithDevId:(NSString *)devId groupName:(NSString *)groupName groupDetail:(NSArray<ThingSmartMultiControlDetailModel *> *)groupDetail success:(void (^)(ThingSmartMultiControlModel *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 主设备 ID |
groupName | 多控组名称 |
groupDetail | 多控组关联详情(参数 NSArray<ThingSmartMultiControlDetailModel * >) |
success | 成功回调 |
failure | 失败回调 |
ThingSmartMultiControlDetailModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
detailId | NSString | |
devId | NSString | 附属设备 ID |
dpId | NSString | 已关联的附属设备的 DP ID |
enable | BOOL | 已关联的附属设备是否可以通过多控功能控制 |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
ThingSmartMultiControlDetailModel *detailModel = [[ThingSmartMultiControlDetailModel alloc] init];
detailModel.dpId = @"";
detailModel.devId = @"";
detailModel.enable = true;
[multiControl addMultiControlWithDevId:@"your_devId" groupName:@"groupName" groupDetail:@[detailModel] success:^(ThingSmartMultiControlModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
let detail = ThingSmartMultiControlDetailModel.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:(ThingSmartMultiControlModel *)model success:(void (^)(ThingSmartMultiControlModel *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 主设备 ID |
model | 多控组的数据结构 |
success | 成功回调 |
failure | 失败回调 |
ThingSmartMultiControlModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
multiControlId | NSString | 多控组 ID |
groupName | NSString | 多控组名称 |
groupType | NSInteger | 多控组类型,默认为 1 |
groupDetail | NSArray<ThingSmartMultiControlDetailModel * > |
多控组信息 |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
ThingSmartMultiControlDetailModel *detailModel = [[ThingSmartMultiControlDetailModel alloc] init];
detailModel.detailId = @"";
detailModel.dpId = @"";
detailModel.devId = @"";
detailModel.enable = true;
ThingSmartMultiControlModel *model = [[ThingSmartMultiControlModel alloc] init];
model.multiControlId = @"";
model.groupName = @"";
model.groupType = 1;
model.groupDetail = @[detailModel];
[multiControl updateMultiControlWithDevId:@"your_devId" multiControlModel:model success:^(ThingSmartMultiControlModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
let detailModel = ThingSmartMultiControlDetailModel.init()
detailModel.detailId = ""
detailModel.dpId = ""
detailModel.devId = ""
detailModel.enable = true
let model = ThingSmartMultiControlModel.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:(ThingSuccessBOOL)success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
multiControlId | 多控组 ID |
enable | 启用或停用 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
[multiControl enableMultiControlWithMultiControlId:@"multiControlId" enable:true/false success:^(BOOL result) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
multiControl.enableMultiControl(withMultiControlId: "multiControlId", enable: true, success: { (result) in
}) { (error) in
}
接口说明
查询支持多控的设备列表,包括用户的和家庭的。
- (void)getMultiControlDeviceListWithHomeId:(long long)homeId success:(void (^)(NSArray<ThingSmartMultiControlDeviceModel *> *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 家庭 ID |
success | 成功回调,即参数 NSArray<ThingSmartMultiControlDeviceModel *> |
failure | 失败回调 |
ThingSmartMultiControlDeviceModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
devId | NSString | 设备 ID |
productId | NSString | 产品 ID |
name | NSString | 设备名称 |
iconUrl | NSString | 设备图标下载链接 |
roomName | NSString | 所在房间名 |
inRule | BOOL | 该设备是否在自动化的条件中 |
datapoints | NSArray<ThingSmartMultiControlDatapointModel * > |
DP 信息 |
multiControlIds | NSArray<NSString * > |
设备已被关联的多控组 ID 数组 |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
[multiControl getMultiControlDeviceListWithHomeId:123 success:^(NSArray<ThingSmartMultiControlDeviceModel *> * list) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
multiControl.getDeviceList(withHomeId: 123, success: { (list) in
}) { (error) in
}
接口说明
查询附属设备的 DP 信息、已关联的多控、自动化信息。
- (void)queryDeviceDpRelationWithDevId:(NSString *)devId success:(void (^)(ThingSmartMultiControlDpRelationModel *))success failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 成功回调,即参数 ThingSmartMultiControlDpRelationModel * ) |
failure | 失败回调 |
ThingSmartMultiControlDpRelationModel
字段说明
字段 | 类型 | 说明 |
---|---|---|
datapoints | NSArray<ThingSmartMultiControlDatapointModel * > |
DP 信息 |
mcGroups | NSArray<ThingSmartMcGroupModel * > |
已关联的多控组信息 |
parentRules | NSArray<ThingSmartMultiControlParentRuleModel * > |
已关联的自动化信息 |
ThingSmartMcGroupModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
multiControlId | NSString | 多控组 ID |
groupName | NSString | 多控组名称 |
groupDetail | NSArray<ThingSmartMcGroupDetailModel * > |
多控组关联详情 |
enabled | BOOL | 多控组是否可用 |
groupType | NSInteger | 多控组类型 |
multiRuleId | NSString | |
ownerId | NSString | 家庭 ID |
uid | NSString | 用户 ID |
ThingSmartMcGroupDetailModel
数据类型
字段 | 类型 | 说明 |
---|---|---|
detailId | NSString | |
dpId | NSString | DP ID |
dpName | NSString | DP 名称 |
devId | NSString | 设备 ID |
devName | NSString | 设备名称 |
enabled | BOOL | 是否可用 |
multiControlId | NSString | 多控组 ID |
示例代码
Objc:
ThingSmartMultiControl *multiControl = [[ThingSmartMultiControl alloc] init];
[multiControl queryDeviceDpRelationWithDevId:@"your_devId" success:^(ThingSmartMultiControlDpRelationModel * model) {
} failure:^(NSError *error) {
}];
Swift:
let multiControl = ThingSmartMultiControl.init()
multiControl.queryDeviceDpRelation(withDevId: "your_devId", success: { (model) in
}) { (error) in
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈