房屋管理

更新时间:2022-02-17 06:45:08下载pdf

房屋功能说明

TuyaCommunityHouse 用于描述整个房屋的所有信息,包括房屋信息、查询房屋中的房间列表、设备和群组顺序等 API。

初始化房屋

接口说明

+ (instancetype)houseWithHouseId:(long long)houseId;

参数说明

参数 说明
houseId 房屋 ID

示例代码

long long houseId;
TuyaCommunityHouse *house = [TuyaCommunityHouse houseWithHouseId:houseId];

查询房屋详情

接口说明

- (void)getHouseDetailWithSuccess:(void(^)(TuyaCommunityHouseModel *result))success
                          failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

[house getHouseDetailWithSuccess:^(TuyaCommunityHouseModel * _Nonnull result) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

修改房屋位置

- (void)updateHouseLocationWithGeoName:(NSString *)geoName
                              latitude:(double)latitude
                             longitude:(double)longitude
                               success:(void(^)(void))success
                               failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
geoName NSString
latitude double
longitude double
success 成功回调
failure 失败回调

示例代码

[house updateHouseLocationWithGeoName:@"xxx" latitude:0 longitude:0 success:^{
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

设置房屋中设备和群组的顺序

对所有的设备或者群组进行排序。

接口说明

- (void)sortDeviceOrGroupWithOrderList:(NSArray<NSDictionary *>*)orderList
                               success:(void(^)(void))success
                               failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
orderList 设备或者群组数据,[@{@"bizId": @"XXX", @"bizType": @"XXX"}]
success 成功回调
failure 失败回调

示例代码

[house sortDeviceOrGroupWithOrderList:@[] success:^{
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

查询房屋的简要天气参数

接口说明

- (void)getHouseWeatherSketchWithSuccess:(void(^)(TuyaCommunityWeatherSketchModel *result))success
                                 failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

[house getHouseWeatherSketchWithSuccess:^(TuyaCommunityWeatherSketchModel * _Nonnull result) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

查询房屋的详细天气参数

查询房屋天气的详细参数,如温度、湿度、紫外线指数、空气质量等。

接口说明

- (void)getHouseWeatherDetailWithOptionModel:(TuyaCommunityWeatherOptionModel *)optionModel
                                     success:(void(^)(NSArray<TuyaCommunityWeatherModel *>*list))success
                                     failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
optionModel -
success 成功回调
failure 失败回调

示例代码

TuyaCommunityWeatherOptionModel *model;
[house getHouseWeatherDetailWithOptionModel:model
                                    success:^(NSArray<TuyaCommunityWeatherModel *> * _Nonnull list) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

房屋信息管理

TuyaCommunityHouseManager 用于管理 TuyaCommunityHouse,其功能包括添加房屋、查询房屋列表以及监听房屋相关的变更。

房屋相关信息由 TuyaCommunityHouseModel 提供。

功能说明

查询房屋列表

查询当前用户所在所有房屋。

接口说明

- (void)getHouseListWithSuccess:(void(^)(NSArray<TuyaCommunityHouseModel *>*list))success
                        failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
success 成功回调
failure 失败回调

示例代码

self.houseManager = [TuyaCommunityHouseManager new];
[self.houseManager getHouseListWithSuccess:^(NSArray<TuyaCommunityHouseModel *> * _Nonnull list) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

查询小区列表

添加房屋时,需要先选择小区。因此,您可以先查询小区列表,再添加房屋。

接口说明

- (void)getCommunityListWithKeyword:(NSString * _Nullable)keyword
                           latitude:(double)latitude
                          longitude:(double)longitude
                            success:(void(^)(NSArray<TuyaCommunityListModel *>*list))success
                            failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
keyword 小区名称,非必传,用于搜索小区时传入
latitude 纬度,非必传,用于显示附近的小区
longitude 经度,非必传,用于显示附近的小区
success 成功回调
failure 失败回调

示例代码

[self.houseManager getCommunityListWithKeyword:@""
                                      latitude:0
                                     longitude:0
                                   success:^(NSArray<TuyaCommunityListModel *> * _Nonnull list) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

查询房屋空间树列表

添加房屋时,选择小区后,查询小区下空间树的列表,包括楼幢、单元、楼层、房号。根据返回数据中 hasMore 字段判断是否有下级空间。

接口说明

- (void)getHouseTreeListWithTreeId:(NSString *)treeId
                           success:(void(^)(NSArray<TuyaCommunityHouseTreeModel *>*list))success
                           failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
treeId 空间树 ID,如查询小区下空间树,传小区对应的 communityId
success 成功回调
failure 失败回调

示例代码

[self.houseManager getHouseTreeListWithTreeId:@"xxx"
                                      success:^(NSArray<TuyaCommunityHouseTreeModel *> * _Nonnull list) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

添加房屋

接口说明

- (void)addHouseWithName:(NSString *)name
             communityId:(NSString *)communityId
                  roomId:(NSString *)roomId
                userType:(NSString *)userType
              expireTime:(NSString * _Nullable)expireTime
                 success:(void(^)(TuyaCommunityHouseModel *result))success
                 failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
name 房屋的全称,包括楼幢、单元、楼层、房号
roomId 房号 ID,即房屋选择时最后一级空间对应的 treeId
userType 成员类型,如业主、家人、租客等
expireTime 到期时间,非必传,成员类型为租客时,需要传入租赁到期时间,格式为 yyyyMMdd
success 成功回调
failure 失败回调

示例代码

[self.houseManager addHouseWithName:@"xxx"
                        communityId:@"xxx"
                             roomId:@"xxx"
                           userType:@"xxx"
                         expireTime:nil
                            success:^(TuyaCommunityHouseModel * _Nonnull result) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];
  • 添加房屋前需要用户完成认证,可调用TuyaCommunityHouseMemberService类的getUserCertificationInfoWithSuccess:failure:查询用户认证状态。若用户未认证,需调用TuyaCommunityHouseMemberService类的verifyUserInfoWithRealName:sex:idCard:success:failure:方法完成用户认证。

  • userType成员类型的查询,通过TuyaCommunityHouseMemberService类的getMemberTypeListWithroomId:success:failure:查询成员类型列表。TuyaCommunityMemberTypeModel中的memberTypeCode的值即为userType所需的值。

查询房屋简单数据

查询房屋基本信息。

接口说明

- (void)getHouseInfoWithHouseId:(long long)houseId
                        success:(void(^)(TuyaCommunityHouseModel *result))success
                        failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
houseId 房屋 ID
success 成功回调
failure 失败回调

示例代码

[self.houseManager getHouseInfoWithHouseId:@"xxx"
                                   success:^(TuyaCommunityHouseModel * _Nonnull result) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

查询房屋审核结果

返回房屋审核状态。

接口说明

- (void)getHouseAuditResultWithCommunityId:(NSString *)communityId
                                roomUserId:(NSString *)roomUserId
                                   success:(void(^)(TuyaCommunityHouseAuditStatus auditStatus, NSString *msg))success
                                   failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
communityId 小区 ID
roomUserId 人房绑定关系 ID
success 成功回调
failure 失败回调

示例代码

[self.houseManager getHouseAuditResultWithCommunityId:@"xxx"
                                           roomUserId:@"xxx"
                                              success:^(TuyaCommunityHouseAuditStatus auditStatus, NSString * _Nonnull msg) {
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

迁出房屋

用户本人由于产权变更、租期到期或其他原因不属于当前房屋住户时,可迁出房屋。

接口说明

- (void)moveOutHouseWithCommunityId:(NSString *)communityId
                         roomUserId:(NSString *)roomUserId
                            success:(void(^)(void))success
                            failure:(void(^)(NSError *error))failure;

参数说明

参数 说明
communityId 小区 ID
roomUserId 人房绑定关系 ID
success 成功回调
failure 失败回调

示例代码

[self.houseManager moveOutHouseWithCommunityId:@"xxx"
                                    roomUserId:@"xxx"
                                       success:^{
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

删除房屋

当房屋状态处于待审核、已迁出和审核不通过时可以进行删除房屋操作。

接口说明

- (void)deleteHouseWithCommunityId:(NSString *)communityId
                           houseId:(long long)houseId
                           success:(void(^)(void))success
                           failure:(void(^)(NSError *error))failure;

功能说明

参数 说明
communityId 小区 ID
houseId 房屋 ID
success 成功回调
failure 失败回调

示例代码

[self.houseManager deleteHouseWithCommunityId:@"xxx"
                                      houseId:@"xxx"
                                      success:^{
    // success handler
} failure:^(NSError * _Nonnull error) {
    // failure handler
}];

TuyaCommunityHouseManagerDelegate 协议

实现 TuyaCommunityHouseManagerDelegate 协议后,可以对房屋增删、房屋审核状态改变、MQTT 服务连接成功进行后续处理。

接口说明

// 添加一个房屋的回调
- (void)houseManager:(TuyaCommunityHouseManager *)houseManager didAddHouse:(TuyaCommunityHouseModel *)house;

// 删除一个房屋的回调
- (void)houseManager:(TuyaCommunityHouseManager *)houseManager didRemoveHouse:(long long)houseId;

// 房屋审核状态改变的回调
- (void)houseManager:(TuyaCommunityHouseManager *)houseManager didUpdateHouseAuditStatus:(TuyaCommunityHouseModel *)house;

// MQTT 连接成功
// 说明: 程序进入后台,MQTT 长连接会断开连接,进入前台后会进行重连,所以需要在此代理这里重新查询当前房屋的详情,保证当前房屋下的数据是最新数据。
- (void)houseManagerServiceConnectedSuccess:(TuyaCommunityHouseManager *)houseManager;

对象说明

TuyaCommunityHouseModel

属性 类型 说明
communityId NSString 小区 ID
communityName NSString 小区名称
houseAddress NSString 房屋地址
houseId long long 房屋 ID
houseName NSString 房屋名称
auditStatus TuyaCommunityHouseAuditStatus 房屋审核状态:
  • TuyaCommunityHouseAuditStatusPending 待审核
  • TuyaCommunityHouseAuditStatusPass 审核通过
  • TuyaCommunityHouseAuditStatusFailure 审核驳回
  • TuyaCommunityHouseAuditStatusMovedOut 房屋迁出
guestHouse BOOL 是否为游客
userTypeName NSString 当前用户的成员类型名称
memberNum NSInteger 房屋成员人数
roomUserId NSString 人房绑定关系 ID
roomId NSString 房号 ID
name NSString 房屋名
admin BOOL 是否有智家管理权限(包括智家拥有者和管理者)
geoName NSString 房屋地理位置名称
longitude double 经度
latitude double 纬度
dealStatus TuyaCommunityMemberInviteStatus 加入房屋要求的状态
  • TuyaCommunityMemberInviteStatusPending 等待接受
  • TuyaCommunityMemberInviteStatusAccept 接受
  • TuyaCommunityMemberInviteStatusReject 拒绝
role TuyaCommunityMemberRole 房屋成员权限:
  • TuyaCommunityMemberRoleCustom 自定义成员
  • TuyaCommunityMemberRoleMember 房屋成员
  • TuyaCommunityMemberRoleAdmin 管理员
  • TuyaCommunityMemberRoleOwner 拥有者
  • TuyaCommunityMemberRoleUnknown 无效成员,成员会失效
rooms NSArray<TuyaCommunityRoomModel> 房间列表
nickName NSString 邀请人
propertyCompanyName NSString 物业公司

TuyaCommunityModel

属性 类型 说明
communityName NSString 小区名
communityId NSString 小区 ID

TuyaCommunityListModel

属性 类型 说明
city NSString 城市
hasLocation BOOL 是否含有位置
list NSArray<TuyaComunityModel> 小区列表

TuyaCommunityHouseTreeModel

属性 类型 说明
spaceTreeName NSString 小区下层级名,例如 1幢、1单元等
spaceTreeId NSString 小区下层级 id,最后一个层级的spaceTreeId即为房号 ID
hasMore BOOL 是否含有下一层级

TuyaCommunityHouse

属性 类型 说明
houseModel TuyaCommunityHouseModel 房屋信息
delegate id<TuyaCommunityHouseDelegate> 房屋代理
roomList NSArray<TuyaCommunityRoomModel> 排序后的房间列表
deviceList NSArray<TuyaSmartDeviceModel> 设备列表
groupList NSArray<TuyaSmartGroupModel> 群组列表
sharedDeviceList NSArray<TuyaSmartDeviceModel> 共享设备列表
sharedGroupList NSArray<TuyaSmartGroupModel> 共享群组列表