更新时间:2024-06-04 03:42:59下载pdf
本文介绍了蓝牙门锁功能列表以及与门锁成员、蓝牙连接、门锁记录、密码解锁、指纹解锁、卡片解锁等相关的操作。
类名 | 说明 |
---|---|
ThingSmartBLELockDevice |
蓝牙门锁设备操作类,继承自 ThingSmartDevice |
ThingSmartBLELockDeviceDelegate |
蓝牙门锁设备协议代理,拓展自 ThingSmartDeviceDelegate |
名词列表 | 说明 |
---|---|
门锁劫持 | 指将特定的指纹、密码等,设置为劫持密码,当用户被劫持,并使用该密码开锁时,门会打开。同时,门锁将开门报警信息发送至家人手机或物业管理系统。 |
门锁成员 | 门锁成员分为 家庭成员 与 非家庭成员:
|
lockUserId | 创建门锁成员时,云端为设备分配的固件成员 ID,代表着固件内记录的用户 ID。 |
userId | 创建门锁成员时,云端分配的数据库记录 ID,代表着用户的唯一 ID。 |
dpCode | 设备功能的标识符。每个设备功能都有对应的名称和编号,可参考 门锁功能列表。 |
本小节介绍门锁成员中 家庭成员(Pro 门锁) 和 非家庭成员(旧公版门锁) 的管理操作。
接口说明
该接口适用于低版本公版门锁。
- (void)getMemberListWithSuccess:(nullable void(^)(NSArray<ThingSmartBLELockMemberModel *> *members))success
failure:(ThingFailureError)failure;
接口说明
该接口适用于 Pro 门锁。
- (void)getProLockMemberListWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备ID |
success | 成功回调,成员列表 |
failure | 失败回调 |
ThingSmartBLELockMemberModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
userId | NSString | 成员编号 ID |
userContact | NSString | 联系方式 |
avatarUrl | NSString | 头像地址 |
nickName | NSString | 成员名称 |
userTimeSet | NSString | 成员时效性数据 |
phase | NSUInteger | 冻结情况
|
status | NSUInteger | 用户状态 |
lockUserId | int | 门锁上的用户 ID |
userType | NSUInteger | 用户类型
|
supportOpenType | NSArray | 支持的开锁方式 |
shareUser | NSString | 分享的用户账号 |
productAttribute | NSUInteger | 设备产品属性 |
示例代码
Objective-C:
[self.lock getMemberListWithSuccess:^(NSArray<ThingSmartBLELockMemberModel *> * _Nonnull list) {
NSLog(@"成员列表 %@", list);
} failure:^(NSError *error) {
NSLog(@"查询成员列表失败,error: %@", error);
}];
Swift:
self.lock?.getMemberList(success: { (list) in
print("成员列表 \(list)")
}, failure: { (error) in
if let e = error {
print("查询成员列表失败, error: \(e)")
}
})
创建非家庭成员,后续可以单独为该成员绑定解锁方式。
接口说明
该接口适用于低版本公版门锁。
- (void)addMemberWithUserName:(NSString *)userName
allowUnlock:(BOOL)allowUnlock
timeType:(ThingMemberTimeType)timeType
effectiveDate:(NSDate *)effectiveDate
invalidDate:(NSDate *)invalidDate
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
userName | 成员名称 |
allowUnlock | 是否允许成员使用蓝牙解锁 |
timeType | 时效性
|
effectiveDate | 生效时间 |
invalidDate | 失效时间 |
success | 成功回调 |
failure | 失败回调 |
该接口仅创建非家庭成员。有关家庭成员的管理,请参考 家庭成员管理。
接口说明
该接口适用于 Pro 门锁。
- (void)createProLockMemberWithHomeId:(long long)homeId
requestModel:(ThingSmartHomeAddMemberRequestModel *)requestModel
success:(ThingSuccessDict)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
homeId | 成员名称 |
requestModel | 参考 家庭成员管理 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock addMemberWithUserName:#<成员名称># allowUnlock:YES timeType:ThingMemberTimeTypePhase effectiveDate:[NSDate date] invalidDate:[[NSDate date] dateByAddingTimeInterval:60 * 60 * 8] success:^(BOOL result) {
NSLog(@"创建门锁成员成功");
} failure:^(NSError *error) {
NSLog(@"创建门锁成员失败,error: %@", error);
}];
Swift:
self.lock?.addMember(withUserName: "name", allowUnlock: true, timeType: .phase, effectiveDate: Date(), invalidDate: Date().addingTimeInterval(60 * 60 * 8), success: { (result) in
print("创建门锁成员成功")
}, failure: { (error) in
if let e = error {
print("创建门锁成员失败, error: \(e)")
}
})
修改门锁成员信息会和硬件进行交互,需要门锁保持蓝牙连接。
接口说明
该接口适用于低版本公版门锁。
- (void)updateMemberWithUserName:(NSString *)userName
memberId:(NSString *)memberId
allowUnlock:(BOOL)allowUnlock
timeType:(ThingMemberTimeType)timeType
effectiveDate:(NSDate *)effectiveDate
invalidDate:(NSDate *)invalidDate
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
userName | 成员名称 |
memberId | 成员 ID |
allowUnlock | 是否允许使用蓝牙解锁 |
timeType | 时效性
|
effectiveDate | 生效时间 |
invalidDate | 失效时间 |
success | 成功回调 |
failure | 失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)updateProLockMemberInfoWithRequestModel:(ThingSmartHomeMemberRequestModel *)memberRequestModel
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberRequestModel | 参考 家庭成员管理 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock updateMemberWithUserName:@"new name" memberId:@"0000008byw" allowUnlock:YES timeType:ThingMemberTimeTypePermanent effectiveDate:[NSDate date] invalidDate:[[NSDate date] dateByAddingTimeInterval:60 * 60 * 8] success:^(BOOL result) {
NSLog(@"更新门锁成员成功");
} failure:^(NSError *error) {
NSLog(@"创建门锁成员失败,error: %@", error);
}];
Swift:
self.lock?.updateMember(withUserName: "new name", memberId: "0000008byw", allowUnlock: true, timeType: .phase, effectiveDate: Date(), invalidDate: Date().addingTimeInterval(60 * 60 * 8), success: { (result) in
print("更新门锁成员信息成功")
}, failure: { (error) in
if let e = error {
print("更新门锁成员信息失败, error: \(e)")
}
})
删除门锁成员会和硬件进行交互,会删除该用户下所有的开锁方式、密码等,需要门锁保持蓝牙连接。
接口说明
该接口适用于低版本公版门锁。
- (void)removeMemberWithMemberId:(NSString *)memberId
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 成员编号 ID |
success | 成功回调 |
failure | 失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)removeProLockMemberWithUserId:(NSString *)userId
isAdmin:(BOOL)isAdmin
success:(ThingSuccessHandler)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
userId | 用户 ID |
isAdmin | 是否是管理员 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock removeMemberWithMemberId:@"000000747d" success:^(BOOL result) {
NSLog(@"删除门锁成员成功");
} failure:^(NSError *error) {
NSLog(@"删除门锁成员失败, error: %@", error);
}];
Swift:
self.lock?.removeMember(withMemberId: "", success: { (result) in
print("删除门锁成员成功")
}, failure: { (error) in
if let e = error {
print("删除门锁成员失败, error: \(e)")
}
})
修改单个成员时效会和硬件进行交互,请保持门锁设备的蓝牙连接。
接口说明
该接口适用于 Pro 门锁。
- (void)updateProLockMemberTimeWithDevId:(NSString *)devId
memberId:(NSString *)memberId
offlineUnlock:(BOOL)offlineUnlock
isAdmin:(BOOL)isAdmin
effectiveDate:(nullable NSDate *)effectiveDate
invalidDate:(nullable NSDate *)invalidDate
schedule:(ThingSmartBLELockTimeScheduleInfo *)scheduleInfo
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
memberId | 成员编号 ID |
offlineUnlock | 是否支持离线解锁 |
isAdmin | 是否管理员 |
effectiveDate | 生效时间 |
invalidDate | 失效时间 |
scheduleInfo | 时效信息 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
//入参数据查询,详见 Demo
[self.bleDevice updateProLockMemberTimeWithDevId:self.bleDevice.deviceModel.devId
memberId:[self.dataSource[@"userId"] stringValue]
offlineUnlock:NO
isAdmin:isAdmin
effectiveDate:[self.timeView getEffectiveData]
invalidDate:[self.timeView getInvalidData]
schedule:[self.timeView getScheduleInfo]
success:^(id result) {
NSLog(@"更新成员时效成功");
} failure:^(NSError *error) {
NSLog(@"更新成员时效失败");
}];
接口说明
该接口适用于低版本公版门锁。
- (void)getCurrentMemberDetailWithDevId:(NSString *)devId
gid:(long long)gid
success:(nullable ThingSuccessDict)success
failure:(nullable ThingFailureError)failure;
接口说明
该接口适用于 Pro 门锁。
- (void)getProCurrentMemberDetailWithDevId:(NSString *)devId
success:(nullable ThingSuccessDict)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice getCurrentMemberDetailWithDevId:self.devId gid:self.bleDevice.deviceModel.homeId success:^(NSDictionary *dict) {
NSLog(@"当前用户信息获取成功!");
} failure:^(NSError *error) {
NSLog(@"当前用户信息获取失败!");
}];
蓝牙门锁需要 App 开启蓝牙后,部分功能才能正常使用。
蓝牙门锁需要 App 开启蓝牙后,部分功能才能正常使用。SDK 在正常情况下会自动连接,通常使用以下方法进行设备连接状态判断。
/// 设备和手机是否已建立蓝牙连接,如果为 NO,可以调用 autoConnect 进行连接
- (BOOL)isBLEConnected;
/// 查询设备连接状态(可判断网关是否在线)
- (BOOL)isOnline;
如果查询结果显示门锁未连接蓝牙,调用此接口可以连接到门锁。
/// 如果没有连接成功或使用过程中断开,可以调用此方法进行连接
- (void)autoConnect;
接口说明
- (void)bleUnlock:(NSString *)lockUserId
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
status | 开锁还是关锁 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
ThingSmartBLELockDevice *lock = [ThingSmartBLELockDevice deviceWithDeviceId:@"your_lock_device_id"];
[lock bleCurrentMemberDetailWithDevId:self.devId gid:self.lock.deviceModel.homeId success:^(NSDictionary *dict) {
NSString *bleUnlock = [dict objectForKey:@"lockUserId"];
[self.bleLockDevice bleUnlock:bleUnlock success:^{
NSLog(@"开锁成功!");
} failure:^(NSError *error) {
NSLog(@"开锁失败!");
}];
} failure:^(NSError *error) {
NSLog(@"bleCurrentMemberDetailWithDevId failure!");
}];
Swift:
lock.bleCurrentMemberDetail(withDevId: devId, gid: lock.deviceModel.homeId, success: { [self] dict in
let bleUnlock = dict?["lockUserId"] as? String
bleLockDevice.bleUnlock(bleUnlock, success: {
print("开锁成功!")
}, failure: { error in
print("开锁失败!")
})
}, failure: { error in
print("bleCurrentMemberDetailWithDevId failure!")
});
接口说明
- (void)bleManualLock:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
ThingSmartBLELockDevice *lock = [ThingSmartBLELockDevice deviceWithDeviceId:@"your_lock_device_id"];
[lock bleManualLock:^{
NSLog(@"落锁成功!");
} failure:^(NSError *error) {
NSLog(@"落锁失败: %ld", error.code);
}];
Swift:
let lockDevice = ThingSmartBLELockDevice(deviceId: "your_lock_device_id")
self.lock?.manualLock(withStatus: status, success: {
print("落锁成功")
}, failure: { (error) in
if let e = error {
print("落锁失败,error: \(e)")
}
})
接口说明
//远程解锁
- (void)remoteSwitchLock:(ThingSuccessBOOL)success
failure:(ThingFailureError)failure;
//远程关锁
- (void)manualLockWithStatus:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
ThingSmartBLELockDevice *lock = [ThingSmartBLELockDevice deviceWithDeviceId:@"your_lock_device_id"];
[lock remoteSwitchLock:^{
NSLog(@"远程解锁成功");
} failure:^(NSError *error) {
NSLog(@"远程解锁失败: %ld", error.code);
}];
[lock manualLockWithStatus:^{
NSLog(@"远程落锁成功");
} failure:^(NSError *error) {
NSLog(@"远程落锁失败: %ld", error.code);
}];
接口说明
- (void)getAlarmRecordListWithOffset:(int)offset
limit:(int)limit
success:(nullable void(^)(NSArray<ThingSmartLockRecordModel *> *records))success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
offset | 页数 |
limit | 条数 |
success | 成功回调,结果为记录列表 |
failure | 失败回调 |
ThingSmartLockRecordModel
数据模型
字段 | 类型 | 描述 |
---|---|---|
userId | NSString | 成员 ID |
userName | NSString | 用户昵称 |
time | NSTimeInterval | 发生时间,13 位时间戳 |
devId | NSString | 设备 ID |
dpData | NSDictionary | DP 数据 |
tags | NSInteger | 标位
|
dpsArray | NSArray<NSDictionary *> | 设备功能的数据组 |
示例代码
Objective-C:
[self.lock getAlarmRecordListWithOffset:0 limit:50 success:^(NSArray<ThingSmartLockRecordModel *> * _Nonnull records) {
NSLog(@"告警记录: %@", records);
} failure:^(NSError *error) {
NSLog(@"查询告警记录失败,error: %@", error);
}];
Swift:
self.lock?.getAlarmRecordList(withOffset: 0, limit: 50, success: { (records) in
print("告警记录 \(records)")
}, failure: { (error) in
if let e = error {
print("查询告警记录失败, error: \(e)")
}
})
接口说明
- (void)getUnlockRecordListWithOffset:(int)offset
limit:(int)limit
success:(nullable void(^)(NSArray<ThingSmartBLELockRecordModel *> *records))success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
offset | 页数 |
limit | 条数 |
success | 成功回调,结果为记录列表 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock getUnlockRecordListWithOffset:0 limit:50 success:^(NSArray<ThingSmartLockRecordModel *> * _Nonnull records) {
NSLog(@"开锁记录: %@", records);
} failure:^(NSError *error) {
NSLog(@"查询开锁记录失败,error: %@", error);
}];
Swift:
self.lock?.getUnlockRecordList(withOffset: 0, limit: 50, success: { (records) in
print("开锁记录 \(records)")
}, failure: { (error) in
if let e = error {
print("查询开锁记录失败, error: \(e)")
}
})
接口说明
- (void)getLockHijackRecordListWithDpCodes:(NSArray<NSString *> *)dpCodes
offset:(NSInteger)offset
limit:(NSInteger)limit
success:(void(^)(NSArray<ThingSmartLockRecordModel *> *))success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
dpCodes | 劫持告警 DP code |
offset | 页数 |
limit | 条数 |
success | 成功回调,结果为记录列表 |
failure | 失败回调 |
接口说明
- (void)getProUnlockRecordListWithDevId:(NSString *)devId
logCategories:(NSString *)logCategories
userIds:(NSString *)userIds
onlyShowMediaRecord:(BOOL)onlyShowMediaRecord
startTime:(NSInteger)startTime
endTime:(NSInteger)endTime
lastRowKey:(NSString *)lastRowKey
limit:(NSInteger)limit
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 页数 |
logCategories | 日志大类
|
userIds | 需要筛选的用户 ID 列表,ID 之间以逗号(, )分隔,例如 12,13 。 |
onlyShowMediaRecord | 是否仅显示带图片或者视频的记录,默认为 False,显示所有记录。 |
startTime | 开始时间,单位为毫秒 |
endTime | 结束时间,单位为毫秒 |
lastRowKey | 上一页的数据 key |
limit | 每页数据个数 |
success | 成功回调 |
failure | 失败回调 |
返回数据字段说明
字段 | 类型 | 描述 |
---|---|---|
hasNext | Boolean | 是否有分页 |
lastRowKey | String | 上一页的数据 Key |
records | List | 记录列表,单个记录参考如下 |
单条记录
字段 | 类型 | 是否必返回 | 描述 |
---|---|---|---|
logId | Long | 是 | 日志编号 |
logCategory | String | 是 | 日志类型
|
logType | String | 是 | 日志类型,详情请参考 附录 |
recordType | Integer | 否 | 仅开门记录返回
|
unlockNameRosettaKey | String | 否 | 关锁记录的类型,详情请参考 附录 |
currentUser | Boolean | 否 | 是否是当前用户的记录,true 表示是,非组合解锁必返回 |
userId | String | 否 | 用户编号,仅开门记录、劫持告警、操作记录返回 |
userName | String | 否 | 用户名称 |
memberBindableFlag | Boolean | 是 | 是否可以绑定到用户 |
unlockName | String | 否 | 解锁方式名称,可能为空 |
time | Long | 是 | 日志事件时间 |
relateDevName | String | 否 | 关联设备名称 |
relateOpMode | String | 否 | 关联解锁信息 |
data | String | 是 | 操作记录,数据格式定义请参考 附录 |
unionUnlockInfo | UnionUnlockInfo | 否 | 组合解锁信息 |
mediaInfoList | List | 否 | 视频和图片信息,仅可视对讲、Wi-Fi 低功耗常保活带视频或者图像的门锁有此字段,参考 MediaInfoBean |
示例代码
Objective-C:
[self.bleDevice getProUnlockRecordListWithDevId:self.bleDevice.deviceModel.devId
logCategories:self.logCategories
userIds:self.userIds
onlyShowMediaRecord:NO
startTime:self.startTime
endTime:self.endTime
lastRowKey:@""
limit:50
success:^(id result) {
NSLog(@"查询日志成功");
} failure:^(NSError *error) {
NSLog(@"查询日志失败");
}];
接口说明
- (void)getProBoundUnlockOpModeListWithDevId:(NSString *)devId
userId:(NSString *)userId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
userId | 成员 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice getProBoundUnlockOpModeListWithDevId:self.bleDevice.deviceModel.devId
userId:[self.dataSource[@"userId"] stringValue]
success:^(id result) {
NSLog(@"列表请求成功");
} failure:^(NSError *error) {
NSLog(@"列表请求失败");
}];
接口说明
- (void)isProNeedAllocUnlockOpModeWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice isProNeedAllocUnlockOpModeWithDevId:self.bleDevice.deviceModel.devId
success:^(id result) {
NSLog(@"接口请求成功");
} failure:^(NSError *error) {
NSLog(@"接口请求失败");
}];
接口说明
- (void)getProUnboundUnlockOpModeListWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice getProUnboundUnlockOpModeListWithDevId:self.bleDevice.deviceModel.devId
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
接口说明
- (void)allocProUnlockOpModeWithDevId:(NSString *)devId
userId:(NSString *)userId
unlockIds:(NSString *)unlockIds
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
userId | 成员 ID |
unlockIds | 解锁方式 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
//userId:被分配的成员 userId unlockIds:解锁方式 ID
[self.bleDevice allocProUnlockOpModeWithDevId:self.bleDevice.deviceModel.devId
userId:userId
unlockIds:@[unlockId].thingsdk_JSONString
success:^(id result) {
NSLog(@"分配成功");
} failure:^(NSError *error) {
NSLog(@"分配失败");
}];
添加通用解锁方式时,需要门锁保持蓝牙连接。
接口说明
- (void)addUnlockOpmodeForMemberWithMemberId:(NSString *)memberId
isAdmin:(BOOL)isAdmin
unlockDpCode:(NSString *)unlockDpCode
unlockOpType:(ThingUnlockOpType)unlockOpType
unlockName:(NSString *)unlockName
effectiveDate:(nullable NSDate *)effectiveDate
invalidDate:(nullable NSDate *)invalidDate
times:(int)times
dataLength:(int)dataLength
dataContent:(NSString *)dataContent
timeout:(NSTimeInterval)timeout
needHijacking:(BOOL)needHijacking
success:(nullable ThingSuccessString)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 成员编号 ID |
isAdmin | 是否是管理员 |
unlockDpCode | 解锁方式对应的功能标识,详细可查看 门锁功能列表,例如卡片解锁对应 unlock_card |
unlockOpType | 解锁方式,可查看 ThingUnlockOpType 枚举 |
unlockName | 解锁方式名称 |
effectiveDate | 生效时间 |
invalidDate | 失效时间 |
times | 解锁方式可用次数 |
dataLength | 数据长度,需要和数据内容长度保持一致 |
dataContent | 数据内容 |
timeout | 命令响应超时时间,如果是需要用户交互的,例如指纹,不用设置超时 |
needHijacking | 是否需要设置防劫持 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock addUnlockOpmodeForMemberWithMemberId:@"00000074zg"
isAdmin:NO
unlockDpCode:@"unlock_password"
unlockOpType:ThingUnlockOpTypePassword
unlockName:@"密码 774641"
effectiveDate:nil
invalidDate:nil
times:10
dataLength:6
dataContent:@"774641"
timeout:6
needHijacking:YES
success:^(NSString *result) {
NSLog(@"添加成功");
} failure:^(NSError *error) {
NSLog(@"添加失败 %@", error);
}];
Swift:
self.lock?.addUnlockOpmodeForMember(withMemberId: "00000074zg", isAdmin: false, unlockDpCode: "unlock_password", unlockOpType: ThingUnlockOpTypePassword, unlockName: "密码 774641", effectiveDate: nil, invalidDate: nil, times: 10, dataLength: 6, dataContent: "774641", timeout: 5, needHijacking: true, success: { (result) in
print("添加成功")
}, failure: { (error) in
if let e = error {
print("添加失败, error: \(e)")
}
})
修改、更新通用的解锁方式时,需要门锁保持蓝牙连接。
接口说明
- (void)modifyUnlockOpmodeForMemberWithMemberId:(NSString *)memberId
opmodeId:(NSString *)opmodeId
isAdmin:(BOOL)isAdmin
firmwareId:(int)firmwareId
unlockDpCode:(NSString *)unlockDpCode
unlockOpType:(ThingUnlockOpType)unlockOpType
unlockName:(NSString *)unlockName
effectiveDate:(nullable NSDate *)effectiveDate
invalidDate:(nullable NSDate *)invalidDate
times:(int)times
dataLength:(int)dataLength
dataContent:(NSString *)dataContent
timeout:(NSTimeInterval)timeout
needHijacking:(BOOL)needHijacking
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
memberId | 成员编号 ID |
opmodeId | 开锁方式 ID,来源查询的开锁方式列表 |
isAdmin | 是否是管理员 |
firmwareId | 硬件 ID |
unlockDpCode | 解锁方式对应的功能标识,详细可查看 门锁功能列表,例如卡片解锁对应 unlock_card |
unlockOpType | 解锁方式,可查看 ThingUnlockOpType 枚举 |
unlockName | 解锁方式名称 |
effectiveDate | 生效时间 |
invalidDate | 失效时间 |
times | 解锁方式可用次数 |
dataLength | 数据长度,需要和数据内容长度保持一致 |
dataContent | 数据内容 |
timeout | 命令响应超时时间,如果是需要用户交互的,例如指纹,不用设置超时 |
needHijacking | 是否需要设置防劫持 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock modifyUnlockOpmodeForMemberWithMemberId:@"00000074zg"
opmodeId:@"232323"
isAdmin:NO
firmwareId:15 //来源自开锁方式数据中的 opmodevalue
unlockDpCode:@"unlock_password"
unlockOpType:ThingUnlockOpTypePassword
unlockName:@"密码 774641"
effectiveDate:nil
invalidDate:nil
times:10
dataLength:6
dataContent:@"774641"
timeout:6
needHijacking:YES
success:^(NSString *result) {
NSLog(@"更新成功");
} failure:^(NSError *error) {
NSLog(@"更新失败 %@", error);
}];
Swift:
self.lock?.modifyUnlockOpmodeForMember(withMemberId: "00000074zg", opmodeId: "232323", isAdmin: false, firmwareId: 15, unlockDpCode: "unlock_password", unlockOpType: ThingUnlockOpTypePassword, unlockName: "密码 774641", effectiveDate: nil, invalidDate: nil, times: 10, dataLength: 6, dataContent: "774641", timeout: 5, needHijacking: true, success: { (result) in
print("更新成功")
}, failure: { (error) in
if let e = error {
print("更新失败, error: \(e)")
}
})
接口说明
- (void)removeUnlockOpmodeForMemberWithOpmodeModel:(ThingSmartBLELockOpmodeModel *)opmodeModel
isAdmin:(BOOL)isAdmin
unlockDpCode:(NSString *)unlockDpCode
unlockOpType:(ThingUnlockOpType)unlockOpType
timeout:(NSTimeInterval)timeout
success:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
opmodeModel | 开锁方式模型 |
isAdmin | 是否是管理员 |
unlockDpCode | 解锁方式对应的功能标识,详细可查看 门锁功能列表,例如卡片解锁对应 unlock_card |
unlockOpType | 解锁方式,可查看 ThingUnlockOpType 枚举 |
timeout | 命令响应超时时间,如果是需要用户交互的,例如指纹,不用设置超时 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.lock removeUnlockOpmodeForMemberWithOpmodeModel:model
isAdmin:NO
unlockDpCode:@"unlock_password"
unlockOpType:ThingUnlockOpTypePassword
timeout:10
success:^{
NSLog(@"删除成功");
} failure:^(NSError *error) {
NSLog(@"删除失败 %@", error);
}]
Swift:
self.lock?.removeUnlockOpmodeForMember(with: model, isAdmin: false, unlockDpCode: "unlock_password", unlockOpType: ThingUnlockOpTypePassword, timeout: 10, success: {
print("删除成功")
}, failure: { (error) in
if let e = error {
print("删除失败, error: \(e)")
}
})
接口说明
- (void)cancelUnlockOpmodeForFingerWithAdmin:(BOOL)isAdmin
lockUserId:(int)lockUserId
success:(nullable ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
isAdmin | 是否是管理员 |
lockUserId | 门锁上的用户 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice cancelUnlockOpmodeForFingerWithAdmin:isAdmin
lockUserId:self.lockUserId
success:^(BOOL result) {
NSLog(@"取消成功");
} failure:^(NSError *error) {
NSLog(@"取消失败");
}];
接口说明
- (void)getProUnlockOpModeDetailWithDevId:(NSString *)devId
opModeId:(NSString *)opModeId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
opModeId | 解锁方式序号 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice getProUnlockOpModeDetailWithDevId:devId
opModeId:opModeId
success:^(id result) {
NSLog(@"查询成功");
} failure:^(NSError *error) {
NSLog(@"查询失败");
}];
接口说明
- (void)addHijackingConfigWithDevId:(NSString *)devId
dpId:(NSString *)dpId
dpValue:(NSString *)dpValue
success:(ThingSuccessBOOL)success
failure:(nullable ThingFailureError)failure;
- (void)removeHijackingConfigWithDevId:(NSString *)devId
dpId:(NSString *)dpId
dpValue:(NSString *)dpValue
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
dpId | DP ID |
dpValue | DP 值 |
success | 成功回调 |
failure | 失败回调 |
示例代码
Objective-C:
[self.bleDevice addHijackingConfigWithDevId:self.bleDevice.deviceModel.devId
dpId:self.model.opmode
dpValue:[self.dataSource[@"unlockId"] stringValue]
success:^(BOOL result) {
NSLog(@"添加劫持成功");
} failure:^(NSError *error) {
NSLog(@"添加劫持失败");
}];
[self.bleDevice removeHijackingConfigWithDevId:self.bleDevice.deviceModel.devId
dpId:self.model.opmode
dpValue:[self.dataSource[@"unlockId"] stringValue]
success:^(id result) {
NSLog(@"取消劫持成功");
} failure:^(NSError *error) {
NSLog(@"取消劫持失败");
}];
请参考 App 发起更新解锁方式 接口。
接口说明
该接口适用于低版本公版门锁。
- (void)getOfflinePasswordWithDevId:(NSString *)devId
pwdType:(NSString *)pwdType
gmtStart:(NSInteger)gmtStart
gmtExpired:(NSInteger)gmtExpired
pwdName:(NSString *)pwdName
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
接口说明
该接口适用于 Pro 门锁。
- (void)getProOfflinePasswordWithDevId:(NSString *)devId
pwdType:(NSString *)pwdType
gmtStart:(NSInteger)gmtStart
gmtExpired:(NSInteger)gmtExpired
pwdName:(NSString *)pwdName
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
pwdType | 密码类型
|
gmtStart | 开始时间,如果是非多次密码,暂时设置为 0 |
gmtExpired | 结束时间,如果是非多次密码,暂时设置为 0 |
pwdName | 密码名称 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//离线一次性密码
[self.bleDevice getOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"1"
gmtStart:0
gmtExpired:0
pwdName:@"离线一次性密码"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//低版本公版不限次数密码
[self.bleDevice getOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"0"
gmtStart:effectiveTime
gmtExpired:invalidTime
pwdName:@"低版本公版不限次数密码"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//低版本公版清空码(所有)
[self.bleDevice getOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"9"
gmtStart:0
gmtExpired:0
pwdName:@"低版本公版清空码(所有)"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//Pro 单次密码
[self.bleDevice getProOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"1"
gmtStart:0
gmtExpired:0
pwdName:@"Pro 单次密码"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//Pro 不限次数密码
[self.bleDevice getProOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"0"
gmtStart:effectiveTime
gmtExpired:invalidTime
pwdName:@"Pro 不限次数密码"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//Pro 清空码
[self.bleDevice getProOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"9"
gmtStart:0
gmtExpired:0
pwdName:@"Pro 清空码"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
接口说明
该接口适用于低版本公版门锁。
- (void)getSingleRevokeOfflinePasswordWithDevId:(NSString *)devId
pwdId:(NSInteger )pwdId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
pwdId | 密码编号 |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)getProSingleRevokeOfflinePasswordWithDevId:(NSString *)devId
unlockBindingId:(NSInteger )unlockBindingId
name:(NSString *)name
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
unlockBindingId | 密码的授权编号 |
name | 离线删除密码的名称 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版
[self.bleDevice getSingleRevokeOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdId:@"pwdId"
success:^(id result) {
if (result && [result isKindOfClass:[NSDictionary class]]){
NSString *pwdName = [result[@"pwdName"] stringValue];
NSString *pwdValue = [result[@"pwd"] stringValue];
}} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//Pro
[self.bleDevice getProSingleRevokeOfflinePasswordWithDevId:self.bleDevice.deviceModel.devId
unlockBindingId:[dicValue[@"unlockBindingId"] integerValue]
name:@"清空码"
success:^(id result) {
if (result && [result isKindOfClass:[NSDictionary class]]){
NSString *pwdName = [result[@"pwdName"] stringValue];
NSString *pwdValue = [result[@"pwd"] stringValue];
}
}failure:^(NSError *error) {
NSLog(@"接口报错");
}];
查询单个清空码,需要选择的密码列表。
接口说明
- (void)getSingleRevokePasswordListWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
适用低版本公版门锁。
- (void)validateCustomPasswordWithDevId:(NSString *)devId
name:(NSString *)name
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
password:(NSString *)password
schedule:(ThingSmartBLELockScheduleList *)schedule
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
name | 密码名称 |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
password | 密码 |
schedule | 周期 |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)validateProCustomPasswordWithDevId:(NSString *)devId
name:(NSString *)name
unlockBindingId:(NSInteger)unlockBindingId
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
password:(NSString *)password
schedule:(NSString *)schedule
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
name | 密码名称 |
unlockBindingId | 临时密码的编号(更新时必传) |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
password | 密码 |
schedule | 周期 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版
ThingSmartBLELockScheduleList *schedule = [[ThingSmartBLELockScheduleList alloc] init];//schedule 需要塞入自己的周期数据
NSString *scheduleString = [schedule getJsonStringFromScheduleList];
[self.lockDeviceService validateCustomPasswordWithDevId:devId
name:name
effectiveTime:effectiveTime
invalidTime:invalidTime
password:password
schedule:scheduleString
success:^(id result) {
NSLog(@"验证成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
//Pro
ThingSmartBLELockScheduleList *schedule = [[ThingSmartBLELockScheduleList alloc] init];//schedule 需要塞入自己的周期数据
NSString *scheduleString = [schedule getJsonStringFromScheduleList];
[self.lockDeviceService validateProCustomPasswordWithDevId:devId
name:name
unlockBindingId:0
effectiveTime:effectiveTime
invalidTime:invalidTime
password:password
schedule:scheduleString
success:^(id result) {
NSLog(@"验证成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
接口说明
适用低版本公版门锁,自定义密码对应低版本公版的周期密码。
- (void)getCustomOnlinePasswordWithDevId:(NSString *)devId
name:(NSString *)name
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
password:(NSString *)password
schedule:(ThingSmartBLELockScheduleList *)schedule
availTime:(NSInteger)availTime
sn:(NSInteger)sn
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
name | 密码名称 |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
password | 密码 |
schedule | 周期 |
availTime | 可用次数。
|
sn | 临时密码编号 |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)getProCustomOnlinePasswordWithDevId:(NSString *)devId
name:(NSString *)name
password:(NSString *)password
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
availTime:(NSInteger)availTime
sn:(NSInteger)sn
schedule:(ThingSmartBLELockScheduleList *)schedule
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
name | 密码名称 |
password | 密码 |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
availTime | 可用次数 |
sn | 临时密码编号 |
schedule | 周期 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版一次性密码
ThingSmartBLELockScheduleList *listModel = [[ThingSmartBLELockScheduleList alloc] init];
[self.bleDevice getCustomOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
name:name
effectiveTime:effectiveTime
invalidTime:invalidTime
password:password
schedule:listModel
availTime:1
sn:0
success:^(id result) {
NSLog(@"创建成功");
} failure:^(NSError *error) {
NSLog(@"创建失败");
}];
//低版本公版周期密码
ThingSmartBLELockScheduleList *listModel = [self.cycleView getScheduleListModel];
[self.bleDevice getCustomOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
name:name
effectiveTime:effectiveTime
invalidTime:invalidTime
password:password
schedule:listModel
availTime:0
sn:0
success:^(id result) {
NSLog(@"创建成功");
} failure:^(NSError *error) {
NSLog(@"创建失败");
}];
//Pro 周期密码
ThingSmartBLELockScheduleList *listModel = [self.cycleView getScheduleListModel];
[self.bleDevice getProCustomOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
name:name
password:password
effectiveTime:effectiveTime
invalidTime:invalidTime
availTime:0
sn:0
schedule:listModel
success:^(id result) {
NSLog(@"创建成功");
} failure:^(NSError *error) {
NSLog(@"创建失败");
}];
接口说明
该接口适用于低版本公版门锁。
- (void)updateOnlinePasswordWithDevId:(NSString *)devId
name:(NSString *)name
password:(NSString *)password
pwdId:(NSInteger )pwdId
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
schedule:(ThingSmartBLELockScheduleList *)schedule
sn:(NSInteger)sn
availTime:(NSInteger)availTime
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 产品 ID |
name | 密码名称 |
password | 密码 |
pwdId | 密码编号 |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
schedule | 周期 |
sn | 硬件 ID |
availTime | 可用次数 |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)updateProOnlinePasswordWithDevId:(NSString *)devId
name:(NSString *)name
password:(NSString *)password
unlockBindingId:(NSInteger )unlockBindingId
effectiveTime:(NSInteger)effectiveTime
invalidTime:(NSInteger)invalidTime
phase:(NSInteger)phase
schedule:(ThingSmartBLELockScheduleList *)schedule
sn:(NSInteger)sn
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
productId | 产品 ID |
name | 密码名称 |
password | 密码 |
unlockBindingId | 临时密码序号 |
effectiveTime | 生效时间 |
invalidTime | 失效时间 |
phase |
|
schedule | 周期 |
sn | 硬件 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版
ThingSmartBLELockScheduleList *listModel = [[ThingSmartBLELockScheduleList alloc] init];
[self.bleDevice updateOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
name:name
password:@""
pwdId:pwdId
effectiveTime:effectiveTime
invalidTime:invalidTime
schedule:listModel
sn:sn
availTime:1
success:^(id result) {
NSLog(@"更新成功");
} failure:^(NSError *error) {
NSLog(@"更新失败");
}];
//Pro
ThingSmartBLELockScheduleList *listModel = [[ThingSmartBLELockScheduleList alloc] init];
[self.bleDevice updateProOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
name:name
password:@""
unlockBindingId:unlockBindingId
effectiveTime:effectiveTime
invalidTime:invalidTime
phase:2
schedule:listModel
sn:1
success:^(id result) {
NSLog(@"更新成功");
} failure:^(NSError *error) {
NSLog(@"更新失败");
}];
接口说明
该接口适用于低版本公版门锁。
- (void)deleteOnlinePasswordWithDevId:(NSString *)devId
pwdId:(NSInteger )pwdId
sn:(NSInteger)sn
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
productId | 产品 ID |
pwdId | 密码编号 |
sn | 硬件 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
接口说明
该接口适用于 Pro 门锁。
- (void)deleteProOnlinePasswordWithDevId:(NSString *)devId
unlockBindingId:(NSInteger )unlockBindingId
sn:(NSInteger)sn
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
productId | 产品 ID |
unlockBindingId | 临时密码序号 |
sn | 硬件 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版
[self.bleDevice deleteOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
pwdId:pwdId
sn:sn
success:^(id result) {
NSLog(@"删除成功");
} failure:^(NSError *error) {
NSLog(@"删除失败");
}];
//Pro
[self.bleDevice deleteProOnlinePasswordWithDevId:self.bleDevice.deviceModel.devId
unlockBindingId:unlockBindingId
sn:sn
success:^(id result) {
NSLog(@"删除成功");
} failure:^(NSError *error) {
NSLog(@"删除失败");
}];
该接口适用于低版本公版。
接口说明
- (void)getOfflinePasswordListWithDevId:(NSString *)devId
pwdType:(NSString *)pwdType
status:(NSInteger)status
offset:(NSInteger)offset
limit:(NSInteger)limit
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
pwdType | 密码类型
|
status | 密码状态
|
offset | 页码 |
limit | 记录数,默认 50 条 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版查询离线一次性密码
[self.bleDevice getOfflinePasswordListWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"1"
status:1
offset:0
limit:20
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
//低版本公版查询离线不限次数密码
[self.bleDevice getOfflinePasswordListWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"0"
status:1
offset:0
limit:20
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
//低版本公版查询清空码(所有)列表
[self.bleDevice getOfflinePasswordListWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"9"
status:1
offset:0
limit:40
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
//低版本公版查询清空码(单个)列表
[self.bleDevice getOfflinePasswordListWithDevId:self.bleDevice.deviceModel.devId
pwdType:@"9"
status:1
offset:0
limit:20
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
该接口适用于低版本公版。
接口说明
- (void)getOnlinePasswordListWithDevId:(NSString *)devId
availTime:(NSInteger)availTime
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
availTime | 可用次数 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//低版本公版在线一次性密码列表
[self.bleDevice getOnlinePasswordListWithDevId:self.bleDevice.deviceModel.devId
availTime:1
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
//低版本公版在线周期性密码列表
[self.bleDevice getOnlinePasswordListWithDevId:self.bleDevice.deviceModel.devId
availTime:0
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
该接口适用于 Pro 门锁。
接口说明
- (void)getProPasswordListWithDevId:(NSString *)devId
authTypes:(NSArray *)authTypes
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
authTypes | 授权类型 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
//查询在线自定义密码列表
[self.bleDevice getProPasswordListWithDevId:self.bleDevice.deviceModel.devId
authTypes:@[@"LOCK_TEMP_PWD"]
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
//查询离线限时、一次性、清空码密码列表
[self.bleDevice getProPasswordListWithDevId:self.bleDevice.deviceModel.devId
authTypes:@[@"LOCK_OFFLINE_TEMP_PWD"]
success:^(id result) {
NSLog(@"查询列表成功");
} failure:^(NSError *error) {
NSLog(@"查询列表失败");
}];
接口说明
- (void)getLockDynamicPasswordWithSuccess:(nullable ThingSuccessString)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
success | 接口成功回调,返回结果为对应查询的动态密码 |
failure | 接口失败回调 |
示例代码
Objective-C:
ThingSmartBLELockDevice *lock = [ThingSmartBLELockDevice deviceWithDeviceId:@"your_lock_device_id"];
[lock getLockDynamicPasswordWithSuccess:^(NSString *result) {
NSLog(@"动态密码查询结果 %@", result);
} failure:^(NSError *error) {
NSLog(@"error %@", error);
}];
Swift:
let lockDevice = ThingSmartBLELockDevice(deviceId: "your_lock_device_id")
lockDevice?.getLockDynamicPassword(success: { (pwd) in
print("动态密码查询结果 \(pwd)")
}, failure: { (error) in
if let e = error {
print("error \(e)")
}
})
查询面板配置信息,包含密码进制类型等。
接口说明
- (void)getLockDeviceConfigWithProductId:(NSString *)productId
options:(NSString *)options
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
productId | 产品 ID |
options | 查询项,包括 uiContent 、cloudDp 、powerCode |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice getLockDeviceConfigWithProductId:self.bleLockDevice.deviceModel.productId
options:@"uiContent,cloudDp,powerCode"
success:^(id result) {
NSLog(@"接口成功");
} failure:^(NSError *error) {
NSLog(@"接口报错");
}];
接口说明
- (void)fetchRemoteUnlockTypeWithDevId:(NSString *)devId
success:(nullable ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice fetchRemoteUnlockTypeWithDevId:self.bleDevice.deviceModel.devId
success:^(id result) {
NSLog(@"查询远程开门开关状态成功 %@", result);
} failure:^(NSError *error) {
NSLog(@"查询远程开门开关状态失败 %@", error);
}];
接口说明
- (void)setRemoteUnlockTypeWithDevId:(NSString *)devId
propKvs:(NSString *)propKvs
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
propKvs | 键值对,键(key)为 UNLOCK_PHONE_REMOTE |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
NSString *dataStr = @"{\"UNLOCK_PHONE_REMOTE\":\"true\"}";
if (!value){
dataStr = @"{\"UNLOCK_PHONE_REMOTE\":\"false\"}";
}
[self.bleDevice setRemoteUnlockTypeWithDevId:self.bleDevice.deviceModel.devId
propKvs:dataStr
success:^(id result) {
NSLog(@"设置远程开门开关成功 %@", result);
} failure:^(NSError *error) {
NSLog(@"设置远程开门开关失败 %@", error);
}];
接口说明
- (void)fetchRemoteVoiceUnlockWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice fetchRemoteVoiceUnlockWithDevId:self.bleDevice.deviceModel.devId
success:^(id result) {
NSLog(@"查询音箱密码开启状态成功 %@", result);
} failure:^(NSError *error) {
NSLog(@"查询音箱密码开启状态失败 %@", error);
}];
接口说明
- (void)setRemoteVoiceUnlockWithDevId:(NSString *)devId
open:(BOOL)open
pwd:(NSString *)pwd
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
open | 开关状态 |
pwd | 密码 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice setRemoteVoiceUnlockWithDevId:self.bleDevice.deviceModel.devId
open:YES
pwd:pwd
success:^(id result) {
NSLog(@"谷歌语音密码设置成功 %@", result);
} failure:^(NSError *error) {
NSLog(@"谷歌语音密码设置失败 %@", error);
}];
使用 设备控制 相关方法。
App 启动后,设备在线时,执行一次。用于同步离线密码时间、门锁解锁随机数、查询门锁记录等。若未执行,将无法解锁门锁。
接口说明
- (void)publishSyncBatchDataSuccess:(ThingSuccessHandler)success
failure:(ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice publishSyncBatchDataSuccess:^{
NSLog(@"数据下发成功");
} failure:^(NSError *error) {
NSLog(@"数据下发失败");
}];
该方法是查询 publishSyncBatchData
调用方法的云端数据内容,并未与设备交互。
接口说明
- (void)getSyncBatchDataWithDevId:(NSString *)devId
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice getSyncBatchDataWithDevId:self.devId
success:^(id result) {
NSLog(@"数据查询成功");
} failure:^(NSError *error) {
NSLog(@"数据查询失败");
}];
接口说明
- (void)syncDataWithDevId:(NSString *)devId
dpIds:(NSArray<NSString *> *)dpIds
success:(ThingSuccessID)success
failure:(nullable ThingFailureError)failure;
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
dpIds | 需要同步的解锁方式类型列表,值为一个数组数字 |
success | 接口成功回调 |
failure | 接口失败回调 |
示例代码
Objective-C:
[self.bleDevice syncDataWithDevId:self.bleDevice.deviceModel.devId
dpIds:@[@"12",@"13"]
success:^(id result) {
NSLog(@"同步成功");
} failure:^(NSError *error) {
NSLog(@"同步失败");
}];
对返回的操作记录进行解析。
类型 | 说明 |
---|---|
HISTORY_LOCK_UNDEFINED | 未定义的关锁类型 |
HISTORY_LOCK_VOICE_REMOTE | 远程语音开门 |
HISTORY_LOCK_APP_REMOTE | 远程手机开门 |
HISTORY_LOCK_AUTO | 自动落锁关锁 |
HISTORY_LOCK_LOCAL_MANUAL | 本地手动落锁 |
HISTORY_LOCK_FITTINGS | 配件关锁 |
HISTORY_LOCK_App | App 长按关锁 |
HISTORY_LOCK_GEO_FENCE | 地理围栏关锁 |
对返回的操作记录 根据不同类型解析不同数据。
功能 | 数据定义 |
---|---|
设备绑定 | [<操作人名称>, <门锁名称>] |
临时密码 | [<临时密码名称>, <生效时间>, <失效时间>, <周期设置(支持多组-公版只有一组)[<是否全天有效>, <生效分钟>, <失效分钟>, <工作日>, <时区>]] |
用户时效 (支持多组) |
[<"被修改时效的人",是否永久>, <生效时间>, <失效时间>, <周期设置(支持多组-公版只有一组)[是否全天有效>, <生效分钟>, <失效分钟>, <时区]>] 如果非永久,则不包含 |
解锁方式新增或移除 | [<被添加人的用户编号>, <被添加人的用户名称>, <硬件解锁方式名称>, <类型-门卡(标准 DP)>] |
通信模组插拔事件 | [<模组类型>] ,1 为低功耗蓝牙搭配 NB-IoT 模组 |
离线密码获取 | [<离线密码名称,生效时间,失效时间,离线密码类型]>] ,离线密码类型:
|
离线密码名称修改 | [<原始名称>, <修改后的名称>, <密码类型>] |
解锁记录 | "1" ,解锁方式 ID |
类型 | 说明 |
---|---|
dev_bind | 设备绑定 |
member_schedule_update | 成员时效修改 |
unlock_add | 开锁方式增加 |
unlock_del | 开锁方式删除 |
temp_pwd_create | 临时密码增加 |
temp_pwd_del | 临时密码删除 |
temp_pwd_meta_update | 临时密码时效修改 |
temp_pwd_name_update | 临时密码名称修改 |
offline_pwd_achieve | 多次离线密码获取 |
offline_pwd_clear_achieve | 清空所有离线密码获取 |
offline_pwd_clear_single_achieve | 清空单个离线密码获取 |
offline_pwd_name_update | 离线临时密码名称更新 |
unlock_ble | 按键/蓝牙解锁 |
unlock_password | 普通密码解锁 |
unlock_temporary | 临时密码解锁 |
unlock_dynamic | 动态密码解锁 |
unlock_offline_pd | 离线密码解锁 |
unlock_offline_clear | 离线密码清空所有上报 |
unlock_offline_clear_single | 离线密码清空单个上报 |
unlock_fingerprint | 指纹解锁 |
unlock_card | 门卡解锁 |
unlock_key | 机械钥匙解锁 |
unlock_face | 人脸开锁 |
unlock_eye | 虹膜解锁 |
unlock_hand | 掌纹解锁 |
unlock_finger_vein | 指静脉解锁 |
unlock_double | 组合开锁(不带开门人) |
unlock_double_kit | 组合开锁(带开门人) |
alarm_lock | 告警 |
hijack | 劫持 |
lock_record | 关锁记录 |
unlock_record_check | 配件记录 |
unlock_phone_remote | 手机远程开门记录 |
unlock_app | 旧版手机开门记录 |
unlock_voice_remote | 音箱开门记录 |
door_opened | 门被打开 |
open_inside | 门从内侧打开 |
timer_opened | 定时器开已执行 |
timer_closed | 定时器关已执行 |
dev_communication_module_add | 门锁插入或拔出模组 |
类型 | 说明 |
---|---|
arming_switch | 离家布防 |
unlock_switch | 多重验证 |
automatic_lock | 自动落锁 |
auto_lock_time | 落锁延迟时间 |
verify_lock_switch | 上锁校验开关 |
do_not_disturb | 勿扰模式 |
special_control | 特殊控制 |
special_function | 特殊功能 |
beep_volume | 导航音量 |
错误码 | 说明 |
---|---|
4000 | 产品定义错误 |
4001 | 用户名错误 |
4002 | 时间错误 |
4003 | 设备处理超时 |
4004 | 设备未连接 |
更多信息,参考 Demo 示例。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈