通行管理

更新时间:2023-05-31 06:02:13下载pdf

通行管理方式主要分为以下两种:

  • 通行密码:可将门锁等通行设备密码下发给指定的用户邮箱,用户即可使用收到的密码进行开门。当前只支持在线密码下发。

  • 通行成员:如果需要长期使用通行能力,可以将指定用户设置为通行成员。通行成员只可使用通行设备。

功能说明

登录成功后,您可以声明一个 TuyaResidenceAccess 类型的对象,来调用本类中的所有对象方法。

- (TuyaResidenceAccess *)access {
    if (!_access) {
        _access = [[TuyaResidenceAccess alloc] init];
    }
    return _access;
}

App 通行

添加 App 通行人员

接口说明

- (void)addAppAccessWithModel:(TuyaResidenceAddAppAccessModel *)appAccessModel
                      success:(TYSuccessBOOL)success
                      failure:(TYFailureError)failure;

参数说明

参数 说明
TuyaResidenceAddAppAccessModel 添加 App 通信请求模型
success 成功回调
failure 失败回调

TuyaResidenceInvitationCreateRequestModel 数据模型

字段 类型 描述
siteId long long 当前站点 ID
account NSString 用户账户
nickname NSString 用户昵称
deviceIdList NSArray<NSString *> 设备列表
startTime long 开始时间戳(13 位数字),如果设置为 -1 表示永久有效
endTime long 结束时间戳(13 位数字),如果设置为 -1 表示永久有效
userType TuyaResidenceAccessUserType 身份类型:
  • 20:管理员
  • 30:普通成员
站点类型为通行站点和商家授权站点只能创建 userType 等于 30 的 App 通行人员,站点类型可以通过TuyaResidenceSiteModel 中的 siteType 获取。

|

示例代码

Objc:

[self.access addAppAccessWithModel:reqModel success:^(BOOL result) {

} failure:^(NSError *error) {

}];

查询 App 通行人员列表

接口说明

- (void)fetchAppAccessListWithSiteId:(long long)siteId
                           effective:(BOOL)effective
                              pageNo:(NSInteger)pageNo
                            pageSize:(NSInteger)pageSize
                             success:(void(^)(NSArray<TuyaResidenceAppAccessModel *> *userList))success
                             failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
effective
  • YES:授权有效
  • NO:授权已过期
pageNo 页码号,从 1 开始,每次加 1
pageSize 单次请求返回数量,最小为 10,最大为 100
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchAppAccessListWithSiteId:siteId effective:YES pageNo:1 pageSize:20 success:^(NSArray<TuyaResidenceAppAccessModel *> * _Nonnull userList) {

} failure:^(NSError *error) {

}];

查询 App 通行人员详情

接口说明

- (void)fetchAppAccessUserDetailWithSiteId:(long long)siteId
                              accessUserId:(NSString *)accessUserId
                                   success:(void(^)(TuyaResidenceAppAccessDetailModel *userDetail))success
                                   failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchAppAccessUserDetailWithSiteId:siteId accessUserId:accessUserId success:^(TuyaResidenceAppAccessDetailModel * _Nonnull userDetail) {

} failure:^(NSError *error) {

}];

查询 App 通行人员的通行记录

接口说明

- (void)fetchAppAccessPassRecordWithSiteId:(long long)siteId
                              accessUserId:(NSString *)accessUserId
                                    pageNo:(NSInteger)pageNo
                                  pageSize:(NSInteger)pageSize
                                   success:(void(^)(NSArray<TuyaResidenceAccessRecordModel *> *accessUserRecordList))success
                                   failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
accessUserId 通行人员 ID
pageNo 页码号,从 1 开始,每次加 1
pageSize 单次请求返回数量,最小为 10,最大为 100
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchAppAccessPassRecordWithSiteId:siteId accessUserId:accessUserId pageNo:1 pageSize:20 success:^(NSArray<TuyaResidenceAccessRecordModel *> * _Nonnull accessUserRecordList) {

} failure:^(NSError *error) {

}];

查询 App 通行人员总数

接口说明

- (void)fetchAppAccessTotalWithSiteId:(long long)siteId
                            effective:(BOOL)effective
                              success:(void(^)(NSInteger total))success
                              failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
effective
  • YES:授权有效
  • NO:授权已过期
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchAppAccessTotalWithSiteId:siteId effective:effective success:^(NSInteger total) {

} failure:^(NSError *error) {

}];

为 App 通行人员添加设备

接口说明

- (void)addAppAccessDeviceWithSiteId:(long long)siteId
                        accessUserId:(NSString *)accessUserId
                        deviceIdList:(NSArray<NSString *> *)deviceIdList
                             success:(TYSuccessHandler)success
                             failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
accessUserId 通行人员 ID
deviceIdList 需要添加的设备 ID 数组
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access addAppAccessDeviceWithSiteId:siteId accessUserId:accessUserId deviceIdList:deviceIdList success:^{

} failure:^(NSError *error) {

}];

移除 App 通行人员的设备

接口说明

- (void)removeAppAccessDeviceWithSiteId:(long long)siteId
                           accessUserId:(NSString *)accessUserId
                               deviceId:(NSString *)deviceId
                                success:(TYSuccessHandler)success
                                failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
accessUserId 通行人员 ID
deviceIdList 需要添加的设备 ID 数组
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access removeAppAccessDeviceWithSiteId:siteId accessUserId:accessUserId deviceId:deviceId success:^{

} failure:^(NSError *error) {

}];

删除 App 通行人员

接口说明

- (void)removeAppAccessWithSiteId:(long long)siteId
                     accessUserId:(NSString *)accessUserId
                          success:(TYSuccessHandler)success
                          failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
accessUserId 通行人员 ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access removeAppAccessWithSiteId:siteId accessUserId:accessUserId success:^{

} failure:^(NSError *error) {

}];

更新 App 通行人员信息

接口说明

- (void)updateAppAccessWithSiteId:(long long)siteId
                     accessUserId:(NSString *)accessUserId
                         nickName:(NSString *)nickName
                         userType:(TuyaResidenceAccessUserType)userType
                        startTime:(long)startTime
                          endTime:(long)endTime
                          success:(TYSuccessHandler)success
                          failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
accessUserId 通行人员 ID
nickName 昵称
userType 身份类型:
  • 20:管理员
  • 30:普通成员
通行站点和商家授权站点只能创建 userType 等于 30 的 App 通行人员
startTime 开始时间,13 位时间戳,-1 为无限期
endTime 结束时间,13 位时间戳,-1 为无限期
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access updateAppAccessWithSiteId:siteId accessUserId:accessUserId nickName:nickname userType:userType startTime:startTime endTime:endTime success:^{

} failure:^(NSError *error) {

}];

密码通行

添加密码通行人员

接口说明

- (void)addPasswordAccessWithModel:(TuyaResidenceAddPasswordAccessModel *)requstModel
                           success:(TYSuccessHandler)success
                           failure:(TYFailureError)failure;

参数说明

参数 说明
TuyaResidenceAddPasswordAccessModel 添加密码通行人员请求模型
success 成功回调
failure 失败回调

TuyaResidenceAddPasswordAccessModel 数据模型

字段 类型 描述
siteId long long 站点 ID
deviceIdList NSArray<NSString *> 通行设备 ID 列表
passwordInfo TuyaResidencePasswordInfoModel 密码信息
userList NSArray<TuyaResidencePasswordUserModel *> 密码通行人员模型

TuyaResidencePasswordInfoModel 数据模型

字段 类型 描述
passwordValue NSString 密码

TuyaResidencePasswordUserModel 数据模型

字段 类型 描述
nickname NSString 昵称
username NSString 账号

示例代码

Objc:

[self.access addPasswordAccessWithModel:reqModel success:^{

} failure:^(NSError *error) {

}];

查询密码通行人员列表

接口说明

- (void)fetchPasswordAccessListWithSiteId:(long long)siteId
                                effective:(BOOL)effective
                                   pageNo:(NSInteger)pageNo
                                 pageSize:(NSInteger)pageSize
                                  success:(void (^)(NSArray<TuyaResidencePasswordAccessModel *> *accessPasswordList))success
                                  failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
effective
  • YES:有效通行
  • NO:失效通行
pageNo 页码号,从 1 开始,每次加 1
pageSize 单次请求返回数量,最小为 10,最大为 100
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchPasswordAccessListWithSiteId:siteId effective:YES pageNo:1 pageSize:20 success:^(NSArray<TuyaResidencePasswordAccessModel *> * _Nonnull accessPasswordList) {

 } failure:^(NSError *error) {

}];

查询密码通行人员的详情

接口说明

- (void)fetchPasswordAccessUserDetailWithSiteId:(long long)siteId
                                    authGroupId:(NSString *)authGroupId
                                        success:(void (^)(TuyaResidencePasswordAccessModel *accessPasswordModel))success
                                        failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchPasswordAccessUserDetailWithSiteId:siteId authGroupId:authGroupId success:^(TuyaResidencePasswordAccessModel * _Nonnull accessPasswordModel) {

} failure:^(NSError *error) {

}];

查询密码通行人员的通行记录

接口说明

- (void)fetchPasswordAccessPassRecordWithSiteId:(long long)siteId
                                    authGroupId:(NSString *)authGroupId
                                         pageNo:(NSInteger)pageNo
                                       pageSize:(NSInteger)pageSize
                                        success:(void(^)(NSArray<TuyaResidenceAccessRecordModel *> *accessUserRecordList))success
                                        failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
pageNo 页码号,从 1 开始,每次加 1
pageSize 单次请求返回数量,最小为 10,最大为 100
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchPasswordAccessPassRecordWithSiteId:siteId authGroupId:authGroupId pageNo:1 pageSize:20 success:^(NSArray<TuyaResidenceAccessRecordModel *> * _Nonnull accessUserRecordList) {

} failure:^(NSError *error) {

}];

查询密码通行人员的总数

接口说明

- (void)fetchPasswordAccessTotalWithSiteId:(long long)siteId
                                 effective:(BOOL)effective
                                   success:(void(^)(NSInteger total))success
                                   failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
effective
  • YES:有效通行
  • NO:失效通行
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchPasswordAccessTotalWithSiteId:siteId effective:effective success:^(NSInteger total) {

} failure:^(NSError *error) {

}];

删除密码通行人员

设备必须在线,删除通行人员的指令才能下发到设备,完成删除。否则会造成删除失败。执行 [TuyaSmartDevice deviceWithDeviceId:deviceId] 方法可以查询设备的信息,包括在线状态。

接口说明

- (void)removePasswordAccessWithSiteId:(long long)siteId
                           authGroupId:(NSString *)authGroupId
                               success:(TYSuccessHandler)success
                               failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access removePasswordAccessWithSiteId:siteId authGroupId:authGroupId success:^{

} failure:^(NSError *error) {

}];

为密码通行人员添加设备

设备必须在线,添加人员指令才能下发到设备,完成添加。否则会造成添加失败。执行 [TuyaSmartDevice deviceWithDeviceId:deviceId] 方法可以查询设备的信息,包括在线状态。

接口说明

- (void)addPasswordAccessDeviceWithSiteId:(long long)siteId
                              authGroupId:(NSString *)authGroupId
                             deviceIdList:(NSArray<NSString *> *)deviceIdList
                                  success:(TYSuccessHandler)success
                                  failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
deviceIdList 设备 ID 列表
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access addPasswordAccessDeviceWithSiteId:siteId authGroupId:authGroupId deviceIdList:deviceIdList success:^{

} failure:^(NSError *error) {

}];

移除密码通行人员的设备

设备必须在线,移除设备指令才能下发到设备,完成移除。否则会造成移除失败。执行 [TuyaSmartDevice deviceWithDeviceId:deviceId] 方法可以查询设备的信息,包括在线状态。

接口说明

- (void)removePasswordAccessDeviceWithSiteId:(long long)siteId
                                 authGroupId:(NSString *)authGroupId
                                    deviceId:(NSString *)deviceId
                                     success:(TYSuccessHandler)success
                                     failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
deviceId 设备 ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access removePasswordAccessDeviceWithSiteId:siteId authGroupId:authGroupId deviceId:deviceId success:^{

} failure:^(NSError *error) {

}];

更新密码通行人员的密码信息

接口说明

- (void)updatePasswordAccessValidityWithSiteId:(long long)siteId
                                   authGroupId:(NSString *)authGroupId
                                  doorPassword:(TuyaResidenceBasePasswordInfoModel *)doorPassword
                                  deviceIdList:(NSArray<NSString *> *)deviceIdList
                                       success:(TYSuccessHandler)success
                                       failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
doorPassword 门锁密码模型
deviceIdList 设备 ID 列表
success 成功回调
failure 失败回调

TuyaResidenceBasePasswordInfoModel 数据模型

字段 类型 描述
authType TuyaResidencePasswordAuthType 密码类型
  • TuyaResidencePasswordAuthTypeTemporary:临时密码
  • TuyaResidencePasswordAuthTypePeriodic:周期密码
authName NSString 授权名称
effectiveTime long 生效时间,13 位时间戳
invalidTime long 失效时间,13 位时间戳
scheduleRepeat NSInteger 重复类型
  • 0:不重复
  • 1:按周期重复
schedule TuyaResidencePasswordScheduleModel scheduleRepeat 为 1 时,需要设置此模型

TuyaResidencePasswordScheduleModel 数据模型

字段 类型 描述
startClock NSInteger 开始时间,如:
  • 9:00 表示为 9 * 60 + 0 = 540
  • 9:10 表示为 9 * 60 + 10 = 550
endClock NSInteger 结束时间,如 21:00 表示为 21 * 60 = 1260
weekDay NSInteger 重复方案,用 7 位 2 进制表示,需要重复的置为 1,否则为 0,然后转换为 10 进制
例如,周一到周五重复表示为 1111100,则 10 进制为 124

示例代码

Objc:

[self.access updatePasswordAccessValidityWithSiteId:siteId authGroupId:authGroupId doorPassword:doorModel deviceIdList:deviceIdList success:^{

} failure:^(NSError *error) {

}];

更新密码通行人员的昵称

接口说明

- (void)updatePasswordAccessNicknameWithSiteId:(long long)siteId
                                   authGroupId:(NSString *)authGroupId
                                      nickName:(NSString *)nickName
                                       success:(TYSuccessHandler)success
                                       failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
authGroupId 授权组 ID
nickName 昵称
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access updatePasswordAccessNicknameWithSiteId:siteId authGroupId:authGroupId nickName:nickname success:^{

} failure:^(NSError *error) {

}];

其他

查询通行设备列表

接口说明

- (void)fetchDeviceListWithSiteId:(long long)siteId
                          success:(void(^)(NSArray<TuyaSmartDeviceModel *> *devices))success
                          failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 当前 site ID
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access fetchDeviceListWithSiteId:model.siteId success:^(NSArray<TuyaSmartDeviceModel *> * _Nonnull devices) {

} failure:^(NSError *error) {

}];

查询账号是否注册

接口说明

- (void)checkAccessAccountWithUserAccount:(NSString *)userAccount
                               success:(TYSuccessBOOL)success
                               failure:(TYFailureError)failure;

参数说明

参数 说明
userAccount 用户账号
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access checkAccessAccountWithUserAccount:username success:^(BOOL result) {

} failure:^(NSError *error) {

}];

查询用户身份

查询某个站点中的用户身份,是通行成员、站点成员还是未注册用户。

接口说明

- (void)checkAccessAuthorizationWithSiteId:(long long)siteId
                               userAccount:(NSString *)userAccount
                                   success:(void(^)(TuyaResidenceAccessMemberType result))success
                                   failure:(TYFailureError)failure;

参数说明

参数 说明
siteId 站点 ID
userAccount 用户账号
success 成功回调
failure 失败回调

示例代码

Objc:

[self.access checkAccessAuthorizationWithSiteId:siteId userAccount:userAccount success:^(TuyaResidenceAccessMemberType result) {

} failure:^(NSError *error) {

}];