Yelink协议

Yelink协议是针对物联网开发领域设计的一种数据交换规范,数据格式是JSON,用于设备端和物联网平台的双向通信,更便捷地实现和规范了设备端和物联网平台之间的业务数据交互。

以下为您介绍Yelink协议下,设备数据上下行原理。

设备上报属性或事件

  • 透传格式(透传/自定义)数据

    1. 流程说明

datapost

i. 设备通过透传格式数据的Topic,上报透传数据。

ii. 物联网平台通过数据解析脚本先对设备上报的数据进行解析。调用脚本中的rawDataToProtocol方法,将设备上报的数据转换为物联网平台标准数据格式(Yelink JSON格式)。

iii. 调用数据解析脚本中的protocolToRawData方法,对结果数据进行格式转换,将数据解析为设备可以接收的数据格式。

iv. 推送解析后的返回结果数据给设备

  1. Topic说明

    • 请求Topic:/sys/${productId}/${devName}/thing/dtu/up_raw
    • 响应Topic:/sys/${productId}/${devName} /thing/dtu/up_raw_reply
  2. 数据格式

    • 请求数据为设备上报的原始报文。通过MQTT协议透传的数据为16进制格式。

    • 平台响应的Yelink JSON格式

      {
          "id":"123",
          "code":200,
          "data":{}
      }
      
  • 非透传格式(Yelink JSON)数据

    datapost

    1. 流程说明
      1. 设备使用非透传格式数据的Topic,上报数据。
      2. 物联网平台进行业务处理。
      3. 联网平台返回处理结果。
    2. Topic说明

      • 设备属性上报请求Topic:/sys/${productId}/${devName}/thing/event/property/post
      • 设备属性上报响应Topic: /sys/${productId}/${devName}/thing/event/property/post_reply
      • 设备事件上报请求Topic: /sys/${productId}/${devName}/thing/event/${tsl.event.identifer} /post
      • 设备事件上报响应Topic: /sys/${productId}/${devName}/thing/event/${tsl.event.identifer} /post_reply
    3. 数据格式

      • 设备属性上报请求数据格式:

        {
          "id": "123",
          "version": "1.0",
          "params": {
            "Power": "on",
            "WF": 23.6
          },
          "method": "thing.event.property.post"
        }
        

        请求参数说明

参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0。
method String 请求方法。取值:thing.event.property.post。
params Object 请求参数。如以上示例中,设备上报了的两个属性Power和WF和具体属性信息。

  • 设备事件上报请求数据格式
{
  "id": "123",
  "version": "1.0",
  "params": {
    "Power": "on",
    "WF": 23.6
  },
  "method": "thing.event.{tsl.event.identifier}.post"
}
参数 类型 说明
id String 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
version String 协议版本号,目前协议版本号唯一取值为1.0。
method String 请求参数。取值:thing.event.{tsl.event.identifier}.post。
params Object 上报事件的参数。
  • 设备上报属性或事件响应数据格式
{
  "id": "123",
  "code": 200,
  "data": {}
}

响应参数说明

参数 类型 说明
id String 消息ID号,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
code Integer 结果状态码。
data String 请求成功时,返回的数据。

调用设备服务或设置属性

  • 异步服务调用或属性设置

    1. 流程说明

    asnycService

  1. 设置属性或调用服务

  2. 物联网平台对您提交的参数进行校验。

  3. 物联网平台采用异步调用方式下发数据给设备,并返回调用操作结果。若没有报错,则结果中携带下发给设备的消息ID。

    说明 对于透传格式(透传/自定义)数据,则会调用数据解析脚本中的protocolToRawData方法,对数据进行数据格式转换后,再将转换后的数据下发给设备。

  4. 设备收到数据后,进行业务处理。

    说明

    • 如果是透传格式(透传/自定义)数据,则使用透传格式数据的Topic。
    • 如果是非透传格式(Yelink JSON)数据,则使用非透传格式数据的Topic
  5. 设备完成业务处理后,返回处理结果给物联网平台。

  6. 物联网平台收到处理结果的后续操作:

    • 如果是透传格式(透传/自定义)数据,将调用数据解析脚本中的rawDataToProtocol方法,对设备返回的结果进行数据格式转换。
  7. 同步服务调用

asnycService

  1. 设置属性或调用服务
  2. 物联网平台对您提交的参数进行校验。
  3. 使用同步调用方式,调用RRPC的Topic,下发数据给设备,物联网平台同步等待设备返回结果

    说明 对于透传格式(透传/自定义)数据,则会先调用数据解析脚本中的protocolToRawData方法,对数据进行数据格式转换后,再将格式转换后的数据下发给设备。

  4. 设备完成处理业务后,返回处理结果。若超时,则返回超时的错误信息。

results matching ""

    No results matching ""