Skip to content

连接ONENET

本文档介绍了连接ONENET云平台的大致步骤

ONENET端准备工作

用户成功注册 ONENET 云平台账号并登录后,点击 “开发者平台”,接着选择 “开发产品”,然后进行 “创建设备” 操作。

按照平台的创建流程来创建产品,这里以温湿度产品为例进行演示,用户可根据自身需求选择合适的产品品类。节点类型选择 “直连设备”,接入协议选择 “MQTT”,联网方式根据实际情况选择。

设备添加成功后创建物模型,用户可以自定义产品属性。

生成token

ONENET要求连接时需要Token 认证,首先在在ONENET界面点击详情,查看设备产品ID,设备名称,以及密钥:

使用onenet_token工具生成token,将参数填好后点击Generate生成token

参数 解释
res products/产品ID/devices/设备ID
et 时间戳,设置过期时间
key 密钥

连接ONENET

连接ONENET通过以下 AT 指令进行参数配置,用户需将其中的设备名称、产品 ID 和 Token 替换为实际值

 AT+MCONFIG=<设备名称>,<产品ID>,<Token>

连接ONENET服务器

 AT+MIPSTART="mqtts.heclouds.com",1883

服务器连接成功显示CONNECT OK之后立即建立会话,否则会被踢掉!!

AT+MCONNECT=1,60

实例流程如下:

» AT+MCONFIG=YM310_X09,hnPoEN71v5,version=2018-10-31&res=products%2FhnPoEN71v5%2Fdevices%2FYM310_X09&et=1749276282&method=md5&sign=niWdb%2B3ugyxC89yV7ayPGQ%3D%3D
//配置连接参数
OK

» AT+MIPSTART="mqtts.heclouds.com",1883//连接onenet服务器
OK
CONNECT OK

» AT+MCONNECT=1,60//建立会话连接
CONNACK OK

此时刷新ONENET界面,设备状态显示在线

发布/订阅主题

下文中所涉及的发布/订阅主题均在ONENET文档中心,用户可以根据自己发布或订阅的消息类型找到相对应的主题

发布消息

设备端订阅响应主题:

AT+MSUB=<主题>,<服务质量>

注:在发布消息前需要先订阅响应主题,否则消息发布之后,在日志界面会报错设备没有订阅响应主题

发布消息

AT+MPUB=<主题>,<服务质量>,<消息保留>,<消息内容>

将消息发布至主题 “$sys / 产品 ID / 设备名称 /thing/property/post”,发布的消息必须严格按照 ONENET 文档中心要求的 JSON 格式编写。在发送指令前,要严格遵守AT指令手册的转义要求,否则ONENET端将会报格式错误:

例如,消息内容的原始 JSON 格式为 :

{
  "id": "123",          // 设备或消息的唯一标识符
  "version": 1.0,       // 协议版本号,用于兼容性控制
  "params": {           // 参数对象,包含具体功能参数
    "brightness": {     // 亮度控制参数
      "value": 20       // 亮度值,范围通常为0-100
    }
  }
}

实际发送的消息内容为:

{\22id\22:\22123\22,\22version\22:1.0,\22params\22:{\22BrightValue\22:{\22value\22:20}}}

当消息发布后会收到ONENET的响应,根据响应判断是否成功,如果发布消息后返回{"id":"123","code":200,"msg":"success"},即代表发布成功,若返回的为其他错误码,参考ONENET官方文档查看错误码描述

发布消息流程示例:

AT+MSUB="$sys/hnPoEN71v5/YM310_X09/thing/property/set",0//订阅响应主题
OK
+SUBACK

AT+MPUB="$sys/hnPoEN71v5/YM310_X09/thing/property/post",0,0,"{\22id\22:\22123\22,\22version\22:1.0,\22params\22:{\22BrightValue\22:{\22value\22:20}}}"
//发布主题到$sys/hnPoEN71v5/YM310_X09/thing/property/post,服务质量0,不保留消息,发布消息内容将亮度值属性设置为20
OK

+MSUB: "$sys/hnPoEN71v5/YM310_X09/thing/property/post/reply",39 byte,{"id":"123","code":200,"msg":"success"}//消息发布成功

示例中上传的数据为亮度值,刷新属性界面可以看得到亮度值属性变为了20

接收消息

在ONENET端发布消息,设备端接收,打开ONENET的API调试界面,在左侧有不同调试项目,相对应的主题在ONENET文档中心有列出

此处选择设置设备属性为例,设备端订阅主题,填入产品ID和设备ID,在参数栏填入要修改的属性值,发布消息后右侧调用结果栏可以查看具体过程

ONENET端发布消息后,设备端将会上报收到的消息:

+MSUB: "$sys/hnPoEN71v5/YM310_X09/thing/property/set",54 byte,{"id":"2","version":"1.0","params":{"BrightValue":20}}

设备端需回复接收成功消息,否则调用结果中的返回结果将如下图所示,显示设备响应超时

完整流程:

» AT+MSUB="$sys/hnPoEN71v5/YM310_X09/thing/property/set",0//订阅对应主题
OK
SUBACK

+MSUB: "$sys/hnPoEN71v5/YM310_X09/thing/property/set",54 byte,{"id":"2","version":"1.0","params":{"BrightValue":20}}//接收到onenet端消息

»AT+MPUB="$sys/hnPoEN71v5/YM310_X09/thing/property/set_reply",0,0,"{\22id\22:\223\22,\22code\22:200,\22msg\22:\22success\22}"//回复响应消息,避免设备响应超时
OK