自定义透传协议

更新时间:2022-10-19 06:01:19下载pdf

设备接入中,存在一些无法自行或者不便于构建标准协议 JSON 格式的设备,可将原始数据透传至云端,由云端根据提交至平台的解析脚本文件,实现原始数据的自定义协议格式和标准协议 JSON 格式的转换。

本文描述了该设备能力的通讯机制和协议格式。

功能说明

使用自定义协议格式进行数据上报下发,需要在创建产品时,数据协议选择自定义透传,并完成对应脚本编写。具体信息,请参考 操作说明

自定义协议格式上报

交互流程图

自定义透传协议

设备发送消息

Topic:tylink/${deviceId}/channel/raw/up

消息内容

//自定义格式数据,比如:
0x312c332c312c302c312c31342c313633373131343839323238372c4f4e

上行解析脚本

function rawDataToTyLink(bytes)

  • 入参:原始数据(字节)

  • 出参:JSON 格式

    {
      "msgType": "thing.action.execute.response",
      "payload": {
        "msgId": "17",
        "time": 1637114892287,
        "code": 0
      }
    }
    

参数说明

参数 类型 说明 必选 备注
msgType string 消息类型 上报的 msgType
payload string payload 涂鸦标准协议 JSON 格式数据

上报的 msgType

功能 消息类型 msgType
属性上报 设备主动属性上报 thing.property.report
属性下发 设备响应属性设置 thing.property.set.response
批量上报 设备批量或为子设备上报 thing.data.batch.report
事件上报 设备触发事件消息 thing.event.trigger
动作执行 设备端响应执行结果 thing.action.execute.response

自定义协议格式下发

交互流程图

自定义透传协议

设备接收消息

Topic:tylink/${deviceId}/channel/raw/down

消息内容

//脚本解析后的自定义协议格式数据,比如:
0x312c312c312c302c312c313030312c313633373131343839323238372c4f4e

下行解析脚本

function tyLinkToRawData(json)

  • 入参:JSON 格式

    {
      "msgType": "thing.action.execute",
      "payload": {
        "msgId": "2011",
        "time": 1637114892287,
        "data": {
          "actionCode": "ptzcontrol",
          "inputParams": {
            "direction": "UP"
          }
        }
      }
    }
    
  • 出参:自定义格式数据

参数说明

参数 类型 说明 必选 备注
msgType string 消息类型 下发的 msgType
payload string payload 涂鸦标准协议 JSON 格式数据

下发的 msgType

功能 消息类型 msgType
属性上报 接收属性上报的云端响应 thing.property.report.response
属性下发 接收下发的设备属性 thing.property.set
批量上报 接收批量上报的云端响应 thing.data.batch.report.response
事件上报 接收事件触发的云端响应 thing.event.trigger.response
动作执行 接收执行设备动作 thing.action.execute