Skip to content

群组控制

功能概述

设备群组,将多个设备组织起来,形成一个群体,以便于管理和控制。

注意

群组功能只有在家居模式启动后, 才能使用群组功能

SDK所有需要传fid参数的地方, 均可以调用QuecSmartHomeService.currentFamily来获取

SDK集成方式

注意

群组SDK运行依赖核心库QuecIotSdk, 请先按照快速集成文档集成核心库

objc
pod 'QuecGroupKit', '~> 0.5.0'

QuecGroupBean属性定义

字段类型描述
nameNSString群组名称
fidNSString家庭id
fridNSString房间id
gdidNSString群组id
roomNameNSString房间名
onlineStatusNSUInteger设备状态:0-离线 1-在线
productKeyNSString产品pk
deviceKeyNSString设备dk
isCommonUsedBOOL是否是常用设备:0-不常用 1-常用
groupDeviceDeviceNumNSInteger群组包含设备数量
deviceListNSArray<QuecGroupDeviceBean *> *设备列表

QuecGroupDeviceBean属性定义

字段类型描述
productKeyNSString产品pk
deviceKeyNSString设备dk
deviceNameNSString设备名
logoImageNSString设备logo图片
fridNSString房间id
roomNameNSString房间名称
onlineStatusNSInteger设备云状态:0-离线 1-在线
msgNSString接口响应消息提示
codeNSInteger接口响应code
lowPowerProductBOOL是否为低功耗产品
lowPowerStatusBOOL低功耗开关状态
lowPowerCacheNSInteger低功耗缓存时长,单位为秒
lowPowerAliveNSInteger低功耗心跳周期(分)
lastOfflineTimeTsNSInteger离线时间戳
capabilitiesBitmaskQuecIotChannelBitMask设备通道能力mask
objc
typedef NS_OPTIONS(NSUInteger, QuecIotChannelBitMask)
{
    QuecIotChannelBitMaskWan = 1 << 0,
    QuecIotChannelBitMaskLan = 1 << 1,
    QuecIotChannelBitMaskBle = 1 << 2,
    QuecIotChannelBitMaskMatter = 1 << 3
};

创建群组

接口说明

创建群组

objc
- (void)createGroupWithBean:(QuecGroupCreateBean *)bean
                    success:(QuecCreateGroupSuccess)success
                    failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
beanQuecGroupCreateBean类对象
success接口请求成功回调
failure接口请求失败回调

QuecGroupCreateBean属性定义

字段类型描述
groupDeviceNameNSString群组名称
fidNSString家庭id
fridNSString房间id
isCommonUsedBOOL是否是常用设备:0-不常用 1-常用
deviceListNSArray<QuecGroupCreateDeviceBean *> *设备列表

QuecGroupCreateDeviceBean属性定义

字段类型描述
productKeyNSString产品pk
deviceKeyNSString设备dk

示例代码

objc
QuecGroupCreateBean *createBean = QuecGroupCreateBean.new;
createBean.groupDeviceName = @"group name";
createBean.fid = @"family id";
createBean.frid = @"family room id";
createBean.isCommonUsed = YES;
createBean.deviceList = @[QuecGroupCreateDeviceBean.new];
[QuecGroupService.sharedInstance createGroupWithBean:createBean success:^(QuecGroupCreateResultBean * _Nonnull result) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

群组详情

接口说明

查询群组详情

objc
- (void)getGroupInfoWithId:(NSString *)groupId
                   success:(QuecGroupBeanSuccess)success
                   failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组id
success接口请求成功回调
failure接口请求失败回调

返回类型为QuecGroupBean, 属性定义同上

示例代码

objc
[QuecGroupService.sharedInstance getGroupInfoWithId:@"your gdid" success:^(QuecGroupBean * _Nonnull result) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

群组基础信息

接口说明

查询群组基础信息

objc
- (void)getGroupDeviceInfoWithId:(NSString *)groupId
                         success:(QuecGroupDeviceSuccess)success
                         failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组id
success接口请求成功回调
failure接口请求失败回调

返回类型为QuecDeviceModel, 属性定义在设备SDK

示例代码

objc
[QuecGroupService.sharedInstance getGroupDeviceInfoWithId:@"your gdid" success:^(QuecDeviceModel * _Nonnull result) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

设备是否可加入群组

接口说明

批量判断设备是否可加入群组

objc
- (void)checkDeviceAddGroupWithList:(NSArray<QuecGroupCreateDeviceBean *> *)deviceList
                                fid:(NSString *)fid
                            success:(QuecGroupCheckDeviceSuccess)success
                            failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
deviceListQuecGroupCreateDeviceBean类对象
fid家庭id
success接口请求成功回调
failure接口请求失败回调

QuecGroupDeviceBean QuecGroupCreateDeviceBean属性定义同上

示例代码

objc
QuecGroupCreateDeviceBean *createDeviceBean = QuecGroupCreateDeviceBean.new;
createDeviceBean.productKey = @"your pk";
createDeviceBean.deviceKey = @"your dk";
[QuecGroupService.sharedInstance checkDeviceAddGroupWithList:@[createDeviceBean] fid:@"fid" success:^(NSArray<QuecGroupDeviceBean *> * _Nonnull result) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

可添加设备列表

接口说明

获取可添加设备列表

objc
- (void)getAddableListWithList:(NSArray<QuecGroupCreateDeviceBean *> *)addedList
                           fid:(NSString *)fid
                          gdid:(nullable NSString *)gdid
                      pageSize:(NSInteger)pageSize
                          page:(NSInteger)page
                       success:(QuecGroupAddableListSuccess)success
                       failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
addedListQuecGroupCreateDeviceBean
fid家庭id
gdid群组id
pageSize分页大小,默认为 10 条
page分页,默认为第 1 页
success接口请求成功回调
failure接口请求失败回调

QuecGroupCreateDeviceBean属性定义同上

示例代码

objc
QuecGroupCreateDeviceBean *createDeviceBean = QuecGroupCreateDeviceBean.new;
createDeviceBean.productKey = @"your pk";
createDeviceBean.deviceKey = @"your dk";
[QuecGroupService.sharedInstance getAddableListWithList:@[createDeviceBean]
                                                        fid:@"your fid"
                                                       gdid:@"your gdid"
                                                   pageSize:10
                                                       page:1
                                                    success:^(NSArray<QuecGroupDeviceBean *> * _Nonnull result, NSUInteger total) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

控制群组

接口说明

控制群组设备

objc
- (void)controlGroupByHttp:(NSArray<QuecIotDataPoint*> *)dps
                   groupId:(NSString *)groupId
                 extraData:(NSDictionary *)extraData
                   success:(QuecVoidBlock)success
                   failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
dpsdps数据,具体格式封装同设备SDK
groupId群组id
extraData额外数据
success接口请求成功回调
failure接口请求失败回调

extraData额外数据NSDictionary 传入说明

objc
{
 type 类型 1:透传 2:属性 3:服务
 dataFormat 数据类型 1:Hex 2:Text(当type为透传时,需要指定 dataFormat)
 cacheTime 缓存时间,单位为秒,缓存时间范围 1-7776000 秒,启用缓存时必须设置缓存时间
 isCache  是否启用缓存 1:启用 2:不启用,默认不启用
 isCover 是否覆盖之前发送的相同的命令 1:覆盖 2:不覆盖,默认不覆盖,启用缓存时此参数有效
 }

QuecIotDataPoint属性定义同设备SDK

示例代码

objc
QuecIotDataPoint *dp = QuecIotDataPoint.new;
dp.value = @(3);
dp.dataType = QuecIotDataPointDataTypeINT;
dp.Id = 2; /// tsl id
[QuecGroupService.sharedInstance controlGroupByHttp:@[dp] groupId:@"your gdid" extraData:@{} success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

查询群组物模型属性值

接口说明

查询群组物模型属性值

objc
- (void)groupAttributesById:(NSString *)groupId
                   codeList:(NSString *)codeList
                    success:(void (^)(QuecProductTSLInfoModel *tslInfoModel))success
                    failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组id
codeList需要查询的属性值,用英文逗号拼接
success接口请求成功回调
failure接口请求失败回调

QuecProductTSLInfoModel属性定义同设备SDK

示例代码

objc
[QuecGroupService.sharedInstance groupAttributesById:@"gdid" codeList:@"code1,code2" success:^(QuecProductTSLInfoModel * _Nonnull tslInfoModel) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

群组物模型属性,包含属性值

接口说明

查询群组物模型属性,包含属性值

objc
- (void)groupAttributesWithTSLById:(NSString *)groupId
                        productKey:(NSString *)productKey
                          codeList:(NSString *)codeList
                           success:(void (^)(NSArray<QuecProductTSLPropertyModel *> *arrayData))success
                           failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
beanQuecGroupCreateBean类对象
productKey产品pk
codeList需要查询的属性值,用英文逗号拼接
success接口请求成功回调
failure接口请求失败回调

QuecProductTSLPropertyModel属性定义同设备SDK

示例代码

objc
[QuecGroupService.sharedInstance groupAttributesWithTSLById:@"your gdid" productKey:@"your pk" codeList:@"code1" success:^(NSArray<QuecProductTSLPropertyModel *> * _Nonnull arrayData) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

编辑群组基础信息

接口说明

用于群组基础信息修改

objc
- (void)editGroupBasicInfoWithId:(NSString *)groupId
                 groupDeviceName:(NSString *)groupDeviceName
                             fid:(nullable NSString *)fid
                            frid:(nullable NSString *)frid
                    isCommonUsed:(BOOL)isCommonUsed
                         success:(QuecVoidBlock)success
                         failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组id
groupDeviceName群组名称
fid家庭id
frid房间id
isCommonUsed是否是常用设备:0-不常用 1-常用
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecGroupService.sharedInstance editGroupBasicInfoWithId:@"your gdid" groupDeviceName:@"name" fid:@"fid" frid:@"frid" isCommonUsed:YES success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

编辑群组信息

接口说明

编辑群组信息

objc
- (void)editGroupInfoWithId:(NSString *)groupId
                       name:(NSString *)groupDeviceName
                        fid:(NSString *)fid
                       frid:(NSString *)frid
               isCommonUsed:(BOOL)isCommonUsed
                 deviceList:(NSArray<QuecGroupCreateDeviceBean *> *)deviceList
                    success:(QuecVoidBlock)success
                    failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组id
groupDeviceName群组名称
fid家庭id
frid房间id
deviceList设备列表
isCommonUsed是否是常用设备:0-不常用 1-常用
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
QuecGroupCreateDeviceBean *createDeviceBean = QuecGroupCreateDeviceBean.new;
createDeviceBean.productKey = @"your pk";
createDeviceBean.deviceKey = @"your dk";
[QuecGroupService.sharedInstance editGroupInfoWithId:@"your gdid"
                                                name:@"name"
                                                    fid:@"fid"
                                                frid:@"frid"
                                        isCommonUsed:YES
                                            deviceList:@[createDeviceBean] success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

批量移除/添加群组到常用

接口说明

批量移除/添加群组到常用

objc
- (void)batchAddCommonWithIds:(NSArray<NSString *> *)groupIds
                          fid:(NSString *)fid
                 isCommonUsed:(BOOL)isCommonUsed
                      success:(QuecGroupBatchResultBlock)success
                      failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupIds群组id List
fid家庭id
isCommonUsed是否是常用设备:0-不常用 1-常用
success接口请求成功回调
failure接口请求失败回调

QuecGroupBatchResultBean属性定义

字段类型描述
codeNSStringcode码
msgNSString提示信息
gdidNSString群组id

示例代码

objc
[QuecGroupService.sharedInstance batchAddCommonWithIds:@[@"group id1", @"group id2"] fid:@"fid" isCommonUsed:YES success:^(NSArray<QuecGroupBatchResultBean *> * _Nonnull successList, NSArray<QuecGroupBatchResultBean *> * _Nonnull failList) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

移动群组到新房间

接口说明

批量移动群组到新房间, 需开启家庭模式

objc
- (void)batchMovingWithIds:(NSArray<NSString *> *)groupIds
                   newFrid:(NSString *)newFrid
                   success:(QuecGroupBatchResultBlock)success
                   failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupIds群组id List
newFrid新房间id
success接口请求成功回调
failure接口请求失败回调

QuecGroupBatchResultBean属性定义同上

示例代码

objc
[QuecGroupService.sharedInstance batchMovingWithIds:@[@"group id1", @"group id2"] newFrid:@"new frid" success:^(NSArray<QuecGroupBatchResultBean *> * _Nonnull successList, NSArray<QuecGroupBatchResultBean *> * _Nonnull failList) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

批量删除群组

接口说明

批量删除群组

objc
- (void)deleteGroupWithIds:(NSArray<NSString *> *)groupIds
                   success:(QuecGroupBatchResultBlock)success
                   failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupIds群组id List
success接口请求成功回调
failure接口请求失败回调

QuecGroupBatchResultBean属性定义同上

示例代码

objc
[QuecGroupService.sharedInstance deleteGroupWithIds:@[@"group id1", @"group id2"] success:^(NSArray<QuecGroupBatchResultBean *> * _Nonnull successList, NSArray<QuecGroupBatchResultBean *> * _Nonnull failList) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

设置群组分享信息

接口说明

分享人设置群组分享信息

objc
- (void)getShareCodeWithGroupId:(NSString *)groupId
              acceptingExpireAt:(long)acceptingExpireAt
           isSharingAlwaysValid:(BOOL)isSharingAlwaysValid
                sharingExpireAt:(long)sharingExpireAt
                      coverMark:(NSInteger)coverMark
                        success:(void(^)(NSString *shareCode))success
                        failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组Id
acceptingExpireAt分享二维码种子失效时间 时间戳(毫秒),表示该分享在此时间戳时间内没有使用,会失效
isSharingAlwaysValid设备是否永久有效
sharingExpireAt设备使用到期时间 时间戳(毫秒),表示该分享的群组,被分享人可以使用的时间
如果不填,则为终生有效
coverMark覆盖标志
1 直接覆盖上条有效分享(默认)(覆盖原有的分享码)
2 直接添加,允许多条并存
3 只有分享时间延长了,才允许覆盖上条分享
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecGroupService.sharedInstance getShareCodeWithGroupId:@"your groupId" acceptingExpireAt:1745214106879 isSharingAlwaysValid:YES sharingExpireAt:sharingExpireTS(MS) coverMark:1 success:^(NSString * _Nonnull shareCode) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

群组分享人列表

接口说明

获取群组分享人列表

objc
- (void)getSharedListsWithGroupId:(NSString *)groupId
                          success:(void(^)(NSArray<QuecShareUserModel *> *list))success
                          failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
groupId群组Id
success接口请求成功回调
failure接口请求失败回调

QuecShareUserModel属性定义

字段类型描述
shareInfoQuecShareUserShareInfoModel分享信息
userInfoQuecShareUserInfoModel用户信息

QuecShareUserShareInfoModel属性定义

字段类型描述
acceptTimeNSString分享时间
acceptingExpireAtNSString分享失效时间
coverMarkNSInteger覆盖标志
deleteTimeNSString删除时间
deviceNameNSString设备名称
dkNSString设备key
ownerUidNSString所有者ID
pkNSString产品key
shareCodeNSString分享码
shareIdNSString分享ID
shareStatusNSInteger分享状态
shareTimeNSString分享时间
shareUidNSString分享用户ID
sharingExpireAtNSString分享失效时间
updateTimeNSString更新时间

示例代码

objc
[QuecGroupService.sharedInstance getSharedListsWithGroupId:@"your groupId" success:^(NSArray<QuecShareUserModel *> * _Nonnull list) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

分享人取消分享

接口说明

分享人取消分享

objc
- (void)ownerUnShareWithShareCode:(NSString *)shareCode
                          success:(QuecVoidBlock)success
                          failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
shareCode分享码
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecGroupService.sharedInstance ownerUnShareWithShareCode:@"share code" success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

被分享人取消分享

接口说明

被分享人取消分享

objc
- (void)unShareWithShareCode:(NSString *)shareCode
                     success:(QuecVoidBlock)success
                     failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
shareCode分享码
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecGroupService.sharedInstance unShareWithShareCode:@"share code" success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

接受分享

接口说明

被分享人接受分享

objc
- (void)acceptShareWithShareCode:(NSString *)shareCode
                         success:(QuecVoidBlock)success
                         failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
shareCode分享码
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecGroupService.sharedInstance acceptShareWithShareCode:@"share code" success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

分享群组的信息

接口说明

查询分享群组的信息

objc
- (void)getShareGroupInfoWithShareCode:(NSString *)shareCode
                            success:(void (^)(QuecGroupBasicInfoBean *infoBean))success
                            failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
shareCode分享码
success接口请求成功回调
failure接口请求失败回调

QuecGroupBasicInfoBean属性定义

字段类型描述
gdidNSString群组id
productkeyNSString产品pk
groupDeviceNameNSString群组名称
onlinestatusNSUInteger群组在离线状态 0-离线 1-在线
logoImageNSString群组logo
fidNSString家庭id
fridNSString房间id

示例代码

objc
[QuecGroupService.sharedInstance getShareGroupInfoWithShareCode:@"share code" success:^(QuecGroupBasicInfoBean * _Nonnull infoBean) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];