站点管理

更新时间:2023-05-31 06:10:11下载pdf

智慧居住 App SDK 致力于为租住业务场景的移动端开发提供各类模块和组件。因此,站点空间是抽象于智能租住场景的概念,指用户在以场所为单位的范围内所有设备、账号、权限等信息的集合。

功能说明

站点管理主要包括以下能力:

  • 查询站点列表
  • 添加、修改和移除单个站点
  • 管理站点名称,地理位置、房间列表信息,成员信息等
  • 站点下,设备添加、信息修改、监听移除、设备状态变化的监听等

用户登录成功后需要通过 TuyaResidenceSite 来查询站点信息及操作站点。TuyaResidenceSite 用于站点的一些操作,包括对站点的创建、查询详情、删除、修改以及当前站点中用户等 API。

请确保 ViewController 或其他对象中持有的 TuyaResidenceSite 为全局变量(@property)。临时的 TuyaResidenceSite 变量可能会因为作用域问题,在初始化时被提前释放,而返回 nil

初始化站点

每次使用 TuyaResidenceSite 对象,都应该使用此方法。调用此类中的对象方法也应该用此方法传入站点 ID(siteId)。如果您没有站点 ID,请调用 + createSiteWithName:geoName:rooms:latitude:longitude:success:failure: 方法来创建一个站点。

初始化站点对象之后需要去查询站点的详情 fetchSiteDetailWithSuccess:failure:,站点实例对象中的属性 siteModelroomListdeviceListgroupListsharedDeviceListsharedGroupList 才有数据。

接口说明

+ (instancetype)siteWithSiteId:(long long)siteId;

请求参数

参数 说明
siteId 站点 ID,可以从 TuyaResidenceSiteModel 中查询到。

返回参数

参数 说明
instancetype 一个 TuyaResidenceSite 对象,用于调用 TuyaResidenceSite 中的方法。

创建一个站点

接口说明

+ (void)createSiteWithName:(NSString *)siteName
                   geoName:(NSString *)geoName
                     rooms:(NSArray <NSString *>*)rooms
                  latitude:(double)latitude
                 longitude:(double)longitude
                   success:(TYSuccessLongLong)success
                   failure:(TYFailureError)failure;

请求参数

参数 说明
siteName 站点名称。
geoName 所在城市名称。
rooms 站点包含的房间名称,以数组存储字符串。
latitude 纬度,用于定位位置,以展示合适的单位等。
longitude 经度,用于定位位置,以展示合适的单位等。

返回参数

参数 说明
success 请求成功后创建一个新的站点。
failure 失败回调,回调中展示失败原因。

示例代码

[TuyaResidenceSite createSiteWithName:siteName geoName:geoName rooms:areas latitude:latitude longitude:longitude success:^(long long result) {

} failure:^(NSError *error) {

}];

查询站点详情

用于请求站点的详细信息,成功之后您可以通过 [TuyaResidenceSite siteWithSiteId:siteId].siteModel; 来查询站点信息和设备相关的缓存。在初始化站点后,涂鸦建议立即调用此接口进行设备相关的缓存。

接口说明

- (void)fetchSiteDetailWithSuccess:(void (^)(TuyaResidenceSiteModel *siteModel))success
                           failure:(TYFailureError)failure;

返回参数

参数 说明
success 请求成功后返回一个 TuyaResidenceSiteModel 对象,存储了站点的详细信息。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site fetchSiteDetailWithSuccess:^(TuyaResidenceSiteModel * _Nonnull siteModel) {

} failure:^(NSError *error) {

}];

查询站点列表

接口说明

+ (void)fetchSiteListWithSuccess:(void(^)(NSArray <TuyaResidenceSiteModel *> *sites))success
                         failure:(TYFailureError)failure;

返回参数

参数 说明
success 请求成功后查询站点列表,TuyaResidenceSiteModel描述了站点类型等相关信息。
failure 失败回调,回调中展示失败原因。

示例代码

[TuyaResidenceSite fetchSiteListWithSuccess:^(NSArray<TuyaResidenceSiteModel *> * _Nonnull homes) {

} failure:^(NSError *error) {

}];

查询站点下的房间

包含房间信息,如果您想查询站点的房间列表,可以调用此接口。

接口说明

- (void)fetchSiteRoomCountWithSuccess:(TYSuccessID)success
                              failure:(TYFailureError)failure;

返回参数

参数 说明
success 请求成功后返回该站点下的所有房间信息。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site fetchSiteRoomCountWithSuccess:^(id result) {

} failure:^(NSError *error) {

}];

修改站点信息

接口说明

- (void)updateSiteInfoWitSiteName:(NSString *)siteName
                          geoName:(NSString *)geoName
                         latitude:(double)latitude
                        longitude:(double)longitude
                          success:(TYSuccessHandler)success
                          failure:(TYFailureError)failure;

请求参数

参数 说明
siteName 站点名称。
geoName 所在城市名称。
latitude 纬度。
longitude 经度。

返回参数

参数 说明
success 请求成功,修改完成。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site updateSiteInfoWitSiteName:siteName geoName:geoname latitude:latitude longitude:longitude success:^{

} failure:^(NSError *error) {

}];

为站点添加房间

接口说明

- (void)addSiteRoomWithRoomName:(NSString *)roomName
                        success:(TYSuccessHandler)success
                        failure:(TYFailureError)failure;

请求参数

参数 说明
roomName 房间名称。

返回参数

参数 说明
success 请求成功后增加一个房间。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site addSiteRoomWithRoomName:_addRoomTextField.text success:^{

} failure:^(NSError *error) {

}];

修改站点成员信息

修改当前站点下的成员信息,当成员角色修改为 TYSiteRoleType_Owner 时,会转让该站点的归属。

接口说明

- (void)updateSiteMemberInfoWithMemberId:(long long)memberId
                            headPicImage:(UIImage * _Nullable)headPicImage
                              memberName:(NSString *)memberName
                                    role:(TYSiteRoleType)role
                                 success:(TYSuccessHandler)success
                                 failure:(TYFailureError)failure;

请求参数

参数 说明
memberId 被操作成员的 ID。
headPicImage 头像。
memberName 成员名称。
role 成员角色。

返回参数

参数 说明
success 请求成功,完成修改。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site updateSiteMemberInfoWithMemberId:memberId headPicImage:nil memberName:_memberNameTextField.text role:TYSiteRoleType_Owner success:^{

} failure:^(NSError *error) {

}];

删除站点

接口说明

- (void)removeSiteWithOwnerId:(long long)ownerId
                      success:(TYSuccessHandler)success
                      failure:(TYFailureError)failure;

请求参数

参数 说明
ownerId 站点所有者的 ID。

返回参数

参数 说明
success 请求成功,该站点被删除。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site removeSiteWithOwnerId:groupUserId success:^{

} failure:^(NSError *error) {

}];

查询失效入住单列表

接口说明

- (void)fetchExpiredListWithPageSize:(NSInteger)pageSize
                              pageNo:(NSInteger)pageNo
                             success:(void (^)(NSArray<TuyaResidenceExpiredAuthorModel * > *))success
                             failure:(TYFailureError)failure;

请求参数

参数 说明
pageSize 请求一次返回的数量,最小为 1,最大为 100。
pageNo 当前请求的页码,从 1 开始,每请求一次加 1。

返回参数

参数 说明
success 请求成功后返回失效入住单列表。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site fetchExpiredListWithPageSize:20 pageNo:1 success:^(NSArray<TuyaResidenceExpiredAuthorModel *> *list) {

} failure:^(NSError *error) {

}];

查询站点成员

接口说明

- (void)fetchSiteResidentListWithSuccess:(void (^)(NSArray<TuyaResidenceSiteMemberModel *> *list))success
                                 failure:(TYFailureError)failure;

返回参数

参数 说明
success 请求成功后返回所有成员的列表。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site fetchSiteResidentListWithSuccess:^(NSArray<TuyaResidenceSiteMemberModel *> * _Nonnull list) {

} failure:^(NSError *error) {

}];

删除站点成员

接口说明

- (void)removeMemberWithMemberId:(long long)memberId
                         success:(TYSuccessHandler)success
                         failure:(TYFailureError)failure;

请求参数

参数 说明
memberId 需要删除的成员 ID。

返回参数

参数 说明
success 请求成功,删除该成员。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site removeMemberWithMemberId:model.memberId success:^{

} failure:^(NSError *error) {

}];

查询站点登录信息

查询当前站点下,本次登录用户的信息。

接口说明

- (void)fetchLoginedSiteMemberInfoWithSuccess:(void(^)(TuyaResidenceSiteMemberModel *model))success
                                      failure:(TYFailureError)failure;

返回参数

参数 说明
success 请求成功,返回该用户的信息。
failure 失败回调,回调中展示失败原因。

示例代码

[self.site fetchLoginedSiteMemberInfoWithSuccess:^(TuyaResidenceSiteMemberModel * _Nonnull model) {

} failure:^(NSError *error) {

}];