推荐场景

更新时间:2024-08-20 02:42:08下载pdf

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

获取推荐场景

接口说明

- (void)getRecomSceneList:(long long)homeId
           recomListParam:(TSceneRecomListParams *)params
                  success:(void(^)(NSArray<ThingSmartSceneModel *> *list))success
                  failure:(ThingFailureError)failure;

参数说明

参数 类型 说明
homeId long long 当前家庭 ID
params TSceneRecomListParams 对象 请求推荐场景的参数对象
success block 成功回调,返回场景列表模型数据
failure block 失败回调,返回失败信息

TSceneRecomListParams 对象说明

参数 类型 说明
TSceneRecomListSource enum 请求来源。
  • TSceneRecomListSourceNormal:普通来源
  • size int 请求列表一页的个数
    devId string 设备 ID
    shouldShowDidAddedRecommend bool 是否需要显示已被添加的推荐场景

    示例代码

    Objective-C

    TSceneRecomListParams *recomListParams = [TSceneRecomListParams new];
    recomListParams.source = TSceneRecomListSourceNormal;
    recomListParams.size = 10;
    recomListParams.shouldShowDidAddedRecommend = NO;
    
    [[ThingSmartSceneManager sharedInstance] getRecomSceneList:123455 recomListParam:recomListParams success:^(NSArray<ThingSmartSceneModel *> * _Nonnull list) {
        
    } failure:^(NSError *error) {
        
    }];
    

    Swift

    let recomListParams = TSceneRecomListParams.init();
    recomListParams.source = .normal;
    recomListParams.size = 10;
    recomListParams.shouldShowDidAddedRecommend = false;
    
    ThingSmartSceneManager.sharedInstance().getRecomSceneList(123455, recomListParam: recomListParams) { recommendModels in
        
    } failure: { error in
    
    }
    

    获取设备的推荐场景

    接口说明

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

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

    参数说明

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

    示例代码

    Objective-C

    /// 获取设备相关的推荐场景列表
    [ThingSmartSceneManager.sharedInstance getRecommendedSceneListWithHomeId:123456 deviceId:@"device id" count:4 success:^(NSArray<ThingSmartSceneModel *> *list) {
    
    } failure:^(NSError *error) {
    
    }];
    

    Swift

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

    批量获取设备的推荐场景

    接口说明

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

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

    - (void)fetchRecommendListForDeviceIDs:(NSArray<NSString *> *)deviceIDs
                                    homeId:(long long)homeId
                                   success:(void (^)(NSDictionary<NSString *,ThingSmartSceneModel *> *dict))success
                                   failure:(ThingFailureError)failure;
    

    参数说明

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

    示例代码

    Objective-C

    /// 批量获取设备相关的推荐场景列表
    [[ThingSmartSceneManager sharedInstance] fetchRecommendListForDeviceIDs:@[@"123", @"456"] homeId:789 success:^(NSDictionary<NSString *,ThingSmartSceneModel *> * _Nonnull dict) {
        
    } failure:^(NSError *error) {
        
    }];
    

    Swift

    /// 批量获取设备相关的推荐场景列表
    ThingSmartSceneManager.sharedInstance().fetchRecommendList(forDeviceIDs: ["123", "345"], homeId: 789) { recomendMap in
        
    } failure: { error in
        
    }
    

    获取推荐场景详情

    接口说明

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

    参数说明

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

    示例代码

    Objective-C

    /// 获取推荐场景详情
    [ThingSmartSceneManager.sharedInstance getRecommendSceneDetailWithSceneId:@"recommend id" homeId:123456 success:^(ThingSmartSceneModel *sceneModel) {
    
    } failure:^(NSError *error) {
    
    }];
    

    Swift

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

    添加推荐场景

    接口说明

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

    - (void)saveRecommendSceneWithHomeId:(long long)homeId
                                 success:(void (^)(ThingSmartSceneModel *sceneModel))success
                                 failure:(ThingFailureError)failure;
    

    参数说明

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

    示例代码

    Objective-C

    /// 添加推荐场景
    ThingSmartSceneModel *sceneModel = [[ThingSmartSceneModel alloc] init];
    sceneModel.sceneId = @"123456";
    ThingSmartScene *sceneService = [ThingSmartScene sceneWithSceneModel:sceneModel];
    [sceneService saveRecommendSceneWithHomeId:123456 success:^(ThingSmartSceneModel *sceneModel) {
    
    } failure:^(NSError *error) {
    
    }];
    

    Swift

    /// 添加推荐场景
    let sceneModel = ThingSmartSceneModel.init()
    sceneModel.sceneId = "123456"
    let sceneService = ThingSmartScene.init(sceneModel: sceneModel)
    sceneService?.saveRecommendScene(withHomeId: 123456, success: { sceneModel in
    
    }, failure: { error in
    
    })
    

    移除推荐场景

    接口说明

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

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

    - (void)unlikeRecommend:(long long)homeId
          recomHandleParams:(TSceneRecomHandleParams *)params
                    success:(ThingSuccessBOOL)success
                    failure:(ThingFailureError)failure;
    

    参数说明

    参数 类型 说明
    homeId long long 当前家庭 ID
    params TSceneRecomHandleParams 对象 请求参数
    success block 成功回调
    failure block 失败回调,返回失败信息

    TSceneRecomHandleParams 对象

    参数 类型 说明
    recomBizType enum 推荐场景类型,详细见 TSceneRecomBizType 声明
    • TSceneRecomBizTypeUnknown:未知类型
    • TSceneRecomBizTypeScene:普通类
    • TSceneRecomBizTypeEnergy:能源类
    • TSceneRecomBizTypeWarning:警告类
    recommendId string 推荐场景 ID
    gid string 家庭 ID

    示例代码

    Objective-C

    TSceneRecomHandleParams *params = [TSceneRecomHandleParams new];
    params.recommendId = self.sceneModel.sceneId;
    params.recomBizType = self.sceneModel.bizType;
    params.gid = [NSString stringWithFormat:@"%lld", homeId];
    
    [[ThingSmartSceneManager sharedInstance] unlikeRecommend:homeId recomHandleParams:params success:^(BOOL result) {
    
    } failure:^(NSError *error) {
    }];
    

    Swift

    let recomHandleParams = TSceneRecomHandleParams.init()
    recomHandleParams.gid = ""
    recomHandleParams.recomBizType = .energy
    recomHandleParams.recommendId = ""
    ThingSmartSceneManager.sharedInstance().unlikeRecommend(123456, recomHandleParams: recomHandleParams) { result in
        
    } failure: { error in
        let errorMessage = error?.localizedDescription ?? ""
        SVProgressHUD.showError(withStatus: errorMessage)
    }
    

    匹配推荐场景(废弃)

    接口说明

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

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

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

    - (void)updateMatchingRecommendWithHomeId:(long long)homeId
                                      success:(ThingSuccessID)successHandler
                                      failure:(ThingFailureError)failureError;
    

    参数说明

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

    示例代码

    Objective-C

    /// 匹配推荐场景
    [ThingSmartSceneManager.sharedInstance updateMatchingRecommendWithHomeId:123456 success:^(id result) {
    
    } failure:^(NSError *error) {
    
    }];
    

    Swift

    /// 匹配推荐场景
    ThingSmartSceneManager.sharedInstance().updateMatchingRecommend(withHomeId: 123456) { (data) in
    
    } failure: { (error) in
    
    }
    

    匹配设备的推荐场景(废弃)

    接口说明

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

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

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

    示例代码

    Objective-C

    /// 匹配设备的推荐场景
    [ThingSmartSceneManager.sharedInstance updateMatchingDialogRecommendWithHomeId:123456 success:^(id result) {
    
    } failure:^(NSError *error) {
    
    }];
    

    Swift

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