连接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