【MQTT】利用MQTT.fx上传数据节点到中移OneNET云平台

在学习使用OneNET云平台过程中,使用MQTT协议向平台上传数据,利用MQTT.fx输入发布tpoic,为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic ,从而获取上传数据点的结果消息
具体详情可参见OneNET官方链接:link
有关topic簇详情内容可参见OneNET官方链接:link

一、设备添加数据流模板

数据流模板 -> 添加数据流模板
在这里插入图片描述

二、数据点topic簇

MQTT物联网套件支持用户以数据流-数据点模型将数据上传至平台并进行存储,设备可以通过数据点 topic 簇调用数据点存储服务存储数据,可以通过订阅系统 topic 获取数据处理结果通知,如下图所示:
在这里插入图片描述
数据点 topic 簇 topic 列表如下:

系统topic用途QoS可订阅可发布
$sys/{pid}/{device-name}/dp/post/json设备上传数据点0/1
$sys/{pid}/{device-name}/dp/post/json/accepted系统通知"设备上传数据点成功"0
$sys/{pid}/{device-name}/dp/post/json/rejected系统通知"设备上传数据点失败"0

设备数据点上传
设备可以通过向系统固定 topic:$sys/{pid}/{device-name}/dp/post/json 发送数据点存储消息,消息中payload字段数据内容仅支持json格式,示例如下:

{
    "id": 123,        
    "dp": {             
        "temperatrue": [{     
            "v": 30,       
            "t": 1552289676
        }],
        "power": [{     
            "v": 4.5,        
            "t": 1552289676 
        }],
        "status": [{
                "v": {
                    "color": "blue"
                },
                "t": 1552289677
            },
            {
                "v": {
                    "color": "red"
                },
                "t": 1552289678
            }
        ]
    }
}

设备数据点上传,支持 QoS1,若 publish QoS=1,则平台回复 publish ack

三、MQTT.fx参数配置

1、订阅topic
为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取上传数据点的结果消息;
选择Subscribe项,输入订阅topic名称;
点击 Subscribe,完成 topic 订阅;

订阅topic命名规则:$sys/{pid}/{device-name}/dp/post/json/+
本例中,订阅topic为:$sys/349308/DHT11/dp/post/json/+

在这里插入图片描述
2、设备数据点上传
选择Publish项,输入发布 topic;
点击 Publish,上传数据点至平台;

发布topic 命名规则:$sys/{pid}/{device-name}/dp/post/json
本例中,发布 topic 名称为:$sys/349308/DHT11/dp/post/json

参数说明:
① id :消息ID,大于0的整数,数值范围为,4字节有符号数取值范围
② dp:数据点内容,key-value格式,key为数据流名称,value为list格式的一个或者多个数据点值
③ v:数据点值,可以为int/float/string/object多种格式
④ t :数据点时间戳,unix时间,单位为秒,若不携带,则系统将以数据到达平台时间作为其数据时间
在这里插入图片描述
若数据上传成功则在OneNET云平台数据流模板处可以看到相应的数据流,如图所示:
在这里插入图片描述

平台通知上传结果
消息处理完成后,平台通过系统 topic 向设备发送上传结果通知,若设备订阅了该 topic,则能收到该消息
当上传数据处理成功时
返回消息至: s y s / sys/ sys/{pid}/${device-name}/dp/post/json/accepted
数据格式为:

{
    "id": 12              //对应数据上报时的消息ID
}

在这里插入图片描述
当上传数据处理失败时
返回消息至: s y s / sys/ sys/{pid}/${device-name}/dp/post/json/rejected
若不能成功解析合法id,错误时,返回数据格式为:

{
    "id": -1,             
    "err_code": 98,
    "err_msg":"Illegal Data"
}

在这里插入图片描述
若能成功解析合法id,由其他格式问题导致的错误,返回数据格式为:

{
    "id": 123,            
    "err_code": 98,
    "err_msg":"Illegal Data"
}

错误码
上传数据处理失败时,错误码如下:

错误码 err_code错误消息 err_msg说明
98Illegal Datapayload格式有误,平台解析失败
  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值