达实AIoT
文档中心快速开始IoT平台应用
文档中心快速开始IoT平台应用
    • 停车物模型协议 V1.0
    • 人脸门禁终端物模型协议 V1.0
    • 门禁控制器物模型v1.0

    停车物模型协议 V1.0

    一、简介#

    本协议主要用于停车设备接入场景。
    编码类型:utf-8
    版本变更说明:
    父版本号:在协议发生不兼容性修改的情况下递增,同时清空子版本号;
    子版本号:在增删协议接口或字段时递增;

    二、物模型约定#

    2.1 心跳#

    上报#

    主题:sys/{product_id}/{device_id}/thing/heart
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    timelong是时间:13 位时间戳
    intervalint否心跳间隔:30 - 1200 之间的整数(单位:秒),默认值:30
    示例:
    {
      "id": "111",
      "time": 1618540337564,
      "interval": 30
    }

    回复#

    主题:sys/{product_id}/{device_id}/thing/heart/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    timelong是时间:13 位时间戳
    intervalint否心跳间隔:30 - 1200 之间的整数(单位:秒),默认值:30
    示例:
    {
      "id": "111",
      "time": 1618540337564,
      "interval": 30
    }

    2.2 时间校准#

    上报#

    主题:sys/{product_id}/{device_id}/thing/ntp
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    deviceSendTimelong是代表设备发出时间校准请求的时间,13 位时间戳
    示例:
    {
      "id": "222",
      "deviceSendTime": 1571724098000
    }

    回复#

    主题:sys/{product_id}/{device_id}/thing/ntp/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    deviceSendTimelong是代表设备发出时间校准请求的时间,13 位时间戳
    serverRecvTimelong是代表 IoT 服务端接收到时间校准请求的时间,13 位时间戳
    serverSendTimelong是代表 IoT 服务端响应时间校准请求的时间,13 位时间戳
    示例:
    {
      "id": "222",
      "deviceSendTime": 1571724098000,
      "serverRecvTime": 1571724098110,
      "serverSendTime": 1571724098115
    }

    2.3 属性上报#

    上报#

    主题:sys/{product_id}/{device_id}/thing/properties/up
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    versionstring是协议版本号:目前协议版本号唯一取值为 1.0
    methodstring是请求方法:例如 thing.properties.up
    sysobject是-
    ├─ ackint是是否返回响应数据:1- 云端返回响应数据,0- 云端不返回响应数据
    paramsobject否请求参数
    ├─ xxxobject否xxx 为任意属性
    │ ├─ valueobject是上报的属性值
    │ └─ timelong是属性上报时间戳,类型为 UTC 毫秒级时间
    示例:
    {
      "id": "333",
      "sys": {
        "version": "1.0",
        "ack": 0
      },
      "params": {
        "power": {
          "value": "on",
          "time": 1524448722000
        }
      },
      "method": "thing.properties.up"
    }

    上报回复#

    主题:sys/{product_id}/{device_id}/thing/properties/up/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是与请求参数中 method 相同
    codeint是结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线
    messagestring是返回结果信息:请求成功时,返回 success
    dataobject否请求成功时,返回的数据固定为空
    versionstring是协议版本号,与请求参数中 version 相同
    示例:
    {
      "code": 200,
      "data": null,
      "id": "333",
      "message": "success",
      "method": "thing.properties.up",
      "version": "1.0"
    }

    2.4 属性查询#

    查询#

    主题:sys/{product_id}/{device_id}/thing/properties/get
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    versionstring是协议版本号:目前协议版本号唯一取值为 1.0
    methodstring是请求方法:例如 thing.properties.get
    paramsstring[]是要进行属性查询的设备参数名列表,若查询的设备参数为非默认模块的参数,需要使用冒号进行区分
    示例:
    {
      "id": "444",
      "version": "1.0",
      "params": [
        "temperature",
        "test:power"
      ],
      "method": "thing.properties.get"
    }

    获取回复#

    主题:sys/{product_id}/{device_id}/thing/properties/get/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是与请求参数中 method 相同
    codeint是结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线
    messagestring是返回结果信息:请求成功时,返回 success
    dataobject否请求成功时,返回的数据固定为查询到的设备参数值
    versionstring是协议版本号,与请求参数中 version 相同
    示例:
    {
      "code": 200,
      "data": {
        "params": {
          "temperature": 23.6,
          "test:power": 1
        }
      },
      "id": "444",
      "message": "success",
      "method": "thing.properties.get",
      "version": "1.0"
    }

    2.5 属性设置#

    设置#

    主题:sys/{product_id}/{device_id}/thing/properties/set
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    versionstring是协议版本号:目前协议版本号唯一取值为 1.0
    methodstring是请求方法:例如 thing.properties.set
    paramsobject是属性设置参数
    示例:
    {
      "id": "555",
      "version": "1.0",
      "params": {
        "temperature": "30.5",
        "test:power": "30.5"
      },
      "method": "thing.properties.set"
    }

    设置回复#

    主题:sys/{product_id}/{device_id}/thing/properties/set/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是与请求参数中 method 相同
    codeint是结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线
    messagestring是返回结果信息:请求成功时,返回 success
    dataobject否请求成功时,返回的数据固定为空
    versionstring是协议版本号,与请求参数中 version 相同
    示例:
    {
      "code": 200,
      "data": null,
      "id": "555",
      "message": "success",
      "method": "thing.properties.set",
      "version": "1.0"
    }

    三、事件#

    3.1 事件上报#

    主题:sys/{product_id}/{device_id}/thing/event/up
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是请求方法:例如 thing.event.up
    identifierstring是为物模型中定义的事件标识符
    versionstring是协议版本号:目前协议版本号唯一取值为 1.0
    sysobject是-
    ├─ ackint是是否返回响应数据:1- 云端返回响应数据,0- 云端不返回响应数据
    paramsobject是-
    ├─ timelong否属性上报时间戳,类型为 UTC 毫秒级时间
    └─ valueobject是上报的具体数据
    示例:
    {
      "sys": { "ack": 0 },
      "identifier": "deviceHeartBeat",
      "params": {
        "value": {
          "deviceTime": "2024-05-13T07:08:09+08:00",
          "authorityCount": 1,
          "unuploadRecordsCount": 1,
          "devicePort": 8090,
          "scheme": "http"
        },
        "time": 1524448722000
      },
      "method": "thing.event.up"
    }

    事件回复#

    主题:sys/{product_id}/{device_id}/thing/event/up/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是与请求参数中 method 相同
    codeint是结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线
    messagestring是返回结果信息:请求成功时,返回 success
    versionstring是协议版本号,与请求参数中 version 相同
    dataobject否请求成功时,返回的数据固定为空
    示例:
    {
      "code": 200,
      "data": { "code": 0, "msg": "OK", "data": null },
      "id": "123",
      "message": "success",
      "method": "thing.event.up",
      "version": "1.0"
    }

    四、服务#

    4.1 服务下发#

    主题:sys/{product_id}/{device_id}/thing/service/set
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是请求方法:例如 thing.service.set
    versionstring是协议版本号:目前协议版本号唯一取值为 1.0
    identifierstring是为物模型中定义的事件标识符
    paramsobject是不同接口对应的不同参数
    示例:
    {
      "id": "123",
      "version": "1.0",
      "identifier": "upgradeApp",
      "params": null,
      "method": "thing.service.set"
    }

    服务回复#

    主题:sys/{product_id}/{device_id}/thing/service/set/response
    参数:
    参数名称类型是否必填说明
    idstring是消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性
    methodstring是与请求参数中 method 相同
    identifierstring是为物模型中定义的事件标识符,若为自定义模块,格式为 tsl.functionBlockId:{tsl.event.identifier}
    codeint是结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线
    messagestring是返回结果信息:请求成功时,返回 success
    versionstring是协议版本号,与请求参数中 version 相同
    dataobject否请求成功时,返回的数据固定为空
    示例:
    {
      "code": 200,
      "identifier": "upgradeApp",
      "data": { "code": 0, "msg": "OK", "data": null },
      "id": "123",
      "message": "success",
      "method": "thing.service.set",
      "version": "1.0"
    }

    五、停车设备物模型属性#

    参数名称类型是否必填说明
    displayNamestring是设备名称
    deviceCodestring是设备编号
    heartBeatIntervalint是设备心跳时间间隔(毫秒),默认:20*1000
    appVersionstring是设备软件版本(只读)
    hardVersionstring是设备硬件版本(只读)
    deviceUidstring是设备唯一标识(只读)
    deviceIpstring是设备 ip(只读)
    deviceMacstring是设备 mac(只读)
    ntpAddressstring是ntp 地址(用于同步时间),格式:ip:port
    whiteListUseTypeint是白名单启用状态:1 脱机自动启用,2 启用,3 不启用

    六、事件详情#

    6.1 上报识别记录#

    场景:相机上报识别信息
    事件名:uploadRecognize
    请求参数:
    参数名称类型是否必填说明
    plateNosstring[]是识别的车牌号码列表,最多三个
    fakePlatebool是是否是虚假车牌
    vehicleImagestring否车辆抓拍图片(Base64)
    vehicleImageUrlstring否车辆抓拍图片 url,可访问的 oss 地址
    plateImagestring否车牌抓拍图片(Base64)
    plateImageUrlstring否车牌抓拍图片 url,可访问的 oss 地址
    timeStamplong是识别时间,13 位时间戳
    triggerTypeint是抓拍类型(详见枚举说明)
    directionint否车辆行驶方向:1 顺行,2 逆行
    plateTypeint是车牌类型(详见枚举说明)
    示例:
    {
      "id": "123",
      "version": "1.0",
      "sys": { "ack": 0 },
      "identifier": "uploadRecognize",
      "params": {
        "value": {
          "plateNos": ["粤A12345"],
          "fakePlate": false,
          "timeStamp": 1732066887879,
          "triggerType": 1,
          "direction": 3,
          "plateType": 1
        },
        "time": 1524448722000
      },
      "method": "thing.event.up"
    }
    回复参数:无
    示例:
    {
      "code": 200,
      "data": { "code": "0", "msg": "OK", "data": null },
      "id": "123",
      "message": "success",
      "method": "thing.event.up"
    }

    七、服务详情#

    7.1 抓拍#

    场景:服务端下发手动抓拍
    服务名:capture
    请求参数:无
    请求示例:
    {
      "identifier": "capture",
      "params": null,
      "method": "thing.service.set"
    }
    返回参数:无
    返回示例:
    {
      "code": 200,
      "identifier": "capture",
      "data": { "code": "0", "msg": "OK", "data": null },
      "id": "123",
      "message": "success",
      "method": "thing.service.set",
      "version": "1.0"
    }

    7.2 设置白名单启用状态#

    场景:设置白名单的启用状态
    服务名:setWhiteListUseType
    请求参数:
    参数名称类型是否必填说明
    whiteListUseTypeint是设置白名单启用状态:1 脱机自动启用,2 启用,3 不启用
    请求示例:
    {
      "id": "123",
      "version": "1.0",
      "identifier": "setWhiteListUseType",
      "params": { "whiteListUseType": 1 },
      "method": "thing.service.set"
    }

    7.3 添加白名单车辆#

    场景:添加白名单车辆,相机可按白名单状态开闸
    服务名:addWhiteListPlateNos
    请求参数:
    参数名称类型是否必填说明
    plateNosstring[]是车牌号码列表
    请求示例:
    {
      "id": "123",
      "version": "1.0",
      "identifier": "addWhiteListPlateNos",
      "params": { "plateNos": ["粤A00001", "粤A00002"] },
      "method": "thing.service.set"
    }

    7.4 删除白名单车辆#

    场景:删除已添加的白名单车辆
    服务名:deleteWhiteListPlateNos
    请求参数:
    参数名称类型是否必填说明
    plateNosstring[]是车牌号码列表
    请求示例:
    {
      "identifier": "deleteWhiteListPlateNos",
      "params": { "plateNos": ["粤A00001", "粤A00002"] },
      "method": "thing.service.set"
    }

    八、枚举说明#

    8.1 抓拍类型枚举#

    值描述
    1自动识别触发
    2手动触发
    101车滞留
    102车滞留恢复
    103车辆折返
    104跟车

    8.2 车牌类型枚举#

    值描述
    0蓝牌
    1新能源
    2黄牌
    3军警车
    4应急车
    5民航
    6港澳车牌

    九、显示屏物模型#

    9.1 属性#

    参数名称类型是否必填说明
    displayNamestring是设备名称
    deviceCodestring是设备编号
    heartBeatIntervalint是设备心跳时间间隔(毫秒),默认:20*1000
    appVersionstring是设备软件版本(只读)
    hardVersionstring是设备硬件版本(只读)
    deviceUidstring是设备唯一标识(只读)
    deviceIpstring是设备 ip(只读)
    deviceMacstring是设备 mac(只读)
    ntpAddressstring是ntp 地址(用于同步时间),格式:ip:port

    9.2 服务:下发显示和语音播报内容#

    服务名:setScreenContent
    请求参数:
    参数名称类型是否必填说明
    firstLinestring否屏第一行显示内容
    secondLinestring否屏第二行显示内容
    thirdLinestring否屏第三行显示内容
    fourthLinestring否屏第四行显示内容
    showQRCodebool是是否展示二维码
    qrCodestring否二维码文字内容
    qrCodeUseLineint[]是第几行展示二维码
    playVoicebool是是否播报语音
    voiceContentstring否语音播报内容

    十、道闸物模型#

    10.1 属性#

    参数名称类型是否必填说明
    displayNamestring是设备名称
    deviceCodestring是设备编号
    heartBeatIntervalint是设备心跳时间间隔(毫秒),默认:20*1000
    appVersionstring是设备软件版本(只读)
    hardVersionstring是设备硬件版本(只读)
    deviceUidstring是设备唯一标识(只读)
    deviceIpstring是设备 ip(只读)
    deviceMacstring是设备 mac(只读)
    ntpAddressstring是ntp 地址(用于同步时间),格式:ip:port

    10.2 事件:上报道闸状态变化#

    事件名:uploadGateStatesChange
    请求参数:
    参数名称类型是否必填说明
    gateStateint是1 开闸,2 关闸
    示例:
    {
      "id": "123",
      "version": "1.0",
      "sys": { "ack": 0 },
      "identifier": "uploadGateStatesChange",
      "params": {
        "value": {
          "gateState": 1,
          "time": 1524448722000
        }
      },
      "method": "thing.event.up"
    }

    10.3 服务:开闸#

    服务名:openGate
    请求参数:无
    请求示例:
    {
      "id": "123",
      "version": "1.0",
      "identifier": "openGate",
      "params": null,
      "method": "thing.service.set"
    }

    10.4 服务:关闸#

    服务名:closeGate
    请求参数:无
    请求示例:
    {
      "id": "123",
      "version": "1.0",
      "identifier": "closeGate",
      "params": null,
      "method": "thing.service.set"
    }
    下一页
    人脸门禁终端物模型协议 V1.0
    Built with