Skip to content

场景SDK:QuecSceneSdk

功能概述

SDK支持用户按照一定的规则, 使一个或者多个设备执行多个任务

objc
#import <QuecSceneKit/QuecSceneKit.h>

[QuecSceneService sharedInstance]

SDK集成方式

注意

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

objc
pod 'QuecSceneKit', '~> 0.4.0'

场景管理

获取场景列表

接口说明

获取当前场景的场景列表

objc
- (void)getSceneListWithPageNumber:(NSInteger)pageNumber
                          pageSize:(NSInteger)pageSize
                           success:(void(^)(NSArray<QuecSceneModel *> *list, NSInteger total))success
                           failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
pageNumber分页号
pageSize每一页的大小
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
 [QuecSceneService.sharedInstance getSceneListWithPageNumber:1
                                                    pageSize:10
                                                     success:^(NSArray<QuecSceneModel *> * _Nonnull list, NSInteger total) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

QuecSceneModel属性定义

字段类型描述
fidString家庭id
isCommonboolean是否是常用场景
sceneInfoQuecSceneInfoModel场景详情

QuecSceneInfoModel属性定义

字段类型描述
executeResultint上次场景执行结果
iconString场景图标
idint场景执行结果
metaDataListList<QuecMetaDataModel>场景设备动作列表
nameString场景名称
sceneIdString场景Id

QuecMetaDataModel属性定义

字段类型描述
actionListNSArray<QuecSceneActionModel *> *设备动作列表
deviceKeyString设备dk
productKeyString设备pk
deviceNameString设备名称
logoImageString设备icon
deviceTypeint设备类型 1 默认普通设备 2 群组

QuecSceneActionModel属性定义

字段类型描述
idint物模型功能ID
codeString物模型标志符
dataTypeString物模型数据类型
actionIdint执行动作Id
nameString物模型功能名称
subNameString物模型值subName
typeString物模型功能类型
subTypeString物模型subType

添加场景

接口说明

添加一个新的场景

objc
- (void)addSceneWithSceneModel:(QuecSceneModel *)sceneModel success:(QuecVoidBlock)success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneModel场景属性
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
QuecSceneModel *model = QuecSceneModel.new;
QuecSceneInfoModel *sceneInfoModel = QuecSceneInfoModel.new;
QuecMetaDataModel *metaDataModel = QuecMetaDataModel.new;
QuecSceneActionModel *actionModel = QuecSceneActionModel.new;

model.isCommon = YES;
sceneInfoModel.name = "设备开灯";
sceneInfoModel.icon = "https://xxxxxxxx.png";

actionModel.code = "switch";
actionModel.dataType = "BOOL";
actionModel.itemId = 1;
actionModel.name = "开关";
actionModel.subName = "开灯";
actionModel.subType = "RW";
actionModel.type = "PROPERTY";
actionModel.value = YES

metaDataModel.productKey = "pk";
metaDataModel.productKey = "dk";
metaDataModel.deviceType = 1;

model.sceneInfo = sceneInfoModel
sceneInfoModel.metaDataList = @[metaDataModel]
metaDataModel.actionList = @[actionModel]

[QuecSceneService.sharedInstance addSceneWithSceneModel:model success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

修改场景

接口说明

编写场景中的信息

objc
- (void)editSceneWithSceneModel:(QuecSceneModel *)sceneModel success:(QuecVoidBlock)success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneModel场景属性
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
QuecSceneModel *model = QuecSceneModel.new; //从场景列表获取到的对象
model.sceneInfo.name = "新名称";
[QuecSceneService.sharedInstance editSceneWithSceneModel:model success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

删除场景

接口说明

删除指定的场景

objc
- (void)deleteSceneWithSceneId:(NSString *)sceneId success:(QuecVoidBlock)success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneId场景id
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance deleteSceneWithSceneId:@"your SceneId" success:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

获取场景详情

接口说明

获取指定场景的场景详情

objc
- (void)getSceneInfoWithSceneId:(NSString *)sceneId success:(void(^)(QuecSceneModel * scene))success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneId场景id
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance getSceneInfoWithSceneId:@"your SceneId" success:^(QuecSceneModel * _Nonnull scene) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

场景执行

执行场景

接口说明

执行指定的场景

objc
- (void)executeSceneWithSceneId:(NSString *)sceneId
                        success:(void(^)(QuecActionExecuteResultModel *executeResultModel))success
                        failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneId场景id
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance executeSceneWithSceneId:@"your SceneId" success:^(QuecActionExecuteResultModel *executeResultModel) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

QuecActionExecuteResultModel属性定义

字段类型描述
executeResultboolean执行结果
failActionListList<QuecFailActionModel>失败结果列表
failCountint失败结果数
successCountint成功结果数

QuecFailActionModelModel属性定义

字段类型描述
productKeyString设备pk
deviceKeyString设备dk
deviceNameString设备名
imageLogoString设备logo
reasonString原因

测试场景

接口说明

测试场景配置的执行情况, 在未保存场景状态到云端的情况下, 也可执行

objc
- (void)executeTestSceneWithSceneModel:(QuecSceneModel *)sceneModel
                               success:(void(^)(QuecActionExecuteResultModel *executeResultModel))success
                               failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneId场景id
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
QuecSceneModel *sceneModel = QuecSceneModel.new;
[QuecSceneService.sharedInstance executeTestSceneWithSceneModel:sceneModel success:^(QuecActionExecuteResultModel * _Nonnull executeResultModel) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

常用场景

获取常用场景列表

接口说明

获取常用场景列表

objc
- (void)getCommonSceneListWithPageNumber:(NSInteger)pageNumber
                                pageSize:(NSInteger)pageSize
                                 success:(void(^)(NSArray<QuecSceneModel *> *list, NSInteger total))success
                                 failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
pageNumber分页号
pageSize每一页的大小
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance getCommonSceneListWithPageNumber:1
                                                             pageSize:10
                                                              success:^(NSArray<QuecSceneModel *> * _Nonnull list, NSInteger total) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

批量添加常用场景

接口说明

批量添加常用场景

objc
- (void)batchAddCommonSceneWithSceneList:(NSArray *)sceneList
                                 success:(void(^)(QuecAddCommonSceneIdModel *model))success
                                 failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneIdList场景id列表,必传
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance batchAddCommonSceneWithSceneList:@[@"SceneID1", @"SceneID2"] success:^(QuecAddCommonSceneIdModel * _Nonnull model) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

批量删除常用场景

接口说明

批量删除常用场景

objc
- (void)batchDeleteCommonSceneWithSceneList:(NSArray *)sceneList
                                    success:(void(^)(QuecAddCommonSceneIdModel *model))success
                                    failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
sceneIdList场景id列表,必传
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance batchDeleteCommonSceneWithSceneList:@[@"SceneID1", @"SceneID2"] success:^(QuecAddCommonSceneIdModel * _Nonnull model) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

场景日志

获取场景日志列表

接口说明

获取场景日志列表

objc
- (void)getSceneLogListWithLastExecutionId:(long)lastExecutionId
                                     limit:(NSInteger)limit
                                   success:(void(^)(NSArray<QuecSceneLogItemModel *> *list))success
                                   failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
lastExecutionId最后一条执行日志的id
limit查询的数据数量
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance getSceneLogListWithLastExecutionId:10086
                                                                limit:10
                                                            success:^(NSArray<QuecSceneLogItemModel *> * _Nonnull list) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

QuecSceneLogItemModel属性定义

字段类型描述
sceneIdString场景ID
sceneNameString场景名称
sceneIconString场景icon
executionIdlong执行id
executionTimelong执行时间
executionResultint执行结果
executionListList<QuecSceneLogExecutionModel>执行结果列表

QuecSceneLogExecutionModel属性定义

字段类型描述
productKeyString设备pk
deviceKeyString设备dk
deviceNameString设备名称
logoImageString设备logo
executionResultString执行结果
actionResultListList<QuecSceneLogActionModel>场景ID

QuecSceneLogActionModel属性定义

字段类型描述
resultboolean执行结果
reasonString原因
createTimeString时间戳
actionQuecSceneActionModel物模型

获取场景日志详情

接口说明

获取场景日志详情

objc
- (void)getSceneLogDetailInfoWithExecutionId:(long)executionId
                                     success:(void(^)(QuecSceneLogItemModel *detailInfo))success
                                     failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
executionId场景日志id
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecSceneService.sharedInstance getSceneLogDetailInfoWithExecutionId:10010 success:^(QuecSceneLogItemModel *detailInfo) {
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];

清除场景日志

接口说明

清除场景日志

objc
- (void)clearSceneLogWithSuccess:(QuecVoidBlock)success failure:(QuecErrorBlock)failure;

参数说明

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

示例代码

objc
[QuecSceneService.sharedInstance clearSceneLogWithSuccess:^{
    /// Next Action
} failure:^(NSError *error) {
    NSLog(@"check error: %@", error);
}];