更新时间: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
,校验通过。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈