Skip to content

锁管理模块

(新)获取锁列表

  1. 请求链接: /lock/list

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
pageNointY"1"分页
pageSizeintn20每页返回数
searchStrStringn"公司大门"锁名关键词
keyIdintN钥匙ID
  1. 返回参数及示例:
参数类型描述
lockIdInt锁ID
groupListobject组列表
pageNo1
pageSize20
total0
json
{
  "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: 组ID
  • groupType: 组类型 0未分组 1非未分组
  • keyId: 钥匙ID
  • lockId: 锁ID
  • lockName: 锁名
  • 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: 发送者用户ID
  • isOnlyManageSelf: 如果是授权管理员此字段区分是否仅管理自己发的钥匙
  • resetNum: 重置次数
  • isNeedVerify: 是否需要扫脸 1需要 0不需要
  • hasGateway: 是否有网关 0没 1有

获取锁列表(已废弃)

  1. 请求链接: /check/syncDataPage 地址改为 lock/syncDataPage

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lastUpdateDateStringY"1689235148227""2023-07-13 15:59:08"
pageNoStringY"1"
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据

说明: 列表中要判断如果钥匙是冻结和过期状态,则要禁止进入详情页面和开锁

json
{
  "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

查询锁状态

  1. 请求链接: /lock/queryState

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdStringY"9418481"锁id
typeStringY"1"
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "status": 200,
  "statusText": "",
  "content": {
    "hasGateway": 0,
    "state": 2
  }
}

说明: state 锁的开关状态: 0-关, 1-开, 2-未知

查询当前锁是否需要更新(已废弃)

  1. 请求链接: /lock/updateNotifyCheck

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdStringY"9418481"锁id
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "status": 200,
  "statusText": "",
  "content": {
    "needUpdate": 0
  }
}

查询锁详情

  1. 请求链接: /lock/detail

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdStringY"9418481"锁id
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "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": ""
  }
}

获取锁设置应用

  1. 请求链接: /lock/getLockSettingData

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdIntY1851
  1. 返回参数及示例:
参数类型描述
lockIdInt锁ID
lockStatusobject锁所有状态列表
lockFeatureobject锁所有支持功能列表
lockBasicInfoobject锁所有基本信息
lockSettingobject锁所有设置
json
{
  "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:远

设置锁房间状态

  1. 请求链接: /lock/updateLockStatus

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdIntY1851
roomStatusintY0/1房间状态
  1. 返回参数及示例:
参数类型描述
lockIdInt锁ID
lockStatusobject锁相关状态列表
updateFieldsobject当前设置的状态参数
json
{
  "lockId": 500,
  "lockStatus": {
    "roomStatus": 1
  },
  "updateFields": [
    "roomStatus"
  ]
}

锁钥匙列表

  1. 请求链接: /lock/lockKeysList

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdIntY1851
searchStrStringn""搜索关键词
  1. 返回参数及示例:
参数类型描述
lockIdInt锁ID
lockStatusobject锁相关状态列表
updateFieldsobject当前设置的状态参数
json
[
  {
    "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遗弃)

  1. 请求链接: /lock/bindAdmin

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockAliasStringY"MCBN01_df4a64"用户输入的锁名称
positionObjectY见下方说明位置信息
bluetoothObjectY见下方说明蓝牙信息
lockInfoObjectY见下方说明锁信息
lockUserNointY10电子钥匙对应的锁用户的序号,用以区分谁的开锁记录
pwdTimestampLongY1695796553424锁激活时间,用作算法密码生成参数,锁和云端必须一致
featureValueStringY000014BFE07C287参考蓝牙文档的feature
featureSettingValueStringY000014BFE07C287参考蓝牙文档的feature
featureSettingParamsArrayY[2, 29, 1, 5, 33, 1, 4]参考蓝牙文档的feature

position 数据格式: 数据格式来源及说明:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

json
{
  "longitude": "113.916001",
  "latitude": "22.655652",
  "country": "中国",
  "province": "广东省",
  "city": "深圳市",
  "district": "宝安区",
  "township": "石岩街道",
  "address": "和七路塘头第二幼儿园三栋201"
}

bluetooth 数据格式:

json
{
  "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]
}
参数类型描述
bluetoothDeviceIdString蓝牙设备ID,类似蓝牙的IP地址
bluetoothDeviceNameString蓝牙设备名称(硬件部门称之为lockId,并用来在蓝牙协议里面进行加密和判定唯一性等)
publicKeyArray公钥,数组
privateKeyArray私钥,数组
signKeyArray私钥签名

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管理员密码
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "lockId": 9418451,
  "keyId": 109868537
}

绑定蓝牙管理员

  1. 请求链接: /v2/lock/bindAdmin

  2. 请求方式: POST

  3. 参数说明:

参数变动: lockInfo新增timezoneOffset字段

名称类型是否必需示例描述
lockAliasStringY"MCBN01_df4a64"用户输入的锁名称
positionObjectY见下方说明位置信息
bluetoothObjectY见下方说明蓝牙信息
lockInfoObjectY见下方说明锁信息
lockUserNointY10电子钥匙对应的锁用户的序号,用以区分谁的开锁记录
pwdTimestampLongY1695796553424锁激活时间,用作算法密码生成参数,锁和云端必须一致
featureValueStringY000014BFE07C287参考蓝牙文档的feature
featureSettingValueStringY000014BFE07C287参考蓝牙文档的feature
featureSettingParamsArrayY[2, 29, 1, 5, 33, 1, 4]参考蓝牙文档的feature

position 数据格式: 数据格式来源及说明:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

json
{
  "longitude": "113.916001",
  "latitude": "22.655652",
  "country": "中国",
  "province": "广东省",
  "city": "深圳市",
  "district": "宝安区",
  "township": "石岩街道",
  "address": "和七路塘头第二幼儿园三栋201"
}

bluetooth 数据格式:

json
{
  "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]
}
参数类型描述
bluetoothDeviceIdString蓝牙设备ID,类似蓝牙的IP地址
bluetoothDeviceNameString蓝牙设备名称(硬件部门称之为lockId,并用来在蓝牙协议里面进行加密和判定唯一性等)
publicKeyArray公钥,数组
privateKeyArray私钥,数组
signKeyArray私钥签名

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时区偏移(秒)
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "lockId": 9418451,
  "keyId": 109868537
}

长按闭锁(APP)(废弃)

  1. 请求链接: /lockRecords/unlockFromApp

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
appDateStringY"1689650099804"
electricQuantityStringY"100"锁电量
isAutoUnlockStringY"2"
isRealtimeStringY"1"
keyIdStringY"109868537"
lockDateStringY"1689650098000"
lockIdStringY"9418451"
recordTypeStringY"1"记录类型
相关类似查看链接
https://cnopen.sciener.com/document/doc?urlName=cloud%2FlockRecord%2FrecordTypeFromCloud.html
successStringY"1"
uniqueidStringY"1689650099"使用32位随机UUID,后端需要用来判断重复
useridStringY"19128333512"手机号,暂不清楚用途,此接口是登录态,手机号等信息可从token获取
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

锁记录上传

  1. 请求链接: /lockRecords/fromLock

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
recordsArrayY见下方说明记录数组
lockIdStringY"9418451"

records 的结构:

json
[
  {"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中有有意义字段,请在此处记录,以便服务端单独判断和检查。

  1. recordType=4 且 success=0,payload中的causeOfFailure字段为开锁失败原因

  2. ...

  3. 返回参数及示例:

参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

删除锁

  1. 请求链接: /lock/delete

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdintY"754013"锁ID
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "description": "表示成功或是。",
  "errorMsg": "success or means yes",
  "errorCode": 0
}

查询IP是国内还是国外

  1. 请求链接: /checkIp/ip

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
ipStringN"114.247.50.2"需要搜索的IP地址(仅支持国内)
若不填写IP,则取客户HTTP之中的请求来进行定位
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "ip": "35.165.148.141",
  "name": "美国",
  "abbreviation": "US"
}

查询锁记录最后时间

  1. 请求链接: /lockRecords/getLastRecordTime

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdIntY1851
  1. 返回参数及示例:
参数类型描述
lockIdInt锁ID
operateDateInt最后时间
currentDateint当前服务器UTC毫秒时间戳

移除坏锁

  1. 请求链接: /lock/removeBadLock

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdsarrayY[1851]锁ID
  1. 返回参数及示例:
json
{
  "description": "表示成功或是。",
  "errorMsg": "success or means yes",
  "errorCode": 0,
  "data": "china"
}

说明: data 返回 "china" 或 "out china"

锁数据上传

  1. 请求链接: /lockRecords/lockDataUpload

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdintY1851锁ID
uploadTypeintY11设置 2开门方式
recordTypeintN记录类型:
1:电子钥匙
2:密码
3:IC卡
4:指纹
5:人脸
6:掌静脉
7:遥控
recordsarrayY[]记录
  1. 返回参数及示例:
json
{
  "errorCode": 0,
  "description": "success",
  "errorMsg": "success",
  "data": {}
}

电子钥匙开锁成功上报

  1. 请求链接: /lockRecords/fromLock

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
lockIdintY1851锁ID
keyIdintY1钥匙ID
  1. 返回参数及示例:
json
{
  "errorCode": 0,
  "description": "success",
  "errorMsg": "success",
  "data": {}
}

设备-设置配网

  1. 请求链接: /deviceNetwork/setting

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
deviceTypeintY1设备类型:1-wifi网关 2-wifi锁
deviceMacStringY"00:00:00:00:00:00"网关/锁MAC地址
wifiNameStringY"大厅"wifi名称
networkMacStringY""网络mac地址
secretKeyStringY""设备secretKey
peerIdStringY""设备peerId
rssiintN100信号强度dbm -90最差
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

设备-获取设备配网信息

  1. 请求链接: /deviceNetwork/getNetworkInfo

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
deviceTypeintY1设备类型:1-wifi网关 2-wifi锁
deviceMacStringY"00:00:00:00:00:00"网关/锁MAC地址
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "wifiName": "wifiName",
  "networkMac": "00:00:00:00:00",
  "secretKey": "secretKey",
  "peerId": "peerId"
}

设备-固件升级

  1. 请求链接: /deviceNetwork/firmwareUpgrade

  2. 请求方式: POST

  3. 参数说明:

名称类型是否必需示例描述
devicePeerIdStringY""网络PeerId
firmwareVersionStringY"1.0.0"固件版本
firmwareURLStringY"https://"固件下载地址
  1. 返回参数及示例:
参数类型描述
statusInt状态码
statusTextString提示信息
contentString返回数据
json
{
  "errorCode": 0,
  "description": "表示成功或是。",
  "errorMsg": "success or means yes"
}

鑫泓佳智能硬件通信协议文档