更新时间:2024-06-20 03:43:37下载pdf
本文介绍了涂鸦智慧行业智能梯控接入协议和具体方案。适用于将不具备与涂鸦开发者平台通信能力的梯控设备,通过涂鸦 边缘网关 实现与平台通信的能力。
涂鸦提供了接入的方案,帮助您的梯控设备快速接入涂鸦开发者平台。梯控网关接入边缘网关的方案架构如下图所示:
梯控网关采用 MQTT 协议接入边缘网关并进行通信。
| 序号 | 设备功能 | 功能说明 | devType |
|---|---|---|---|
| 1 | 呼梯指令下发 | 边缘网关发送的呼梯信息,包含外呼、内呼、内外呼 | elevatorController |
| 2 | 楼层状态查询指令下发 | 边缘网关发送的状态查询消息指令 | elevatorController |
| 3 | 楼层状态上报 | 梯控网关收到边缘网关发送的状态查询消息指令后,上报当前楼层状态 | elevatorController |
| 4 | 添加用户指令下发 | 添加用户信息 | elevatorController |
| 5 | 更新用户指令下发 | 更新用户信息 | elevatorController |
| 6 | 删除用户指令下发 | 删除用户信息 | elevatorController |
| 7 | 添加人脸指令下发 | 添加人脸信息 | elevatorController |
| 8 | 更新人脸指令下发 | 更新人脸信息 | elevatorController |
| 9 | 删除人脸指令下发 | 删除人脸信息 | elevatorController |
| 10 | 添加/更新二维码指令下发 | 添加/更新二维码信息 | elevatorController |
| 11 | 删除二维码指令下发 | 删除二维码信息 | elevatorController |
| 12 | 添加/更新卡信息下发 | 添加/更新卡信息 | elevatorController |
| 13 | 删除卡信息指令下发 | 删除卡信息 | elevatorController |
| 14 | 冻结卡信息下发 | 冻结卡信息 | elevatorController |
| 15 | 解冻卡信息指令下发 | 解冻卡信息 | elevatorController |
| 17 | 通行记录上报 | 通行信息 | elevatorController |
| 1001 | 设备上下线信息上报 | 上报设备的上线、离线消息 | elevatorController |
| 1 | 设备数据同步指令下发 | 边缘网关发送设备列表同步请求,梯控网关同步设备列表 | gateway |
| 2 | 设备数据同步消息上报 | 梯控网关收到边缘网关发送设备列表同步请求,通过该接口上报梯控网关下的梯控设备信息给边缘网关 | gateway |
梯控网关用 MQTT 协议与边缘网关进行通信。其中梯控网关做客户端,边缘网关做 MQTT 代理(Broker)。
ip:MQTT Broker 设备的 IP。与涂鸦开发者平台联调时,由涂鸦提供。
port:21883
clientId:即 gatewayID,表示您的梯控网关 ID。
username:梯控网关设备厂商标识,与涂鸦开发者平台联调时由涂鸦提供。
password:sub(md5(clientId + username), 0, 16)。password 生成示例:
clientId: abcd1234
username: tuya
password: sub(md5(clientId + username), 0, 16)-> c88ba730489ed678
ip、port、clientId、username 需要提前配置到梯控网关,便于您的梯控网关每次启动都能读取到这些参数,从而连上边缘网关。
gateway/elevator/out/{gatewayID}base64.Encode(aes.encrypt(Msg, password))消息示例
password: "c88ba730489ed678"
payload: "{\"t\":1598010614705,\"reqId\":\"1231231231\",\"cid\":\"123122\",\"reqType\":1,\"devType\":\"elevatorController\",\"data\":{\"actionType\":\"inCall\",\"startFloor\":1,\"endFloor\":2,\"direction\":1,\"permissionFloor\":[3]}}"
secPayload: "Qsm7rT3i7lJj1ZRHvEH5X7Mxuu0lRttpd4elASdoyyV+leNnd2C6+QQWS0xag0P1mlyAzwG1yM/GEg+vQgrk9elpAIeThHRkQi5HPEcVTiLggzKBhkbG3Q6PM7PLdnX9tLF+a0cbB/KyeLuDOSn4lH7JMgCBuxuUub2Ue87/tUTKPrGfX2U5s05zC5HJmtDJ+7c09BUz7seaEH9RgdxkcZrKXKvyuIzEmBxYW1LcA6VyQX0zKvz7+0uGcam4SX/ptB4vQUY2/nwZ7tdg2U9SGg=="
消息示例
password: "c88ba730489ed678"
secPayload: "Qsm7rT3i7lJj1ZRHvEH5X7Mxuu0lRttpd4elASdoyyV+leNnd2C6+QQWS0xag0P1mlyAzwG1yM/GEg+vQgrk9elpAIeThHRkQi5HPEcVTiLggzKBhkbG3Q6PM7PLdnX9tLF+a0cbB/KyeLuDOSn4lH7JMgCBuxuUub2Ue87/tUTKPrGfX2U5s05zC5HJmtDJ+7c09BUz7seaEH9RgdxkcZrKXKvyuIzEmBxYW1LcA6VyQX0zKvz7+0uGcam4SX/ptB4vQUY2/nwZ7tdg2U9SGg==
"
payload: "{\"t\":1598010614705,\"reqId\":\"1231231231\",\"cid\":\"123122\",\"reqType\":1,\"devType\":\"elevatorController\",\"data\":{\"actionType\":\"inCall\",\"startFloor\":1,\"endFloor\":2,\"direction\":1,\"permissionFloor\":[3]}}"
设备推送和接收的消息要进行 AES 加密及解密:
password)。加密或解密代码示例
password := "c88ba730489ed678"
payload := "{\"t\":1598010614705,\"reqId\":\"1231231231\",\"cid\":\"123122\",\"reqType\":1,\"devType\":\"elevatorController\",\"data\":{\"actionType\":\"inCall\",\"startFloor\":1,\"endFloor\":2,\"direction\":1,\"permissionFloor\":[3]}}"
data, err := aes_crypto.AesECBEncrypt([]byte(payload), []byte(password))
t.Log(err)
base64str := base64.StdEncoding.EncodeToString(data)
t.Log(base64str)
dataE, err := base64.StdEncoding.DecodeString(base64str)
t.Log(err)
dataD, err := aes_crypto.AesECBDecrypt(dataE, []byte(password))
t.Log(err)
t.Log(string(dataD))
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 1,表示呼梯。 |
是 |
| devType | String | 设备类型,默认 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| actionType | String |
|
是 |
| startFloor | Integer | 起始楼层。必须是物理楼层,从 1 开始。 | 否 |
| endFloor | Integer | 目的楼层。必须是物理楼层,从 1 开始。 | 否 |
| direction | Integer | 电梯上下行。 | 否 |
| permissionFloor | array | 权限楼层。必须是物理楼层,从 1 开始。 | 否 |
Msg 消息格式
{
"t":159801061****,
"reqId":"123123****",
"cid":"12****",
"reqType":1,
"devType":"elevatorController",
"data":{
"actionType":"inCall"/"outCall"/"permissionCall"/"unifyCall",
"startFloor":1,
"endFloor":2,
"direction":1,
"permissionFloor":[1,3],
}
返回结果消息格式
{
"t":159801061****,
"reqId":"123123****",
"cid":"12****",
"reqType":1,
"devType":"elevatorController",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
字段 cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 推送开始时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 2,表示楼层状态查询。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| liftNum | Integer | 电梯井号,涂鸦不传该值 | 否 |
Msg 消息格式
{
"t":159801061****,
"reqId":123123****,
"cid":"12****",
"reqType":2,
"devType":"elevatorController"
"data":{
"liftNum":1,
}
}
返回结果消息格式
{
"t":159801061****,
"reqId":"123123****",
"cid":"12****",
"reqType":2,
"devType":"elevatorController",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为订阅时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 3,表示楼层状态上报。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| liftNum | Integer | 电梯井号 | 否 |
| status | Integer |
|
是 |
| direction | Integer |
|
是 |
| curFloor | Integer | 当前楼层。必须是物理楼层,从 1 开始。 |
是 |
Msg 消息格式
{
"t":15980106****,
"reqId":"112****",
"reqType":3,
"devType":"elevatorController",
"cid":"12****",
"data":{
"devs":[
{
"liftNum":3,
"status":0,
"direction":0,
"curFloor":2
}
]
}
}
订阅执行结果消息格式
{
"t":15980106****,
"reqId":"123123****",
"cid":"12****",
"reqType":3,
"devType":"elevatorController",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 4,表示添加用户信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| beginTime | int64 | 开始时间。 | 是 |
| endTime | int64 | 结束时间。 | 是 |
| idCard | String | ID 身份卡。最大长度为 64 字符。 | 否 |
| secretKey | String | ⽤户密钥。⻓度 32 位,建议 UUID ⽣成。App 端和设备端基于同⼀个密钥⽣成动态⼆维码。最大长度为 64 字符。 | 否 |
| refreshTime | int64 | ⼆维码刷新时间,默认 300000 毫秒,单位毫秒。 | 否 |
| name | String | 用户名字。最大长度为 64 字符。 | 是 |
| phone | String | 用户电话号。最大长度为 64 字符。 | 否 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| permissionFloor | [ ]int | 权限楼层。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":4,
"devType":"elevatorController",
"cid":"12****"
"data":{
"beginTime":1582959882104,
"endTime":1661666512292,
"idCard":"123****",
"secretKey":"wedsddfkkdsdfxdldwddiokfghed****",
"refreshTime":300000,
"name":"tuyaFamily",
"phone":"1732606****",
"uid":"3****"
"permissionFloor":[1,3],
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":4,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 5,表示更新用户信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| beginTime | int64 | 开始时间。 | 否 |
| endTime | int64 | 结束时间。 | 否 |
| idCard | String | ID 身份卡。最大长度为 64 字符。 | 否 |
| secretKey | String | ⽤户密钥。⻓度 32 位,建议 UUID ⽣成。App 端和设备端基于同⼀个密钥⽣成动态⼆维码。最大长度为 64 字符。 | 否 |
| refreshTime | int64 | ⼆维码刷新时间,默认 5 分钟,单位毫秒。 | 否 |
| name | String | 用户名字。最大长度为 64 字符。 | 否 |
| phone | String | 用户电话号。最大长度为 64 字符。 | 否 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| permissionFloor | [ ]int | 权限楼层。 | 否 |
Msg 消息格式
{
"t":159801061****,
"reqId":123123****,
"reqType":5,
"devType":"elevatorController",
"cid":"12****"
"data":{
"beginTime":1582959882104,
"endTime":1661666512292,
"idCard":"123****",
"secretKey":"wedsddfkkdsdfxdldwddiokfghedfkfd",
"refreshTime":300000,
"name":"tuyaFamily",
"phone":"1732606****",
"uid":"3****"
"permissionFloor":[1,3],
}
}
返回结果消息格式
{
"t":159801061****,
"reqId":123123****,
"reqType":5,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 6,表示删除用户信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":6,
"devType":"elevatorController",
"cid":"12****"
"data":{
"uid":"123****"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":6,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 7,表示添加人脸信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| faceid | String | 人脸图像唯一识别 ID。最大长度为 64 字符。 | 是 |
| url | String | 人脸图像 URL。最大长度为 256 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":7,
"devType":"elevatorController",
"cid":"123****"
"data":{
"uid":"375****",
"faceid":"663****",
"url":"https://s1.ax1x.com/2020/07/22/****.png"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123****,
"reqType":7,
"devType":"elevatorController",
"cid":"123****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 8,表示更新人脸信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| faceid | String | 人脸图像唯一识别 ID。最大长度为 64 字符。 | 是 |
| url | String | 人脸图像 URL。最大长度为 256 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":8,
"devType":"elevatorController",
"cid":"12****"
"data":{
"uid":"375****",
"faceid":"6666",
"url":"https://s1.ax1x.com/2020/07/22/****.png"
}
}
返回结果消息格式
{
"reqId":123123****,
"reqType":8,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 9,表示删除人脸信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| faceid | String | 人脸图像唯一识别 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":9,
"devType":"elevatorController",
"cid":"12****"
"data":{
"faceid":"66****"
}
}
返回结果消息格式
{
"reqId":123123****,
"reqType":9,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
设备侧维护二维码(qrcode)与人员的映射关系,识别到 qrcode 后识别对应的人员及相应的楼层信息。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 10,表示添加/更新二维码信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| qrcode | String | 16 位十六进制字符串。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":7,
"devType":"elevatorController",
"cid":"12****"
"data":{
"uid":"375****",
"qrcode":"fff****",
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":10,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 11,表示删除二维码信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":11,
"devType":"elevatorController",
"cid":"12****"
"data":{
"uid":"375****",
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":11,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 12,表示添加或更新卡信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| uid | String | 用户唯一识别 ID。最大长度为 64 字符。 | 是 |
| cardId | String | 卡 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":12,
"devType":"elevatorController",
"cid":"12****"
"data":{
"uid":"375****",
"cardId":"123****"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":12,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 13,表示删除卡信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| cardId | String | 卡 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":13,
"devType":"elevatorController",
"cid":"12****"
"data":{
"cardId":"123****"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":13,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 14,表示冻结卡信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| cardId | String | 卡 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":14,
"devType":"elevatorController",
"cid":"12****"
"data":{
"cardId":"12****"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":14,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 15,表示解冻卡信息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| cardId | String | 卡 ID。最大长度为 64 字符。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":15,
"devType":"elevatorController",
"cid":"12****"
"data":{
"cardId":"123****"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":123123****,
"reqType":15,
"devType":"elevatorController",
"cid":"12****"
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 17,表示通行记录上报。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| liftNum | Integer | 电梯井号 | 否 |
| uid | String | 用户 ID。最大长度为 64 字符。 | 是 |
| startFloor | Integer | 刷卡楼层 | 否 |
| endFloor | Integer | 目的楼层 | 否 |
| operTime | Integer | 发生时间(秒) | 是 |
| way | Integer | 通行方式:
|
是 |
| imageUrl | String | 通行图片 URL 地址。最大长度为 256 字符。 | 否 |
| temp | float64 | 体温 | 否 |
| isSuccess | bool | 是否成功 | 是 |
| message | String | 失败信息。最大长度为 256 字符。 | 否 |
Msg 消息格式
{
"t":15980106****,
"reqId":"112****",
"reqType":17,
"devType":"elevatorController",
"cid":"12****",
"data":{
"devs":[
{
"liftNum":3,
"uid":"234****",
"startFloor":1,
"endFloor":2,
"operTime": 3223454989032,
"way": 1,
"isSuccess": true
}
]
}
}
订阅执行结果消息格式
{
"t":15980106****,
"reqId":"123123****",
"cid":"12****",
"reqType":17,
"devType":"elevatorController",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
梯控设备通过梯控网关接入边缘网关,梯控网关下的设备上、下线事件,都需要上报给边缘网关。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。推荐 UUID 生成,访客机可以根据 reqId 监听本次推送的结果。最大长度为 64 字符。 |
是 |
| reqType | Integer | reqType = 1001,表示表示子设备上下线消息。 |
是 |
| devType | String | 设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| cid | String | 三方设备 ID。建议采用设备端可读取的唯一标识作为 cid,例如设备的 SN 号、Mac 地址、IMEI 号等。最大长度为 64 字符。 |
是 |
| status | Integer | 设备状态,
|
是 |
Msg 消息格式
{
"t":15980106****,
"reqId":"123123****",
"cid":"01D728C3****",
"reqType":1001,
"devType":"elevatorController",
"data":{
"status":1
}
}
订阅执行结果消息格式
{
"t":15980106****,
"reqId":"123123****",
"cid":"01D728C3****",
"reqType":1001,
"devType":"elevatorController",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
cid、reqId、reqType、devType 即为上报时的 cid、reqId、reqType、devType。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。最大长度为 64 字符。 | 是 |
| reqType | Integer | reqType =1 表示请求设备同步 | 是 |
| devType | String | 设备类型。默认为 gateway,最大长度为 32 字符。 |
是 |
| syncDevType | String | 同步设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
Msg 消息格式
{
"t":123123****,
"reqId":"12****",
"reqType":1,
"devType":"gateway"
"data":{
"syncDevType":"elevatorController"
}
}
返回结果消息格式
{
"t":15980106****,
"reqId":"123123****",
"reqType":1,
"devType":"gateway",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
梯控网关收到边缘网关下发的设备数据同步指令后,通过该接口上报梯控网关下的梯控设备数据。
请求参数
| 参数 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| t | Long | 消息推送时间。 | 是 |
| reqId | String | 请求流水号。最大长度为 64 字符。 | 是 |
| reqType | Integer | reqType = 2,表示设备数据同步上报。 |
是 |
| devType | String | 设备类型。默认为 gateway,最大长度为 32 字符。 |
是 |
| cid | String | 梯控设备 ID,建议采用设备端可读取的唯一标识作为 CID,例如设备的 SN 号、MAC 地址、IMEI 号等。最大长度为 64 字符。 | 是 |
| name | String | 梯控设备名称。最大长度为 64 字符。 | 否 |
| installLocation | String | 梯控设备安装地址。最大长度为 256 字符。 | 否 |
| initFloor | Integer | 起始楼层。例如 -1。 |
是 |
| syncDevType | String | 同步设备类型,默认为 elevatorController。最大长度为 32 字符。 |
是 |
| wellDevs | list | 电梯轿厢信息。需将梯控连接的所有电梯井填充进去。 | 是 |
| wellNum | int | 电梯轿厢井号。 | 是 |
Msg 消息格式
{
"t":15980106****,
"reqID":"123123****",
"reqType":2,
"devType":"gateway",
"data":{
"devs":[
{
"cid":"123****",
"name":"No. 1 Elevator, Building 3",
"installLocation":"No. 1 Elevator, Building 3",
"initFloor":1,
"wellDevs":{
"wellNum":1,
"wellNum":2
}
},
{
"cid":"123****",
"name":"No. 2 Elevator, Building 3",
"installLocation":"No. 2 Elevator, Building 3",
"initFloor":1
}
],
"syncDevType":"elevatorController"
}
}
wellDevs 用于电梯井号信息。
订阅执行结果消息格式
{
"t":15980106****,
"reqId":"123123****",
"reqType":2,
"devType":"gateway",
"data":{
"success":true,
"msg":"success",
"code":200
}
}
设备端需要⽀持 1.0 和 2.0 两种版本的⼆维码格式。
格式:
7421371370865597349888943036
格式:
{
"qrcode":"YXkxNjExMDU4MTc4MTM4N240Mjd8ZTRhZjIzZTY=" //取值为 Base64 编码后的字符串
}
设备扫描⼆维码后的校验步骤:
根据⼆维码的内容判断⼆维码是 1.0 版本还是 2.0 版本。
进⾏静态⼆维码对⽐校验,⼆维码信息和用户的⼆维码进⾏⽐较,⽐较成功并且在有效期则允许通⾏。
如果⽐对失败,则通过动态⼆维码验证接⼝进⾏验证。
接口说明
TOTPUtils.java
/**
* 动态⼆维码验证
*
* @param uid 涂鸦⽤户 ID
* @param secretKey ⽤户秘钥, 32 位字符串
* @param willVerifyTotp 待验证的⼆维码信息
* @param refreshTime ⼆维码刷新时间
* @return boolean ⼆维码验证结果
*/
public static boolean verifyTOTPFlexibility(string uid, string secretKey, string
willVerifyTotp, Long refreshTime)
2.0 版⼆维码示例
⼆维码内容:
{
"qrcode":"YXkxNjExMDU4MTc4MTM4N240Mjd8ZTRhZjIzZTY=" //取值为 Base64 编码后的字符串
}
验证过程:
YXkxNjExMDU4MTc4MTM4N240Mjd8ZTRhZjIzZTY Base64 解码后获得字符串 "ay16110581781387n427 | e4af23e6",则表示:
根据⽤户 ID 获取静态⼆维码进⾏对⽐。如果对⽐失败,则进⾏动态⼆维码校验。
⼆维码刷新时间为 5 * 60 * 1000= 300,000 毫秒,即 5 分钟。
根据⽤户 ID 查询到⽤户的秘钥 secretKey。
调⽤动态⼆维码验证接⼝ TOTPUtils.verifyTOTPFlexibility,返回 true,校验通过。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈