更新时间:2022-02-17 06:49:49下载pdf
智能门禁是能够通过客户端进行智能开门的功能。门禁支持远程开门、二维码等多种通行方式,通行记录能够实时统计,提高了居民的通行效率,提升物业的管理效率。是一种让开门更加方便,让社区更加安全的功能。
智能门禁支持移动端开门、二维码开门。主要涉及的类为 TuyaCommunitySmartDoorService
。
查询该房屋下所有的智能门禁设备。
接口说明
- (void)getSmartDoorListWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
success:(void(^)(NSArray<TuyaCommunitySmartDoorInfoModel *>*models))success
failure:(void(^)(NSError *error))failure;
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID,可以从 TuyaCommunityHouseModel 中查询到 |
roomId | 房屋 ID,可以从 TuyaCommunityHouseModel 中查询到 |
success | 成功回调,参数中每个 TuyaCommunitySmartDoorInfoModel 数据模型代表一个门禁 |
failure | 失败回调,回调中展示失败原因 |
TuyaCommunitySmartDoorInfoModel
参数说明
参数 | 说明 |
---|---|
deviceId | 设备 ID,每个设备拥有唯一 ID |
deviceName | 设备名称 |
示例代码
TuyaCommunityHouseModel *houseModel = <#从房屋列表接口中查询的当前登录的其中一个家庭#>;
[self.service getSmartDoorListWithCommunityId:houseModel.communityId
roomId:houseModel.roomId
success:^(NSArray<TuyaCommunitySmartDoorInfoModel *> * _Nonnull models) {
//do something
} failure:^(NSError * _Nonnull error) {
NSLog(@"error = %@",error);
}];
在查询到门禁列表后,可以调用接口打开相应的门禁。
接口说明
- (void)openDoorWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
success:(void(^)(NSString *accessLogId))success
failure:(void(^)(NSError *error))failure;
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID,可以从 TuyaCommunityHouseModel 中查询到 |
roomId | 房屋 ID,可以从 TuyaCommunityHouseModel 中查询到 |
deviceId | 设备 ID,TuyaCommunitySmartDoorInfoModel 对应的 deviceId |
success | 请求成功后,返回通行记录 ID |
failure | 失败回调,回调中展示失败原因 |
示例代码
TuyaCommunityHouseModel *houseModel = <#从房屋列表接口中查询的当前登录的其中一个家庭#>;
[self.service openDoorWithCommunityId:houseModel.communityId
roomId:houseModel.roomId
deviceId:model.deviceId
success:^(NSString * _Nonnull accessLogId) {
// do something
} failure:^(NSError * _Nonnull error) {
NSLog(@"error = %@",error);
}];
由于发送开门请求后,不会通过接口立刻返回是否开门成功,因此需要在请求开门后隔若干时间(如 0.3 秒)询问是否开门成功。
接口说明
- (void)checkOpenDoorResultWithCommunityId:(NSString *)communityId
accessLogId:(NSString *)accessLogId
success:(void(^)(TuyaCommunitySmartDoorOpenResult result))success
failure:(void(^)(NSError *error))failure;
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID,可以从 TuyaCommunityHouseModel 中查询到 |
accessLogId | 通行记录ID |
success | 请求成功。TuyaCommunitySmartDoorOpenResult:
|
示例代码
TuyaCommunityHouseModel *houseModel = <#从房屋列表接口中查询的当前登录的其中一个家庭#>;
__weak __typeof(self) weakSelf = self;
[self.service checkOpenDoorResultWithCommunityId:houseModel.communityId
accessLogId:logId
success:^(TuyaCommunitySmartDoorOpenResult result) {
switch (result) {
case TuyaCommunitySmartDoorOpenResultOpening: {
NSTimeInterval outTime = [[NSDate date] timeIntervalSince1970];
if (outTime - self.currentTime > 3000.f) {
NSLog(@"Open Door Failure");
} else {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[weakSelf getOpenReustWithLogId:logId];
});
}
}
break;
case TuyaCommunitySmartDoorOpenResultSuccess: {
NSLog(@"Open Door Success");
break;
}
case TuyaCommunitySmartDoorOpenResultFailure: {
NSLog(@"Open Door Failure");
}
default:
break;
}
} failure:^(NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
当用户通过客户端进行开门后,即可生成一条开门记录。
接口说明
- (void)getSmartDoorOpenRecordsWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
success:(void(^)(NSArray<TuyaCommunitySmartDoorOpenRecordModel *> *models))success
failure:(void(^)(NSError *error))failure;
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID,可以从 TuyaCommunityHouseModel 中查询到 |
roomId | 房屋 ID,可以从 TuyaCommunityHouseModel 中查询到 |
success | 成功回调,每个 TuyaCommunitySmartDoorOpenRecordModel 代表一条记录 |
failure | 失败回调,回调中展示失败原因 |
TuyaCommunitySmartDoorOpenRecordModel
参数说明
参数 | 说明 |
---|---|
accessLogId | 记录日志的ID |
accessControlName | 被控制设备名称 |
accessControlAddress | 被控制设备所在地址 |
accessTime | 记录产生时间 |
accessDirection | 日志记录设备状态:
|
示例代码
TuyaCommunityHouseModel *houseModel = <#从房屋列表接口中查询的当前登录的其中一个家庭#>;
[self.service getSmartDoorOpenRecordsWithCommunityId:houseModel.communityId
roomId:houseModel.roomId
success:^(NSArray<TuyaCommunitySmartDoorOpenRecordModel *> * _Nonnull models) {
// do something
} failure:^(NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
接口说明
- (void)getCommunityQrCodeWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
success:(void(^)(TuyaCommunityQRCodeModel *result))success
failure:(void(^)(NSError *error))failure;
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID,可以从 TuyaCommunityHouseModel 中查询到 |
roomId | 房屋 ID,可以从 TuyaCommunityHouseModel 中查询到 |
success | 成功回调,查询到二维码信息和可被识别的设备 |
failure | 失败回调,回调中展示失败原因 |
TuyaCommunityQRCodeModel
参数说明
参数 | 说明 |
---|---|
qrCodeUrl | 需要生成二维码的字符串 |
expire | URL 过期时间 |
accessDoorList | 可被通过的门禁数据列表,每个元素为设备名称 |
accessElevatorList | 可被通过的电梯数据列表,每个元素为设备名称 |
示例代码
TuyaCommunityHouseModel *houseModel = <#从房屋列表接口中查询的当前登录的其中一个家庭#>;
[self.service getCommunityQrCodeWithCommunityId:houseModel.communityId
roomId:houseModel.roomId
success:^(TuyaCommunityQRCodeModel * _Nonnull model) {
UIImage *image = <#将model.qrCodeUrl 转为二维码图片#>;
//do something
} failure:^(NSError * _Nonnull error) {
NSLog(@"error = %@",error);
}];
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈