物联网之Dlink协议

物联网平台为设备端开发提供了Link SDK,并在SDK中封装了设备端与物联网平台的交互协议。您可以直接使用设备端Link SDK开发设备。如果嵌入式环境复杂,已提供的设备端Link SDK不能满足您的需求,请参见本文,自行封装Dlink协议数据,建立设备与物联网平台的通信。

概述

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

物联网平台为设备端开发提供的各语言Link SDK及功能特性说明

物联网平台各功能的Dlink协议说明,如下表所示。

表 1. Dlink协议说明

设备接入

  • 设备身份注册
    设备上线之前您需要对设备进行身份注册,标识您的设备。
  • 管理拓扑关系
    子设备身份注册后,需由网关向物联网平台上报网关与子设备的拓扑关系,然后进行子设备上线。
  • 子设备上下线
    子设备可以逐个上下线,也可以批量上下线。子设备上线之前,您需在物联网平台为子设备注册身份,建立子设备与网关的拓扑关系。子设备上线时,物联网平台会根据拓扑关系进行子设备身份校验,以确定子设备是否具备使用网关通道的能力。

消息通信

  • 设备属性、事件、服务
    如果产品定义了物模型,设备可以上报属性和事件信息,服务端可以下发设置属性和调用服务指令。
  • 设备期望属性值
    云端可以调用SetDeviceDesiredProperty接口,设置期望属性值来控制设备。在云端设置设备期望属性值后,若设备在线,将实时更新设备属性状态;若设备离线,期望属性值将缓存云端,待设备上线后,获取期望属性值,并更新属性状态。本文介绍设备期望属性值的数据格式。

设备管理

  • 子设备禁用、启用、删除
    网关类型设备可以禁用、启用(解除禁用)和删除子设备。
  • 设备标签
    设备的部分信息,如厂商、设备型号等,可以作为设备标签上报。
  • 设备网络状态
    使用Wi-Fi接入网络的设备可以主动将网络状态信息和网络错误数据,通过指定Topic上报至云端。下面介绍设备上报网络状态的Topic、数据格式和网络错误数据说明。
  • 设备分发
    物联网平台通过设备分发实现设备跨地域、跨实例或跨账号的分发。物联网平台控制台配置设备分发后,云端向设备下发通知。
  • 设备任务
    物联网平台提供设备任务配置和管理服务。设备批量服务调用任务和设备批量属性设置任务,均使用原有Dlink协议通信,本文介绍自定义任务更新消息的Topic和Dlink数据格式,包括设备任务状态更新、设备请求获取最新设备任务信息和更新任务下作业状态。

监控运维

  • OTA升级
    物联网平台提供OTA升级与管理服务。本文介绍OTA升级消息的Topic和Dlink数据格式,包括设备上报OTA模块版本、物联网平台推送升级包信息、设备上报升级进度和设备请求获取最新升级包信息。
  • 设备日志上报
    物联网平台支持设备将本地日志上报到云端,在控制台进行查询和故障分析。
  • 远程配置
    本文档介绍设备主动请求配置信息和物联网平台推送配置信息的Topic及Dlink数据格式。

以下为您介绍Dlink 协议下,设备的上线流程和数据上下行原理。

上线流程

设备在物联网平台的上线流程,可以按照设备类型,分为直连设备与子设备的接入流程。主要包括:设备注册、激活上线和数据上报三个流程。

直连设备接入有两种方式:

  • 一机一密
    提前烧录设备证书(ProductID、DeviceAddr和DeviceSecret),注册设备,上线,然后上报数据。
  • 一型一密
    动态注册提前烧录产品证书(ProductID和ProductSecret),注册设备, 上线,然后上报数据。

子设备接入流程通过网关发起,具体接入方式有两种:

  • 一机一密
    提前烧录设备证书(ProductID、DeviceAddr和DeviceSecret),子设备上报设备证书给网关,网关添加拓扑关系,复用网关的通道上报数据。
  • 动态注册
    提前烧录ProductID,子设备上报ProductID和DeviceAddr给网关,物联网平台校验DeviceAddr成功后,下发DeviceSecret。子设备将获得的设备证书信息上报网关,网关添加拓扑关系,通过网关的通道上报数据。

设备上报属性或事件

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

    序号说明1设备通过透传格式数据的Topic,上报透传数据。Topic说明,如果产品定义了物模型,设备可以上报属性和事件信息,服务端可以下发设置属性和调用服务指令。1.1物联网平台通过数据解析脚本先对设备上报的数据进行解析:调用脚本中的rawDataToProtocol方法,将设备上报的数据转换为物联网平台标准数据格式(Dlink JSON格式)。数据解析的详细内容,由于低配置且资源受限,或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信,可将原数据透传到物联网平台。您需在物联网平台控制台,编写数据解析脚本,用于将设备上下行数据分别解析为物联网平台定义的标准格式(Dlink JSON)和设备的自定义数据格式。。1.2物联网平台使用转换后的Dlink JSON格式数据进行业务处理。若配置了规则引擎,则会根据数据流转规则,将数据流转到数据目的地(其他Topic或云产品)中。 注意 + 规则引擎获取到的数据是经过脚本解析之后的数据。 + 设置数据流转时,数据来源的Topic设置为物模型数据上报的/${productId}/${deviceAddr}/thing/event/property/post/${productId}/${deviceAddr}/thing/event/${tsl.event.identifier}/post。详细说明1.3物联网平台调用数据解析脚本中的protocolToRawData方法,对结果数据进行格式转换,将数据解析为设备可以接收的数据格式。1.4物联网平台推送解析后的数据给设备。2您可以通过物联网平台接口QueryDevicePropertyData调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据。”)查询设备上报的属性历史数据,QueryDeviceEventData调用该接口查询指定设备的事件记录。”)查询设备上报的事件历史数据。
  • 非透传格式(Dlink JSON)数据 

    序号说明1设备通过非透传格式数据的Topic,上报透传数据。Topic说明,如果产品定义了物模型,设备可以上报属性和事件信息,服务端可以下发设置属性和调用服务指令。”1.1物联网平台进行业务处理。若配置了规则引擎,则会根据数据流转规则,将数据流转到数据目的地(其他Topic或云产品)中。 注意 设置数据流转时,数据来源的Topic设置为物模型数据上报的/${productKey}/${deviceName}/thing/event/property/post/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post。1.2物联网平台返回处理结果给设备。2您可以通过物联网平台接口QueryDevicePropertyData调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据。”)查询设备上报的属性历史数据,通过物联网平台接口QueryDeviceEventData调用该接口查询指定设备的事件记录。查询设备上报的事件历史数据。

调用设备服务或设置属性

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

  • 序号说明1在物联网平台进行服务调用。 + 设置属性:通过物联网平台接口SetDeviceProperty调用该接口为指定设备设置属性值。”)为设备设置具体属性。 + 调用服务:通过物联网平台接口InvokeThingService调用该接口在单个设备上调用指定服务。”)来异步调用服务。定义服务时,调用方式选择为异步的服务即为异步调用。1.1物联网平台对您提交的参数进行校验。1.2物联网平台采用异步调用方式下发数据给设备,并返回调用操作结果。若没有报错,则结果中携带下发给设备的消息ID。对于透传格式(透传/自定义)数据,则会先调用数据解析脚本中的protocolToRawData方法,对数据进行数据格式转换,再将转换后的数据下发给设备。2设备收到数据后,进行业务处理。说明 透传格式(透传/自定义)和非透传格式(Dlink JSON)数据,处理消息的Topic不同3设备完成业务处理后,返回处理结果给物联网平台。物联网平台收到处理结果的后续操作: + 若是透传格式数据,将调用数据解析脚本中的rawDataToProtocol方法,对设备返回的结果进行数据格式转换。 + 若配置了规则引擎,则会根据数据流转规则,将数据流转到数据目的地(其他Topic或云产品)中。注意 + 对于透传格式数据,规则引擎获取到的数据是经过脚本解析之后的数据。 + 设置数据流转时,数据来源的Topic设置为物模型数据上报的/${productKey}/${deviceName}/thing/downlink/reply/message
  • 同步服务调用 

    序号说明1通过物联网平台接口InvokeThingService调用该接口在单个设备上调用指定服务。”),来调用同步服务(定义服务时,调用方式选择为同步的服务即为同步调用)。1.1物联网平台对您提交的参数进行校验。1.2使用同步调用方式,调用RRPC的Topic,下发数据给设备。对于透传格式(透传/自定义)数据,则会先调用数据解析脚本中的protocolToRawData方法,对数据进行数据格式转换,再将转换后的数据下发给设备。1.3物联网平台同步等待设备返回结果。2设备完成业务处理后,返回处理结果给物联网平台。若超时,则返回超时的错误信息。2.1物联网平台收到设备处理结果后,返回结果给调用者。若是透传格式数据,将调用数据解析脚本中的rawDataToProtocol方法,对设备返回的结果进行数据格式转换。

拓扑关系

序号说明
1子设备连接到网关。若添加拓扑关系需要第三方介入,可通过下面的步骤通知网关添加拓扑关系。
1.1网关通过发现设备列表的Topic:/sys/{productId}/{deviceAddr}/thing/list/found,上报发现的子设备信息物联网平台收到上报数据后,若配置了规则引擎,则会根据数据流转规则,将数据流转到数据目的地(云产品)中。
1.2您可从云产品中获取子设备数据。
1.3您可决定是否添加网关与子设备的拓扑关系。如果需要添加拓扑关系,可以调用物联网平台接口NotifyAddThingTopo”调用该接口通知网关设备增加拓扑关系。”),通过Topic:/sys/{productId}/{deviceAddr}/thing/topo/add/notify通知网关向子设备添加拓扑关系。
2+ 网关可通过添加拓扑关系Topic:/sys/{productId}/{deviceAddr}/thing/topo/add,直接添加拓扑关系,物联网平台返回添加的结果。 + 网关收到添加拓扑关系通知指令后,通过添加拓扑关系Topic,完成添加拓扑关系。
3您删除网关与子设备的拓扑关系:网关通过删除拓扑关系的Topic:/sys/{productId}/{deviceAddr}/thing/topo/delete,来删除网关和子设备的拓扑关系。
4您可以调用物联网平台接口GetThingTopo调用该接口查询指定网关设备的子设备列表。”),通过Topic:/sys/{productKey}/{deviceName}/thing/topo/get来获取网关和子设备的拓扑关系。

物联网私有化部署请选择腾讯云服务器,通用、快捷、实惠

欢迎加入物联网开源社区

QQ群

微信公众号

有任何问题请咨询微信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值