推荐场景

更新时间:2024-09-06 03:33:13

推荐场景 通过场景服务连接设备和用户,赋予设备场景化能力。它主要提供包含获取推荐场景列表、获取设备的推荐场景列表、获取推荐场景详情、添加和移除推荐场景在内的相关功能。有关场景推荐业务介绍,请参考 OEM App 场景推荐

匹配推荐场景

接口说明

在每次获取推荐场景列表前,先调用该匹配接口,用于更新推荐场景,获取最新的推荐场景列表。

该接口不必在每次获取列表前调用一次,可以设定时间间隔阈值。例如,在 12 小时内只调用一次,来刷新推荐场景列表。

v3.33.5 及以上版本 SDK 支持该接口。

- (void)updateMatchingRecommendWithHomeId:(long long)homeId
                                  success:(TYSuccessID)successHandler
                                  failure:(TYFailureError)failureError;

参数说明

参数 说明
homeId 家庭 ID
successHandler 成功回调
failureError 失败回调

示例代码

Objective-C

/// 匹配推荐场景
[TuyaSmartSceneManager.sharedInstance updateMatchingRecommendWithHomeId:123456 success:^(id result) {

} failure:^(NSError *error) {

}];

Swift

/// 匹配推荐场景
TuyaSmartSceneManager.sharedInstance().updateMatchingRecommend(withHomeId: 123456) { (data) in

} failure: { (error) in

}

获取推荐场景

接口说明

- (void)getRecommendedSceneListWithHomeId:(long long)homeId
                                  success:(void(^)(NSArray<TuyaSmartSceneModel *> *list))success
                                  failure:(TYFailureError)failure;

参数说明

参数 说明
homeId 当前家庭 ID
success 成功回调,返回场景列表模型数据
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 获取推荐场景列表
[TuyaSmartSceneManager.sharedInstance getRecommendedSceneListWithHomeId:123456 success:^(NSArray<TuyaSmartSceneModel *> *list) {

} failure:^(NSError *error) {

}];

Swift

/// 获取推荐场景列表
TuyaSmartSceneManager.sharedInstance().getRecommendedSceneList(withHomeId: 123456) { (list) in

} failure: { (error) in

}

匹配设备的推荐场景

接口说明

当设备配网完成后,想要获取设备相关的推荐场景列表,先调用该匹配接口,用于更新设备相关的推荐场景,获取最新的推荐场景列表。

v3.33.5 及以上版本 SDK 支持该接口。

- (void)updateMatchingDialogRecommendWithHomeId:(long long)homeId
                                        success:(TYSuccessID)successHandler
                                        failure:(TYFailureError)failureError;
参数 说明
homeId 当前家庭 ID
successHandler 成功回调
failureError 失败回调

示例代码

Objective-C

/// 匹配设备的推荐场景
[TuyaSmartSceneManager.sharedInstance updateMatchingDialogRecommendWithHomeId:123456 success:^(id result) {

} failure:^(NSError *error) {

}];

Swift

/// 匹配设备的推荐场景
TuyaSmartSceneManager.sharedInstance().updateMatchingDialogRecommend(withHomeId: 123456) { data in

} failure: { error in

}

获取设备的推荐场景

接口说明

当设备配网完成后,可以调用该接口来获取当前配网成功设备的相关推荐。

- (void)getRecommendedSceneListWithHomeId:(long long)homeId
                                 deviceId:(NSString *)deviceId
                                    count:(NSInteger)count
                                  success:(void(^)(NSArray<TuyaSmartSceneModel *> *list))success
                                  failure:(TYFailureError)failure;

参数说明

参数 说明
homeId 当前家庭 ID
deviceId 当前配网设备 ID
count 获取的推荐列表个数,限制为 3 或 4 个
success 成功回调,返回场景模型数据
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 获取设备相关的推荐场景列表
[TuyaSmartSceneManager.sharedInstance getRecommendedSceneListWithHomeId:123456 deviceId:@"device id" count:4 success:^(NSArray<TuyaSmartSceneModel *> *list) {

} failure:^(NSError *error) {

}];

Swift

/// 获取设备相关的推荐场景列表
TuyaSmartSceneManager.sharedInstance().getRecommendedSceneList(withHomeId: 123456, deviceId: "device id", count: 4) { list in

} failure: { error in

}

批量获取设备的推荐场景

接口说明

该接口用于获取当前家庭下设备的推荐场景,每个设备只会匹配出一个推荐场景。

v3.33.5 及以上版本 SDK 支持该接口。

- (void)getRecommendDeviceListWithDevIds:(NSArray<NSString *> *)devIds
                                  homeId:(long long)homeId
                                 success:(void (^)(NSDictionary<NSString *,TuyaSmartSceneModel *> *dict))success
                                 failure:(TYFailureError)failure;

参数说明

参数 说明
devIds 设备 ID 数组,限制 20 个
homeId 当前家庭 ID
success 成功回调,返回场景字典模型数据,一个设备对应返回一个推荐场景数据
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 批量获取设备相关的推荐场景列表
[TuyaSmartSceneManager.sharedInstance getRecommendDeviceListWithDevIds:@[@"11", @"22"] homeId:123456 success:^(NSDictionary<NSString *,TuyaSmartSceneModel *> *dict) {

} failure:^(NSError *error) {

}];

Swift

/// 批量获取设备相关的推荐场景列表
TuyaSmartSceneManager.sharedInstance().getRecommendDeviceList(withDevIds: ["11", "22"], homeId: 123456) { (dictionary) in

} failure: { error in

}

获取推荐场景详情

接口说明

- (void)getRecommendSceneDetailWithSceneId:(NSString *)sceneId
                                    homeId:(long long)homeId
                                   success:(void (^)(TuyaSmartSceneModel *sceneModel))success
                                   failure:(TYFailureError)failure;

参数说明

参数 说明
sceneId 推荐场景 ID
homeId 当前家庭 ID
success 成功回调,返回场景模型数据
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 获取推荐场景详情
[TuyaSmartSceneManager.sharedInstance getRecommendSceneDetailWithSceneId:@"recommend id" homeId:123456 success:^(TuyaSmartSceneModel *sceneModel) {

} failure:^(NSError *error) {

}];

Swift

/// 获取推荐场景详情
TuyaSmartSceneManager.sharedInstance().getRecommendSceneDetail(withSceneId: "recommend id", homeId: 123456) { sceneModel in

} failure: { error in

}

添加推荐场景

接口说明

对于一个非常喜欢,觉得实用的推荐场景,调用该接口可以为用户添加推荐场景。被添加的推荐场景会被记录在普通场景列表中,用户可以通过刷新普通场景列表找到它。

- (void)saveRecommendSceneWithHomeId:(long long)homeId
                             success:(void (^)(TuyaSmartSceneModel *sceneModel))success
                             failure:(TYFailureError)failure;

参数说明

参数 说明
homeId 当前家庭 ID
success 成功回调,返回场景模型数据
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 添加推荐场景
TuyaSmartSceneModel *sceneModel = [[TuyaSmartSceneModel alloc] init];
sceneModel.sceneId = @"123456";
TuyaSmartScene *sceneService = [TuyaSmartScene sceneWithSceneModel:sceneModel];
[sceneService saveRecommendSceneWithHomeId:123456 success:^(TuyaSmartSceneModel *sceneModel) {

} failure:^(NSError *error) {

}];

Swift

/// 添加推荐场景
let sceneModel = TuyaSmartSceneModel.init()
sceneModel.sceneId = "123456"
let sceneService = TuyaSmartScene.init(sceneModel: sceneModel)
sceneService?.saveRecommendScene(withHomeId: 123456, success: { sceneModel in

}, failure: { error in

})

移除推荐场景

接口说明

对于一个不感兴趣的推荐场景,调用该接口移除不感兴趣的推荐。

移除推荐后,如需重新刷新推荐列表,需要等待 5s 的时间间隔后再拉取推荐场景列表。

- (void)removeRecommendSceneWithHomeId:(long long)homeId
                               success:(TYSuccessHandler)success
                               failure:(TYFailureError)failure;

参数说明

参数 说明
homeId 当前家庭 ID
success 成功回调
failure 失败回调,返回失败信息

示例代码

Objective-C

/// 移除推荐场景
TuyaSmartSceneModel *sceneModel = [[TuyaSmartSceneModel alloc] init];
sceneModel.sceneId = @"123456";
TuyaSmartScene *sceneService = [TuyaSmartScene sceneWithSceneModel:sceneModel];
[sceneService removeRecommendSceneWithHomeId:123456 success:^{

} failure:^(NSError *error) {

}];

Swift

/// 移除推荐场景
let sceneModel = TuyaSmartSceneModel.init()
sceneModel.sceneId = "123456"
let sceneService = TuyaSmartScene.init(sceneModel: sceneModel)
sceneService?.removeRecommendScene(withHomeId: 123456, success: {

}, failure: { error in

})