门锁管理

更新时间:2024-11-22 02:19:30下载pdf

本文介绍如何管理门锁。

获取已添加的门锁列表

接口说明

ILockSite # void getLockDeviceList(long startId, IThingResultCallback<ArrayList<DeviceBeanWrapper>> callback);

参数说明

参数 说明
start_id 门锁列表分页游标。第一次传 0,后续分页查询上一次返回结果中最后一个设备的 gatewayIndexId 的值
callback 门锁列表结果回调

示例代码

ThingOSLock.newSiteInstance(siteId).getLockDeviceList(0L, new IThingResultCallback<ArrayList<DeviceBeanWrapper>>() {
    @Override
    public void onSuccess(ArrayList<DeviceBeanWrapper> result) {
        //Got the lock device list successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to get the lock device list
    }
});

  • 获取门锁列表接口为分页请求,每页请求设备数为 20
  • 接口中的 start_id 为门锁列表分页游标。第一次传 0,后续分页查询上一次返回结果中最后一个设备的 gatewayIndexId 的值。

获取门锁详情

接口说明

ILockDevice # void getLockDetail(IThingResultCallback<LockDetailBean> callback);

参数说明

参数 说明
callback 结果回调

示例代码

ThingOSLock.newLockInstance(siteId, deviceId).getLockDetail (new IThingResultCallback<LockDetailBean>() {
    @Override
    public void onSuccess(LockDetailBean result) {
        //Got lock details successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to get lock details
    }
});

LockDeviceBean字段说明

字段 说明
deviceId 当前门锁设备 ID
deviceName 当前门锁设备名称
gatewayId 当前门锁的网关设备 ID,没有网关时为空
gatewayName 当前门锁的网关设备名称,没有网关时为空
deviceType 门锁设备类型
  • single-ble:蓝牙单点且不在网关下
  • gateway-device:在网关下的设备
online 门锁云端在线状态
  • true:云端在线
  • false:云端离线
electricQuantity 门锁电量值
deviceRole 门锁在当前账号下的设备角色
  • owner:设备所有者
  • admin:设备管理员
  • member:普通用户
supportAbilities 当前设备支持的能力集合,有以下枚举能力:
  • e-key:电子钥匙
  • offline-passcode:离线密码
  • temporary-passcode:在线密码
  • card:卡片
  • fingerprint:指纹
  • admin:管理员
  • log:设备日志
  • remote-unlock:远程开锁
  • setting:设置
  • remote-close:远程关锁
livecycleType 设备生命周期
  • permanent:永久生效
  • periodicity:限时生效
  • once:单次生效
timeScheduleInfo 设备时间设置对象
eKeyId 设备作为电子钥匙时的 ID
automaticLock 是否支持自动落锁
closedOpenedState 当前门锁开合状态
manualCloseFlag 设备当前状态下是否支持手动关锁
  • true:支持
  • false:不支持
reverseLockState 设备反锁状态
  • -1:未知
  • 1:设备已反锁
  • 0:设备未反锁
connectionStatus 设备当前连接状态
isSupportOta 设备是否支持 OTA 升级
timeZoneId 设备所在时区
account 设备所属账号

打开门锁

接口说明

ILockDevice # void unlock(IThingResultCallback<Boolean> callback);

参数说明

参数 说明
callback 开锁结果回调

示例代码

ThingOSLock.newLockInstance(siteId, deviceId).unlock( new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Unlocked successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to unlock
    }
});

关闭门锁

接口说明

ILockDevice # void lock(IThingResultCallback<Boolean> callback);

参数说明

参数 说明
callback 关锁结果回调

示例代码

ThingOSLock.newLockInstance(siteId, deviceId).lock( new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Locked successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to lock
    }
});

  • 门锁是否可以执行手动关锁与当前设备的 DP 配置、门锁反锁状态、门锁当前打开状态、以及自动落锁状态等因素均有关系。
  • 执行 lock 方法前,建议使用门锁详情返回的 LockDetailBean 对象的 manualCloseFlag 进行判断。
    • true 表示可以进行手动关锁。
    • false 表示不可以进行手动关锁。

修改门锁名称

接口说明

ILockDevice # void updateName(String name, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
name 门锁名称
callback 修改名称结果回调

示例代码

ThingOSLock.newLockInstance(siteId, deviceId).updateName(newLockName, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Updated name successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to update name
    }
});

删除门锁

接口说明

ILockSite # void deleteLock(String devId, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
devId 要删除的门锁 ID
callback 删除结果回调

示例代码

ThingOSLock.newSiteInstance(siteId).deleteLock(devId, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Deleted lock successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to delete lock
    }
});

使用该方法进行门锁设备移除时,需确保设备处于在线状态,否则设备将无法进行删除操作。

强制删除门锁

接口说明

ILockSite # void forceDeleteLock(String devId, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
devId 要强制删除的门锁 ID
callback 强制删除结果回调

示例代码

ThingOSLock.newSiteInstance(siteId).forceDeleteLock(devId, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Deleted lock successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to delete lock
    }
});

  • 当设备在无法正常使用和连接的情况下需要进行门锁设备移除操作时,可使用该方法。
  • 调用该方法在设备无法正常在线时进行门锁设备移除,不会擦除门锁设备已写入的数据。必要时,可能需要手动重置该设备,以便使设备重新进入配网状态。

设置自动落锁开关状态

接口说明

ILockDevice # void setAutoLockSwitch(boolean autoLockEnable, IThingResultCallback<Boolean> callback);

参数说明

参数 说明
autoLockEnable 是否开启自动落锁
callback 开启自动落锁结果回调

示例代码

ThingOSLock.newLockInstance(siteId, deviceId).setAutoLockSwitch(true, new IThingResultCallback<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {
        //Enabled auto-lock successfully
    }

    @Override
    public void onError(String errorCode, String errorMessage) {
        //Failed to enable auto-lock
    }
});

判断设备是否支持自动落锁

接口说明

ILockDevice # boolean isSupportAutoLock();

参数说明

参数 说明
返回值 是否支持自动落锁
  • true:支持自动落锁
  • false:不支持自动落锁

示例代码

 ThingOSLock.newLockInstance(siteId, deviceId).isSupportAutoLock()