ONENET mqtts 设备接入流程

本文档详细介绍了物联网设备如何通过MQTT协议与云端平台进行数据交互,包括数据点topic的定义、消息格式、QoS设置、错误处理以及Token的生成和使用规则。设备需遵循特定的JSON格式发布数据,平台会根据上传结果返回确认或错误信息。同时,提供了服务器的IP地址和端口号,以及设备连接所需的ClientID、UserName和PassWord的计算方法。
摘要由CSDN通过智能技术生成

数据格式

数据点 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

通常我们使用$sys/{pid}/{device-name}/dp/post/json` 这个系统topic来发布消息即可。

对于topic中的payload ONENET做了一些限制,如不按照规定格式进行消息的发布,服务器会将本客户机踢下线。

消息中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
            }
        ]
    }
}

其中,参数说明如下:

参数类型是否必填说明
idint消息ID,大于0的整数,数值范围为,4字节有符号数取值范围
dpobject数据点内容,key-value格式,key为数据流名称,value为list格式的一个或者多个数据点值 上例中向temperatrue、power、status三个数据流中上传带时间戳的数据
v-数据点值,可以为int/float/string/object多种格式
tint数据点时间戳,unix时间,单位为秒,若不携带,则系统将以数据到达平台时间作为其数据时间

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

平台通知上传结果

消息处理完成后,平台通过系统 topic 向设备发送上传结果通知,若设备订阅了该 topic,则能收到该消息

当上传数据处理成功时

返回消息至: s y s / sys/ sys/{pid}/${device-name}/dp/post/json/accepted

数据格式为:

{
    "id": 123              //对应数据上报时的消息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格式有误,平台解析失败

设备接入项

  1. 接入ip和port为:

    正式环境:183.230.40.16:8883

服务器IP183.230.40.96
服务器端口1883
Client ID设备名称
User Name产品ID
PassWord需要使用Token工具生成
  1. Password计算方式请参考以下链接:

https://open.iot.10086.cn/doc/book/easy-manual/auth.html

Token 子项说明:

名称类型是否必须参数说明参数示例
versionstring参数组版本号,日期格式,目前仅支持"2018-10-31",Token工具会自动生成此项。2018-10-31
resstring访问资源 resource 格式为:父资源类/父资源ID/子资源类/子资源ID 见res使用场景说明products/123123 products/123123/devices/78329710 mqs/osndf09nand9f21390
etint访问过期时间 expirationTime,unix时间 当一次访问参数中的et时间小于当前时间时,平台会认为访问参数过期从而拒绝该访问1537255523 表示:北京时间 2018-09-18 15:25:23
methodstring签名方法 signatureMethod 支持md5、sha1、sha256sha256
signstring签名结果字符串 signature

res格式:

场景res参数格式示例说明
API访问products/{pid}products/123123
设备连接products/{pid}/devices/{device_name}products/123123/devices/mydev需使用设备级密钥

Token工具各项格式:

名称类型是否必填说明
resstring访问资源 resource 格式为:products/{products_id}/devices/{device_name}
etint访问过期时间 expirationTime,unix时间 当一次访问参数中的et时间小于当前时间时,平台会认为访问参数过期从而拒绝该访问,1537255523 表示:北京时间 2018-09-18 15:25:23(使用:1879077446即可)
keystringToken工具使用的时候需要添加,内容为设备详情页面的key
methodstringmd5

在这里插入图片描述


中移官方文档:

https://open.iot.10086.cn/bbs/thread-36330-1-1.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值