锁管理模块
(新)获取锁列表
请求链接:
/lock/list请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| pageNo | int | Y | "1" | 分页 |
| pageSize | int | n | 20 | 每页返回数 |
| searchStr | String | n | "公司大门" | 锁名关键词 |
| keyId | int | N | 钥匙ID |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| lockId | Int | 锁ID |
| groupList | object | 组列表 |
| pageNo | 1 | |
| pageSize | 20 | |
| total | 0 |
{
"groupList": [{
"groupName": "未分组",
"groupId": 317,
"groupType": 0,
"lockList": [{
"keyId": 10657,
"lockId": 1671,
"lockName": null,
"lockAlias": "MCBNshowWidgetArr01_df4a642",
"electricQuantity": 67,
"electricQuantityStandby": 80,
"electricQuantityDate": 1698801190000,
"fwVersion": "1.0.0",
"hwVersion": "1.3",
"keyType": 1,
"passageMode": 0,
"userType": 110301,
"startDate": 0,
"endDate": 0,
"weekDays": [],
"remoteEnable": 0,
"faceAuthentication": 0,
"lastFaceValidateTime": 0,
"nextFaceValidateTime": 0,
"keyRight": 1,
"keyStatus": 110401,
"bluetooth": {
"bluetoothDeviceId": "AD01447A-30B5-A780-E778-DED3BDCB613E",
"bluetoothDeviceName": "TMH_c3570480da8d",
"publicKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"privateKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"signKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 245]
},
"sendDate": 1698801190000,
"isLockOwner": 1,
"lockFeature": {
"password": 1,
"icCard": 1,
"fingerprint": 1,
"fingerVein": 0,
"palmVein": 0,
"d3Face": 0,
"bluetoothRemoteControl": 1,
"isSupportBackupBattery": 1
},
"lockSetting": {
"attendance": 0,
"appUnlockOnline": 1,
"passageMode": 1,
"passageModeConfig": [
{"isAllDay": 1, "weekDays": [1, 4, 7]}
],
"remoteUnlock": 0
},
"lockUserNo": 111,
"senderUserId": 42,
"isOnlyManageSelf": 0,
"resetNum": 0,
"isNeedVerify": 0,
"hasGateway": 0,
"network": {
"peerId": "",
"isOnline": 0
},
"gateway": {
"mqttUsername": "gateway-xxx",
"mqttSecret": ""
}
}]
}],
"pageNo": 1,
"pageSize": 20,
"pages": 1,
"total": 3
}字段说明:
groupName: 组名groupId: 组IDgroupType: 组类型 0未分组 1非未分组keyId: 钥匙IDlockId: 锁IDlockName: 锁名lockAlias: 锁别名electricQuantity: 电量electricQuantityStandby: 备份电量electricQuantityDate: 电量更新时间fwVersion: 固件版本hwVersion: 硬件版本keyType: 钥匙类型passageMode: 常开模式-开关userType: 钥匙用户类型:110301-管理员钥匙,110302-普通用户钥匙startDate: 有效期开始时间endDate: 有效期结束时间weekDays: 循环周期remoteEnable: 是否支持远程开锁:0-未知,1-是,2-否faceAuthentication: 是否实名认证:0-未知,1-是,2-否lastFaceValidateTime: 最后一次人脸验证时间nextFaceValidateTime: 下次人脸验证时间keyRight: 是否授权管理员钥匙: 0-未知,1-是,2-否keyStatus: 钥匙状态isLockOwner: 是否为锁主lockUserNo: 锁用户编号senderUserId: 发送者用户IDisOnlyManageSelf: 如果是授权管理员此字段区分是否仅管理自己发的钥匙resetNum: 重置次数isNeedVerify: 是否需要扫脸 1需要 0不需要hasGateway: 是否有网关 0没 1有
获取锁列表(已废弃)
请求链接:
/check/syncDataPage地址改为lock/syncDataPage请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lastUpdateDate | String | Y | "1689235148227" | "2023-07-13 15:59:08" |
| pageNo | String | Y | "1" |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
说明: 列表中要判断如果钥匙是冻结和过期状态,则要禁止进入详情页面和开锁
{
"userSettings": {
"touchUnlockFlag": 2,
"modifyManagePwdFlag": 1,
"gesturePassword": "",
"resetFlag": 1,
"delManagerFlag": 1,
"hideExpiredAccessFlag": 2,
"sendKeyFlag": 2,
"viberateFlag": 1,
"lockScreen": 2,
"authorizeFlag": 1,
"sendPwdFlag": 2,
"alertToneFlag": 1,
"status": 1
},
"hasXmeyeLock": false,
"hasMoreService": true,
"pages": 1,
"keyGroups": [
{
"groupName": "你好",
"groupId": 500691
},
{
"groupName": "202307",
"groupId": 503859
}
],
"isReply": false,
"paidUserStatus": 0,
"hasAdvert": false,
"hasAlexa": true,
"isUserSettingCompleted": false,
"keyInfos": [
{
"lightingTime": -1,
"privacyLock": 1,
"keyGroupId": 503859,
"remarks": "",
"autoUnlock": 0,
"noKeyPwd": "MTQ5LDE1NiwxNDYsMTQ3LDE1NywxNTcsMTQ0LDM5",
"isAttendance": 1,
"keyStatus": "110401",
"faceAuthentication": 2,
"sensitivity": -1,
"date": 1688364307000,
"appUnlockMustOnline": 2,
"lockKey": "MzgsMzcsMzMsMzksMzcsMzYsMzgsMzIsMzcsMzQsMTA0",
"resetButton": 1,
"endDate": 0,
"keyRight": 0,
"electricQuantity": 100,
"lockSound": 1,
"specialValue": 894236151,
"displayPasscode": 0,
"lockId": 9418481,
"doubleVerification": 2,
"keyName": "MCBN01_8f3106",
"lockVersion": {
"scene": 2,
"protocolVersion": 3,
"logoUrl": "",
"orgId": 1,
"showAdminKbpwdFlag": true,
"protocolType": 5,
"groupId": 1
},
"lockName": "MCBN01_8f3106",
"monitorFlag": 1,
"bondPassword": null,
"soundVolume": 5,
"lockAlias": "MCBN01_8f3106",
"isFrozen": 2,
"isRemoteUnlock": 2,
"lockFlagPos": 0,
"autoUnlockRssi": 0,
"unlockDirection": 2,
"isCameraEnable": 2,
"startDate": 0,
"keyGroupName": "202307",
"aesKeyStr": "e0,96,b5,f8,16,27,9e,77,eb,9a,e8,92,e2,b1,42,ca",
"uid": 16439295,
"passageMode": 2,
"admin": "",
"keyId": 106932103,
"adminPwd": "MCwyLDMsMCwwLDAsMSwzLDEsMyw3OA==",
"deletePwd": "",
"timezoneRawOffSet": 28800000,
"userType": "110301",
"validPwdNum": 0,
"featureValue": "C2F44354CF5F7",
"adminUid": 0,
"lockMac": "53:66:9F:06:31:8F",
"wirelessKeypadFeatureValue": "0",
"autoLockTime": 5,
"tamperAlert": 1,
"lockUserNo": 10
}
],
"hasPaidFeature": true,
"hasCameraLock": false,
"hasGoogleHome": true,
"pageNo": 1,
"lastUpdateDate": 1689300906814
}说明: isRemoteUnlock 改为 remoteEnable
查询锁状态
请求链接:
/lock/queryState请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | String | Y | "9418481" | 锁id |
| type | String | Y | "1" |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"status": 200,
"statusText": "",
"content": {
"hasGateway": 0,
"state": 2
}
}说明: state 锁的开关状态: 0-关, 1-开, 2-未知
查询当前锁是否需要更新(已废弃)
请求链接:
/lock/updateNotifyCheck请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | String | Y | "9418481" | 锁id |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"status": 200,
"statusText": "",
"content": {
"needUpdate": 0
}
}查询锁详情
请求链接:
/lock/detail请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | String | Y | "9418481" | 锁id |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"lockId": 28,
"isLockOwner": 1,
"lockName": "MCBN01_df4a64",
"lockAlias": "MCBN01_df4a64",
"lockMac": "60:E4:28:64:4A:DF",
"noKeyPwd": "MTUwLDE0NCwxNDUsMTQ3LDE0NCwxNTcsMTUwLDM5",
"electricQuantity": 100,
"featureValue": "C2F44354CF5F7",
"timezoneRawOffset": 28800000,
"modelNum": "SN452-CSK14T_PV53",
"hardwareRevision": "1.3",
"firmwareRevision": "6.5.07.220617",
"autoLockTime": 60,
"lockSound": 1,
"privacyLock": 0,
"tamperAlert": 0,
"resetButton": 0,
"openDirection": 0,
"passageMode": 1,
"passageModeAutoUnlock": 0,
"date": 1689649590523,
"gateway": {
"mqttUsername": "gateway-xxx",
"mqttSecret": ""
}
}获取锁设置应用
请求链接:
/lock/getLockSettingData请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | Int | Y | 1851 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| lockId | Int | 锁ID |
| lockStatus | object | 锁所有状态列表 |
| lockFeature | object | 锁所有支持功能列表 |
| lockBasicInfo | object | 锁所有基本信息 |
| lockSetting | object | 锁所有设置 |
{
"lockId": 500,
"lockStatus": {
"roomStatus": 0
},
"lockFeature": {
"password": 1,
"icCard": 1,
"fingerprint": 1,
"fingerVein": 1,
"palmVein": 1,
"d3Face": 1,
"qrCode": 1,
"bluetoothRemoteControl": 1,
"wirelessKey": 1,
"gatewayUnlock": 1,
"lockCommand": 1,
"firmwareUpgrade": 1,
"passwordIssue": 1,
"cardIssue": 1,
"fingerprintIssue": 1,
"fingerVeinIssue": 1,
"palmVeinIssue": 1,
"d3FaceIssue": 1,
"lockFreeze": 1,
"readAdminPassword": 1,
"passwordManagement": 1,
"passwordWithDelete": 1,
"remoteUnlock": 1,
"autoLock": 1,
"antiPrySwitch": 1,
"resetSwitch": 1,
"lockSwitch": 1,
"lockSound": 1,
"languageSetting": 1,
"realTimeClock": 1,
"wifi": 1,
"videoIntercom": 1,
"cyclePassword": 1,
"cycleFingerprintCard": 1,
"doubleAuthentication": 1,
"openDirection": 1,
"proximitySensing": 1,
"doorStatus": 1,
"wiredDoorMagnet": 1,
"wirelessDoorMagnet": 1,
"doorNotClosedAlarm": 1,
"unlockReminder": 1,
"wirelessKeyboard": 1,
"lightingTime": 1,
"passageMode": 1,
"hotelLockCardSystem": 1,
"appUnlockOnline": 1,
"bluetoothBroadcast": 1,
"attendance": 1,
"motorTorsion": 0,
"stayWarn": 0,
"abnormalWarn": 0,
"isSupportIris": 0,
"isSupportCatEye": 0,
"faceEnErrUnlock": 0
},
"lockBasicInfo": {
"lockId": 500,
"keyId": 3169,
"model": "SN200-CSK63T_PV16",
"electricQuantity": 80,
"electricQuantityDate": 1705472181535,
"indate": 0,
"lockAlias": "公司会议室通道锁",
"groupId": 29,
"groupName": "未分组",
"groupData": [
{
"id": 29,
"name": "未分组"
},
{
"id": 326,
"name": "哈哈哈"
}
],
"adminPwd": "sAacQHa33dfzNKYyirN7lVLWVzLavbrUbSYSFpaJ",
"isLockOwner": 1,
"keyType": 1,
"weekDays": null,
"startDate": 0,
"endDate": 0,
"mac": "",
"lockUserNo": 2,
"address": "广东省深圳市宝安区塘头大道50号靠近宏发科技园",
"network": "702",
"vendor": "XL",
"timezoneOffset": 28800,
"timezoneName": "Antarctica/Casey"
},
"lockSettingInfo": {
"remoteUnlock": 0,
"autoLock": 0,
"autoLockSecond": 20,
"antiPrySwitch": 1,
"resetSwitch": 1,
"lockSwitch": 1,
"lockSound": 1,
"lockSoundVolume": 2,
"languageSettingLang": 1,
"openDirectionValue": 1,
"doorNotClosedAlarm": 1,
"unlockReminder": 1,
"lightingTime": 1,
"lightingSecond": 10,
"passageMode": 0,
"passageModeConfig": [],
"attendance": 0,
"appUnlockOnline": 1,
"bluetoothBroadcast": 1,
"adminPwd": "sAacQHa33dfzNKYyirN7lVLWVzLavbrUbSYSFpaJ",
"unlockReminderPush": 1,
"motorTorsion": 1,
"stayWarn": 0,
"abnormalWarn": 0,
"catEyeConfig": "{\"catEyeMode\": 4, \"catEyeModeConfig\": {\"recordMode\": 1, \"recordTime\": \"0\", \"realTimeMode\": 0, \"recordEndTime\": 1709715049775, \"recordStartTime\": 1709715049775, \"detectionDistance\": 0.8}}",
"faceSwitch": 0,
"faceAutoLightScreen": 0,
"faceInductionDistance": 0,
"faceAntiMistakeOpen": 0,
"autoLightScreen": 1,
"autoLightScreenTime": 0,
"dayNotOpenDoorSwitch": 0,
"dayNotOpenDoorValue": 0,
"doorNotCloseSwitch": 0,
"lowElecNoticeSwitch": 0,
"doorbellNoticeSwitch": 0,
"someoneAtDoorSwitch": 0,
"languageSettingLangText": "简体中文",
"network": "702",
"faceEnErrUnlock": 0,
"proximityRange": 0
}
}字段说明:
lockFeature中各字段表示是否支持对应功能:1-支持,0-不支持lockBasicInfo.electricQuantity: 当前电量lockBasicInfo.electricQuantityDate: 上次电池更新时间lockSettingInfo.remoteUnlock: 远程开锁开关lockSettingInfo.autoLock: 自动闭锁开关lockSettingInfo.autoLockSecond: 自动闭锁秒数lockSettingInfo.antiPrySwitch: 防撬开关配置(启用/禁用)lockSettingInfo.resetSwitch: 重置键配置(启用/禁用)lockSettingInfo.lockSwitch: 反锁功能配置(启用/禁用)lockSettingInfo.lockSound: 语音提示管理(音量大小/禁用)lockSettingInfo.lockSoundVolume: 音量大小lockSettingInfo.languageSettingLang: 语言编号lockSettingInfo.openDirectionValue: 开门方向lockSettingInfo.doorNotClosedAlarm: 门未关报警(启用/禁用)lockSettingInfo.unlockReminder: 开锁提醒(启用/禁用)lockSettingInfo.lightingTime: 照明灯开关lockSettingInfo.lightingSecond: 照明灯秒数lockSettingInfo.passageMode: 常开模式-开关lockSettingInfo.passageModeConfig: 常开模式-时间周期配置,json数组lockSettingInfo.attendance: 考勤开关(线上设置)lockSettingInfo.appUnlockOnline: APP开锁时是否需联网lockSettingInfo.bluetoothBroadcast: 蓝牙广播(关闭则不能使用蓝牙主动开锁)lockSettingInfo.motorTorsion: 电机扭力1:小,2:中,3:大lockSettingInfo.stayWarn: 逗留警告开关lockSettingInfo.abnormalWarn: 异常警告开关lockSettingInfo.catEyeConfig: 猫眼工作模式下所有配置结构lockSettingInfo.faceSwitch: 人脸开关 0:关闭 1:开启lockSettingInfo.faceAutoLightScreen: 人脸自动亮屏开关 0:关闭 1:开启lockSettingInfo.faceInductionDistance: 人脸感应距离 0:关闭,1:近距离,2:中距离,3:远距离lockSettingInfo.faceAntiMistakeOpen: 人脸防误开门 0:关闭 其他单位(秒)lockSettingInfo.autoLightScreen: 猫眼-自动亮屏开关 0:关闭 1:开启lockSettingInfo.autoLightScreenTime: 猫眼-自动亮屏时间lockSettingInfo.dayNotOpenDoorSwitch: N天未开门开关 (启用/禁用)lockSettingInfo.dayNotOpenDoorValue: N天未开门值lockSettingInfo.doorNotCloseSwitch: 门未关闭开关 (启用/禁用)lockSettingInfo.lowElecNoticeSwitch: 低电量开关 (启用/禁用)lockSettingInfo.doorbellNoticeSwitch: 有人按门铃开关 (启用/禁用)lockSettingInfo.someoneAtDoorSwitch: 有人出现在门口开关 (启用/禁用)lockSettingInfo.faceEnErrUnlock: 防误开(0~30秒)lockSettingInfo.proximityRange: 接近感应 0:关闭 1:近 2:中 3:远
设置锁房间状态
请求链接:
/lock/updateLockStatus请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | Int | Y | 1851 | |
| roomStatus | int | Y | 0/1 | 房间状态 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| lockId | Int | 锁ID |
| lockStatus | object | 锁相关状态列表 |
| updateFields | object | 当前设置的状态参数 |
{
"lockId": 500,
"lockStatus": {
"roomStatus": 1
},
"updateFields": [
"roomStatus"
]
}锁钥匙列表
请求链接:
/lock/lockKeysList请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | Int | Y | 1851 | |
| searchStr | String | n | "" | 搜索关键词 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| lockId | Int | 锁ID |
| lockStatus | object | 锁相关状态列表 |
| updateFields | object | 当前设置的状态参数 |
[
{
"openLockType": 1,
"openLockTypeName": "锁",
"lockSetting": {
"appUnlockOnline": 0
},
"keys": [
{
"id": 11172,
"clientId": "ewKnbqQwANE9pYBuKUz3FLzPOPcrzspO",
"lockOwnerId": 385,
"apiUserId": 707,
"lockId": 1782,
"senderUserId": 385,
"receiverUsernameType": 2,
"keyName": "251225",
"keyType": 1,
"startDate": 0,
"endDate": 0,
"weekDays": [],
"remarks": "",
"remoteEnable": 2,
"isCameraEnable": 0,
"faceAuthentication": 0,
"lastFaceValidateTime": 0,
"keyRight": 1,
"remoteUnlockSwitch": 0,
"userType": 110302,
"keyStatus": 110402,
"groupId": 488,
"lockUserNo": 0,
"businessId": 0,
"created_at": "2024-04-19T09:05:14.000000Z",
"updated_at": "2024-04-19T09:05:14.000000Z",
"isOnlyManageSelf": 0,
"user_info": {
"id": 707,
"client_id": "ewKnbqQwANE9pYBuKUz3FLzPOPcrzspO",
"username": "qrcnw_2a28601f6fa6287eafd398066d1b0f2f",
"account_name": "548556354@qq.com",
"businessQueryStr": "548556354@qq.com",
"password": "4fd95c34de4c32d5efaa9a9f126238ac",
"date": 1713517513000,
"created_at": "2024-04-19T09:05:13.000000Z",
"updated_at": "2024-04-19T09:05:13.000000Z"
},
"user_sender": {
"id": 385,
"client_id": "ewKnbqQwANE9pYBuKUz3FLzPOPcrzspO",
"username": "qrcnw_0d922f4bc1958b17f610c6c1f43bfc77",
"account_name": "19587288@qq.com",
"businessQueryStr": "",
"password": "a2263a2004fc93d5f6b2e1bdc7525800",
"date": 1697181624000,
"created_at": "2023-10-13T07:20:24.000000Z",
"updated_at": "2024-04-16T08:29:57.000000Z"
}
}
]
},
{
"openLockType": 2,
"openLockTypeName": "钥匙",
"lockSetting": {
"appUnlockOnline": 0
},
"keys": []
},
{
"openLockType": 3,
"openLockTypeName": "指纹",
"lockSetting": {
"appUnlockOnline": 0
},
"keys": []
},
{
"openLockType": 4,
"openLockTypeName": "IC卡",
"lockSetting": {
"appUnlockOnline": 0
},
"keys": []
},
{
"openLockType": 5,
"openLockTypeName": "人脸",
"lockSetting": {
"appUnlockOnline": 0
},
"keys": []
}
]添加锁
绑定蓝牙管理员(>1.0.50遗弃)
请求链接:
/lock/bindAdmin请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockAlias | String | Y | "MCBN01_df4a64" | 用户输入的锁名称 |
| position | Object | Y | 见下方说明 | 位置信息 |
| bluetooth | Object | Y | 见下方说明 | 蓝牙信息 |
| lockInfo | Object | Y | 见下方说明 | 锁信息 |
| lockUserNo | int | Y | 10 | 电子钥匙对应的锁用户的序号,用以区分谁的开锁记录 |
| pwdTimestamp | Long | Y | 1695796553424 | 锁激活时间,用作算法密码生成参数,锁和云端必须一致 |
| featureValue | String | Y | 000014BFE07C287 | 参考蓝牙文档的feature |
| featureSettingValue | String | Y | 000014BFE07C287 | 参考蓝牙文档的feature |
| featureSettingParams | Array | Y | [2, 29, 1, 5, 33, 1, 4] | 参考蓝牙文档的feature |
position 数据格式: 数据格式来源及说明:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API
{
"longitude": "113.916001",
"latitude": "22.655652",
"country": "中国",
"province": "广东省",
"city": "深圳市",
"district": "宝安区",
"township": "石岩街道",
"address": "和七路塘头第二幼儿园三栋201"
}bluetooth 数据格式:
{
"bluetoothDeviceId": "AD01447A-30B5-A780-E778-DED3BDCB613E",
"bluetoothDeviceName": "TMH_c3570480da8d",
"publicKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"privateKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"signKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235]
}| 参数 | 类型 | 描述 |
|---|---|---|
| bluetoothDeviceId | String | 蓝牙设备ID,类似蓝牙的IP地址 |
| bluetoothDeviceName | String | 蓝牙设备名称(硬件部门称之为lockId,并用来在蓝牙协议里面进行加密和判定唯一性等) |
| publicKey | Array | 公钥,数组 |
| privateKey | Array | 私钥,数组 |
| signKey | Array | 私钥签名 |
lockInfo(锁信息,不可写):
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| vendor | 字符串 | Y | 厂商名称 |
| product | 整型 | Y | 锁设备类型 1:普通门锁 2:视频门锁 3:人脸识别门锁 4:挂锁 5:保险柜锁 6:车位锁 7:门禁 |
| model | 字符串 | Y | 产品型号 |
| fwVersion | 字符串 | Y | 软件版本,如1.0.0.230828 |
| hwVersion | 字符串 | Y | 硬件版本,如1.0.0.230828 |
| serialNum0 | 字符串 | Y | 唯一序列号,如230828xxxxxx,后续由生产商在星启系统领取 |
| serialNum1 | 字符串 | Y | 成品商序列号,如230928yyyyyy,由锁厂或分销商自行写入 |
| btDeviceName | 字符串 | Y | 蓝牙名称,如TMH_c3570480da8d |
| electricQuantity | 整型 | Y | 电池剩余电量 |
| electricQuantityStandby | 整型 | Y | 备用电池剩余电量 |
| restoreCount | 整型 | Y | 重置次数 |
| restoreDate | 整型 | Y | 重置时间,UNIX时间格式 |
| icPartNo | 字符串 | Y | 主控芯片型号 |
| mac | 字符串 | Y | |
| indate | 整型 | Y | 有效时间,UNIX时间格式 |
| resetNum | 整型 | Y | 重置次数 |
| adminPwd | 字符串 | Y | 管理员密码 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"lockId": 9418451,
"keyId": 109868537
}绑定蓝牙管理员
请求链接:
/v2/lock/bindAdmin请求方式:
POST参数说明:
参数变动: lockInfo新增timezoneOffset字段
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockAlias | String | Y | "MCBN01_df4a64" | 用户输入的锁名称 |
| position | Object | Y | 见下方说明 | 位置信息 |
| bluetooth | Object | Y | 见下方说明 | 蓝牙信息 |
| lockInfo | Object | Y | 见下方说明 | 锁信息 |
| lockUserNo | int | Y | 10 | 电子钥匙对应的锁用户的序号,用以区分谁的开锁记录 |
| pwdTimestamp | Long | Y | 1695796553424 | 锁激活时间,用作算法密码生成参数,锁和云端必须一致 |
| featureValue | String | Y | 000014BFE07C287 | 参考蓝牙文档的feature |
| featureSettingValue | String | Y | 000014BFE07C287 | 参考蓝牙文档的feature |
| featureSettingParams | Array | Y | [2, 29, 1, 5, 33, 1, 4] | 参考蓝牙文档的feature |
position 数据格式: 数据格式来源及说明:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API
{
"longitude": "113.916001",
"latitude": "22.655652",
"country": "中国",
"province": "广东省",
"city": "深圳市",
"district": "宝安区",
"township": "石岩街道",
"address": "和七路塘头第二幼儿园三栋201"
}bluetooth 数据格式:
{
"bluetoothDeviceId": "AD01447A-30B5-A780-E778-DED3BDCB613E",
"bluetoothDeviceName": "TMH_c3570480da8d",
"publicKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"privateKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235],
"signKey": [162, 240, 3, 0, 77, 235, 74, 92, 154, 214, 149, 184, 6, 97, 213, 235]
}| 参数 | 类型 | 描述 |
|---|---|---|
| bluetoothDeviceId | String | 蓝牙设备ID,类似蓝牙的IP地址 |
| bluetoothDeviceName | String | 蓝牙设备名称(硬件部门称之为lockId,并用来在蓝牙协议里面进行加密和判定唯一性等) |
| publicKey | Array | 公钥,数组 |
| privateKey | Array | 私钥,数组 |
| signKey | Array | 私钥签名 |
lockInfo(锁信息,不可写):
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| vendor | 字符串 | Y | 厂商名称 |
| product | 整型 | Y | 锁设备类型 1:普通门锁 2:视频门锁 3:人脸识别门锁 4:挂锁 5:保险柜锁 6:车位锁 7:门禁 |
| model | 字符串 | Y | 产品型号 |
| fwVersion | 字符串 | Y | 软件版本,如1.0.0.230828 |
| hwVersion | 字符串 | Y | 硬件版本,如1.0.0.230828 |
| serialNum0 | 字符串 | Y | 唯一序列号,如230828xxxxxx,后续由生产商在星启系统领取 |
| serialNum1 | 字符串 | Y | 成品商序列号,如230928yyyyyy,由锁厂或分销商自行写入 |
| btDeviceName | 字符串 | Y | 蓝牙名称,如TMH_c3570480da8d |
| electricQuantity | 整型 | Y | 电池剩余电量 |
| electricQuantityStandby | 整型 | Y | 备用电池剩余电量 |
| restoreCount | 整型 | Y | 重置次数 |
| restoreDate | 整型 | Y | 重置时间,UNIX时间格式 |
| icPartNo | 字符串 | Y | 主控芯片型号 |
| mac | 字符串 | Y | |
| indate | 整型 | Y | 有效时间,UNIX时间格式 |
| resetNum | 整型 | Y | 重置次数 |
| adminPwd | 字符串 | Y | 管理员密码 |
| timezoneOffset | 整数 | Y | 时区偏移(秒) |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"lockId": 9418451,
"keyId": 109868537
}长按闭锁(APP)(废弃)
请求链接:
/lockRecords/unlockFromApp请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| appDate | String | Y | "1689650099804" | |
| electricQuantity | String | Y | "100" | 锁电量 |
| isAutoUnlock | String | Y | "2" | |
| isRealtime | String | Y | "1" | |
| keyId | String | Y | "109868537" | |
| lockDate | String | Y | "1689650098000" | |
| lockId | String | Y | "9418451" | |
| recordType | String | Y | "1" | 记录类型 相关类似查看链接 https://cnopen.sciener.com/document/doc?urlName=cloud%2FlockRecord%2FrecordTypeFromCloud.html |
| success | String | Y | "1" | |
| uniqueid | String | Y | "1689650099" | 使用32位随机UUID,后端需要用来判断重复 |
| userid | String | Y | "19128333512" | 手机号,暂不清楚用途,此接口是登录态,手机号等信息可从token获取 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"errorCode": 0,
"description": "表示成功或是。",
"errorMsg": "success or means yes"
}锁记录上传
请求链接:
/lockRecords/fromLock请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| records | Array | Y | 见下方说明 | 记录数组 |
| lockId | String | Y | "9418451" |
records 的结构:
[
{"password": "{{keyboardPwd}}", "user": "{{lockUserNo}}", "date": 1692078461020, "success": 1, "type": 1},
{"password": "{{keyboardPwd}}", "user": "{{pwdUserNo}}", "date": 1692078461030, "success": 1, "type": 4},
{"password": "{{keyboardPwd}}", "user": "{{cardNo}}", "date": 1692078461040, "success": 1, "type": 17},
{"password": "{{keyboardPwd}}", "user": "{{fingerprintNo}}", "date": 1692078461050, "success": 1, "type": 20},
{"password": "{{keyboardPwd}}", "user": "{{faceUserNo}}", "date": 1692078461050, "success": 1, "type": 16}
]记录类型recordType:https://cnopen.sciener.com/document/doc?urlName=cloud%2FlockRecord%2FrecordTypeFromLock.html
每一条记录都允许有payload额外字段,服务端会如实记录,目前没做任何检查,如果某个记录类型的payload中有有意义字段,请在此处记录,以便服务端单独判断和检查。
recordType=4 且 success=0,payload中的causeOfFailure字段为开锁失败原因
...
返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"errorCode": 0,
"description": "表示成功或是。",
"errorMsg": "success or means yes"
}删除锁
请求链接:
/lock/delete请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | int | Y | "754013" | 锁ID |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"description": "表示成功或是。",
"errorMsg": "success or means yes",
"errorCode": 0
}查询IP是国内还是国外
请求链接:
/checkIp/ip请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| ip | String | N | "114.247.50.2" | 需要搜索的IP地址(仅支持国内) 若不填写IP,则取客户HTTP之中的请求来进行定位 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"ip": "35.165.148.141",
"name": "美国",
"abbreviation": "US"
}查询锁记录最后时间
请求链接:
/lockRecords/getLastRecordTime请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | Int | Y | 1851 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| lockId | Int | 锁ID |
| operateDate | Int | 最后时间 |
| currentDate | int | 当前服务器UTC毫秒时间戳 |
移除坏锁
请求链接:
/lock/removeBadLock请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockIds | array | Y | [1851] | 锁ID |
- 返回参数及示例:
{
"description": "表示成功或是。",
"errorMsg": "success or means yes",
"errorCode": 0,
"data": "china"
}说明: data 返回 "china" 或 "out china"
锁数据上传
请求链接:
/lockRecords/lockDataUpload请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | int | Y | 1851 | 锁ID |
| uploadType | int | Y | 1 | 1设置 2开门方式 |
| recordType | int | N | 记录类型: 1:电子钥匙 2:密码 3:IC卡 4:指纹 5:人脸 6:掌静脉 7:遥控 | |
| records | array | Y | [] | 记录 |
- 返回参数及示例:
{
"errorCode": 0,
"description": "success",
"errorMsg": "success",
"data": {}
}电子钥匙开锁成功上报
请求链接:
/lockRecords/fromLock请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| lockId | int | Y | 1851 | 锁ID |
| keyId | int | Y | 1 | 钥匙ID |
- 返回参数及示例:
{
"errorCode": 0,
"description": "success",
"errorMsg": "success",
"data": {}
}设备-设置配网
请求链接:
/deviceNetwork/setting请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| deviceType | int | Y | 1 | 设备类型:1-wifi网关 2-wifi锁 |
| deviceMac | String | Y | "00:00:00:00:00:00" | 网关/锁MAC地址 |
| wifiName | String | Y | "大厅" | wifi名称 |
| networkMac | String | Y | "" | 网络mac地址 |
| secretKey | String | Y | "" | 设备secretKey |
| peerId | String | Y | "" | 设备peerId |
| rssi | int | N | 100 | 信号强度dbm -90最差 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"errorCode": 0,
"description": "表示成功或是。",
"errorMsg": "success or means yes"
}设备-获取设备配网信息
请求链接:
/deviceNetwork/getNetworkInfo请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| deviceType | int | Y | 1 | 设备类型:1-wifi网关 2-wifi锁 |
| deviceMac | String | Y | "00:00:00:00:00:00" | 网关/锁MAC地址 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"wifiName": "wifiName",
"networkMac": "00:00:00:00:00",
"secretKey": "secretKey",
"peerId": "peerId"
}设备-固件升级
请求链接:
/deviceNetwork/firmwareUpgrade请求方式:
POST参数说明:
| 名称 | 类型 | 是否必需 | 示例 | 描述 |
|---|---|---|---|---|
| devicePeerId | String | Y | "" | 网络PeerId |
| firmwareVersion | String | Y | "1.0.0" | 固件版本 |
| firmwareURL | String | Y | "https://" | 固件下载地址 |
- 返回参数及示例:
| 参数 | 类型 | 描述 |
|---|---|---|
| status | Int | 状态码 |
| statusText | String | 提示信息 |
| content | String | 返回数据 |
{
"errorCode": 0,
"description": "表示成功或是。",
"errorMsg": "success or means yes"
}