智能门禁

更新时间:2022-02-17 06:56:21下载pdf

智能门禁是能够通过客户端进行智能开门的功能。门禁支持远程开门、二维码等多种通行方式,通行记录能够实时统计,提高了居民的通行效率,提升物业的管理效率。是一种让开门更加方便,让社区更加安全的功能。

功能说明

  • ITuyaCommunitySmartDoor:提供了对智能门禁进行移动端开门、二维码开门的能力。
  • TuyaCommunitySDK.getSmartDoorInstance():查询类。

查询门禁设备列表

查询该房屋下拥有权限的智能门禁设备。

接口说明

void getSmartDoorList(String communityId, String roomId, ITuyaCommunityResultCallback<ArrayList<TuyaCommunitySmartDoorInfoBean>> callback);

参数说明

参数 说明
communityId 小区 ID,通过 TuyaCommunitySDK.newHouseInstance(houseId) 查询当前房屋的 communityId
roomId 房号 ID,通过 TuyaCommunitySDK.newHouseInstance(houseId) 查询当前房屋的 roomId
callback 结果回调

TuyaCommunitySmartDoorInfoBean 参数说明

参数 说明
deviceId 设备 ID,每个设备拥有唯一ID
deviceName 设备名称

示例代码

TuyaCommunitySDK.getSmartDoorInstance().getSmartDoorList(communityId, roomId, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunitySmartDoorInfoBean>>() {
			@Override
			public void onSuccess(ArrayList<TuyaCommunitySmartDoorInfoBean> tuyaCommunitySmartDoorInfoBeans) {
				// do something
			}

			@Override
			public void onFailure(String s, String s1) {
				// do something
			}
		});

打开门禁

接口说明

void openDoor(String communityId, String roomId, String deviceId, ITuyaCommunityResultCallback<String> callback);

参数说明

参数 说明
communityId 小区 ID
roomId 房号 ID
deviceId 设备 ID getSmartDoorList 方法返回数据中 TuyaCommunitySmartDoorInfoBean 中的 deviceId
callback 结果回调(返回通行记录 ID)

示例代码

TuyaCommunitySDK.getSmartDoorInstance().openDoor(getBlockId(), getRoomId(), bean.getDeviceId(), new ITuyaCommunityResultCallback<String>() {
			@Override
			public void onSuccess(String accessLogId) {
				// do something
			}

			@Override
			public void onFailure(String s, String s1) {
				// do something
			}
		});

查询开门结果

调用开门接口 openDoor() 后,可隔一段时间轮询此接口,例如 0.5 秒。

接口说明

	void checkOpenDoorResult(String communityId, String accessLogId, ITuyaCommunityResultCallback<TuyaCommunitySmartDoorOpenResult> callback);

参数说明

参数 说明
communityId 小区 ID
accessLogId 通行记录 ID
callback 结果回调 TuyaCommunitySmartDoorOpenResult
  • 0:未知
  • 1:成功
  • 2:失败

示例代码

TuyaCommunitySDK.getSmartDoorInstance().checkOpenDoorResult(getBlockId(), accessLogId, new ITuyaCommunityResultCallback<TuyaCommunitySmartDoorOpenResult>() {
			@Override
			public void onSuccess(TuyaCommunitySmartDoorOpenResult tuyaCommunitySmartDoorOpenResult) {
				// do something
			}

			@Override
			public void onFailure(String s, String s1) {
				// do something
			}
		});

查询门禁开门记录

接口说明

void getSmartDoorOpenRecords(String communityId, String roomId, ITuyaCommunityResultCallback<ArrayList<TuyaCommunitySmartDoorOpenRecordBean>> callback);

参数说明

参数 说明
communityId 小区 ID
roomId 房号 ID
callback 结果回调

TuyaCommunitySmartDoorOpenRecordBean 参数说明

参数 说明
accessLogId 记录日志的ID
accessControlName 被控制设备名称
accessControlAddress 被控制设备所在地址
accessTime 记录产生时间
accessDirection 日志记录设备状态:
  • TuyaCommunitySmartDoorOpenDirection.OUT:2 离开记录
  • TuyaCommunitySmartDoorOpenDirection.IN:1 进门记录
  • TuyaCommunitySmartDoorOpenDirection.FAILURE:0 开门失败

示例代码

TuyaCommunitySDK.getSmartDoorInstance().getSmartDoorOpenRecords(blockId, roomId, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunitySmartDoorOpenRecordBean>>() {
			@Override
			public void onSuccess(ArrayList<TuyaCommunitySmartDoorOpenRecordBean> tuyaCommunitySmartDoorOpenRecordBeans) {
		// do something
			}

			@Override
			public void onFailure(String s, String s1) {
				// do something
			}
		});

查询门禁信息

查询门禁二维码,可进行开门操作,以及列出可开门的门禁、梯控权限集合。

接口说明

void getCommunityQrCode(String communityId, String roomId, ITuyaCommunityResultCallback<TuyaCommunityQRCodeBean> callback);

TuyaCommunityQRCodeBean 参数说明

参数 说明
qrCodeUrl 需要生成二维码的字符串
expire URL 过期时间
accessDoorList 可被通过的门禁数据列表,每个元素为设备名称
accessElevatorList 可被通过的电梯数据列表,每个元素为设备名称

参数说明

参数 说明
communityId 小区 ID
roomId 房号 ID
callback 结果回调 返回有二维码字符串 twoDimensionalCode,可通过 ZXing 的 BarcodeFormat.QR_CODE 模式将二维码内容转成 Bitmap,具体可查看社区 Demo 中的实现方式

示例代码

TuyaCommunitySDK.getSmartDoorInstance().getCommunityQrCode(communityId, roomId, new ITuyaCommunityResultCallback<TuyaCommunityQRCodeBean>() {
			@Override
			public void onSuccess(TuyaCommunityQRCodeBean bean) {
				// do something
			}

			@Override
			public void onFailure(String s, String s1) {
				// do something
			}
		});