• 沒有找到結果。

自定义 Topic 通信

11.1 概述

数据类

说明

CoAP协议接入的设备考虑到功耗和带宽的影响,当前只支持设备上报原始的二进制码流,由平 台根据编解码插件,将码流转换为产品模型中定义的JSON格式数据后,再进行后续处理。

查看历史数据

如果已开通物联网数据分析服务,则可以针对此设备最近一段时间上报的历史数据进 行时序洞察分析。

说明

查看历史数据是自动跳转到IoT数据分析服务,支持属性上报的数据和消息上报的数据。

若要正常使用数据分析服务查看针对属性和消息的分析,需要提前完成:

● 已完成产品模型开发。

● 属性上报时,上报的属性跟产品模型中定义的一致。

● 对于消息上报的数据以及无产品模型的属性上报的数据,IoT数据分析服务默认以数据的原始 格式保存,请在IoT数据分析服务中定义需要进行数据分析的字段格式。

步骤1 访问设备接入服务,单击“立即使用”进入设备接入控制台。

步骤2 在设备列表中,单击具体的设备进入到设备的详情页面,单击“查看历史数据”跳转 到数据分析服务进行时序洞察分析。

另外,界面上还支持查看当前资源空间下所有设备的历史数据,并支持导出历史数

● HTTP/HTTPS订阅推送:应用服务器通过调用物联网平台的创建规则触发条件、

创建规则动作、修改规则触发条件接口配置并激活规则,在指定应用服务器的

11.3.2 使用 HTTP/HTTPS 订阅推送

概述

订阅:是指应用服务器通过调用物联网平台的创建规则触发条件、创建规则动作、修

改规则触发条件接口配置并激活规则,或者在控制台创建订阅任务,向平台获取发生

变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状 态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定应用服务器的 URL,也称为回调地址。(什么是回调地址?)。

推送:是指订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更 信息(推送的通知内容可参考流转数据)推送给指定的URL地址。如果应用服务器没 有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数 据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中 HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。

订阅推送的示意图如下图所示:

物联网平台采用HTTPS协议向应用服务器进行消息推送时,物联网平台需要校验应用 服务器的真实性,需要在物联网平台上加载CA证书,该证书由应用服务器侧提供(调 测时可自行制作调测证书,商用时建议更换为商用证书,否则会带来安全风险)。

推送机制:物联网平台向应用服务器推送消息后,如果应用服务器接收消息成功,会 向物联网平台返回200 OK响应码。如果应用服务器无响应(或响应时间超过15秒),或 者应用服务器向物联网平台返回非200响应码(如500,501,502,503,504等),表示消息 推送失败,推送失败连续累计达到10次,物联网平台会将该订阅URL的主机地址加入 黑名单保持5分钟,拉黑期间物联网平台对该主机地址暂停推送,5分钟后对该地址解 除黑名单,重新进行推送。如果推送地址仍然无效,达到拉黑条件会再次触发黑名单机 制;如果恢复,则会重新恢复正常推送。

如何进行数据订阅

应用服务器接入到“设备接入服务”后,在控制台创建订阅任务,也可以通过调用API 接口进行数据订阅。

● 在控制台配置HTTP/HTTPS订阅请参考配置HTTP/HTTPS服务端订阅、加载推送

证书。

● 通过API接口进行数据订阅请参考如何调用API和创建规则触发条件、创建规则动

作、修改规则触发条件。

● 如果应用服务器新增了订阅类型(新增URL),需要在物联网平台上加载与该URL 对应的CA证书。即使新增URL使用的CA证书与原来推送的URL使用相同的证书,

CA证书 需要提前申请和购买CA证书文件,CA证书由应用服务器侧提供。

说明

----结束

制作调测证书

调测证书,又叫做自签名证书,用于客户端通过HTTPS访问服务端时进行安全认证。

在物联网平台的使用中,可用于物联网平台向应用服务器采用HTTPS协议推送数据 时,物联网平台认证应用服务器的合法性。本文以Windows环境为例,介绍通过 Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书,后缀为.cer。

常见的证书存储格式如下表所示。

存储格式 说明

DER 二进制编码,后缀名.der/.cer/.crt PEM BASE 64编码,后缀名.pem/.cer/.crt JKS Java的证书存储格式,后缀名.jks

说明

自签名证书仅用于调测阶段,在商用时,您需要向知名CA机构申请证书,否则可能会带来安全 风险。

步骤1 在浏览器中访问这里,下载并安装OpenSSL工具。

步骤2 以管理员身份运行cmd命令行窗口。

步骤3 执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。

步骤4 执行如下命令生成CA根证书私钥文件ca_private.key。

openssl genrsa -passout pass:123456 -aes256 -out ca_private.key 2048

● aes256:代表加密算法。

● passout pass:代表私钥密码。

● 2048:代表密钥长度。

步骤5 执行如下命令使用CA根证书私钥文件生成csr文件ca.csr,用于6生成CA根证书。

openssl req -passin pass:123456 -new -key ca_private.key -out ca.csr -subj "/C=CN/ST=GD/L=SZ/O=Huawei/

● O:组织,如Huawei。

● OU:组织单位,如IoT。

● CN:Common Name,填写为CA的组织名,如CA。

步骤6 执行如下命令生成CA根证书ca.cer。

openssl x509 -req -passin pass:123456 -in ca.csr -out ca.cer -signkey ca_private.key -CAcreateserial -days 3650

如下信息您可以根据实际情况进行修改。

● passin pass:必须与4中设置的私钥密码保持一致。

● days:代表证书有效期。

步骤7 执行如下命令生成应用服务器端私钥文件。

openssl genrsa -passout pass:123456 -aes256 -out server_private.key 2048

步骤8 执行如下命令生成应用服务器端csr文件,用于生成服务端证书。

openssl req -passin pass:123456 -new -key server_private.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/

O=Huawei/OU=IoT/CN=appserver.iot.com"

如下信息您可以根据实际情况进行修改。

● C:代表国家,填写CN。

● ST:地区,如GD。

● L:城市,如SZ。

● O:组织,如Huawei。

● OU:组织单位,如IoT。

● CN:Common Name,一般填写为应用服务器的域名或IP。

步骤9 通过CA私钥文件ca_private.key对服务端csr文件server.csr进行签名,生成服务端证书 文件server.cer。

openssl x509 -req -passin pass:123456 -in server.csr -out server.cer -sha256 -CA ca.cer -CAkey ca_private.key -CAserial ca.srl -CAcreateserial -days 3650

步骤10 (可选)如果您需要.crt/.pem后缀的证书,可以根据如下命令进行转换。下面将以 server.cer转为为server.crt为例进行说明,需要转换ca.cer证书时,请将命令中的server 替换为ca。

openssl x509 -inform PEM -in server.cer -out server.crt

步骤11 在openssl安装目录的bin文件夹下,获取生成的CA证书(ca.cer/ca.crt/ca.pem)、应 用服务器证书(server.cer/server.crt/server.pem)和私钥文件

(server_private.key)。其中CA证书用于加载到物联网平台,应用服务器证书和私钥 文件用于加载到应用服务器。

----结束

配置 HTTP/HTTPS 服务端订阅

● 设备异步命令状态:针对LwM2M/CoAP协议的设备,物联网平 台支持下发异步命令给设备。将异步命令的状态变更设置为数据

参数名 参数说明

SQL语句 您需要编辑处理消息数据的SQL,设置数据转发目的地。

单击“编辑SQL”,编写处理消息字段的SQL。

推送URL 物联网平台推送消息到应用服务器的URL。例如,推送URL为

“https://www.example.com:8443/example/”,则加载推送证

书时“域名/IP与端口”为“www.example.com:8443”。

● 如果“推送URL”使用HTTP协议,不需要使用CA证书;

● 如果“推送URL”使用HTTPS协议,需要上传CA证书,证书 的上传可参考加载推送证书。

步骤5 完成完整的规则定义后,单击“启动规则”,实现数据转发至HTTP/HTTPS消息队 列。

调用删除单个订阅接口时,subscriptionId如何获取

相关 API 接口

创建规则动作 创建规则触发条件 修改规则触发条件 流转数据

11.3.3 使用 AMQP 订阅推送

11.3.3.1 AMQP 订阅推送

订阅:AMQP(Advanced Message Queuing Protocol)即高级队列消息协议。用户 通过控制台创建订阅任务,也可以通过调用物联网平台的创建规则触发条件、创建规

则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信

息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息

(软固件升级状态和升级结果)。订阅时必须指定具体的AMQP消息通道。

推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给 指定的AMQP消息队列。如果用户没有订阅该类型的数据通知,即使数据发生了变更 也不会进行推送。用户可通过AMQP的客户端与IoT平台建立链接,来接收数据。订阅 推送的示意图如下图所示:

推送机制:物联网平台向用户推送消息后,如果用户接收成功,会向物联网平台回复 响应(推荐自动响应方式)。如果用户建立链接后不拉取数据,则会导致数据积压在 服务端。服务端仅保存最近24小时,且占用磁盘容量小于1G的数据,如果用户不及时 拉取数据,物联网平台会滚动清除超期和超出容量限制的数据。若用户收到消息后来 不及响应,长链接中断,则未响应的数据会在下次链接后重新推送。

如何进行数据订阅

应用服务器接入到“设备接入服务”后,在控制台创建订阅任务,也可以通过调用API 接口进行数据订阅。

● 在控制台配置AMQP订阅请参考11.3.3.2 配置AMQP服务端订阅。

● 通过API接口进行数据订阅请参考如何调用API、创建规则触发条件、创建规则动

作和修改规则触发条件。

推送数据格式

数据订阅成功后,物联网平台推送到应用侧的数据格式样例请参考流转数据。

说明

http协议消息头中,媒体类型信息Content-Type为application/json;字符集为utf-8;

相关 API 参考

创建规则动作 创建规则触发条件 修改规则触发条件 流转数据

创建AMQP队列 查询AMQP列表 查询单个AMQP队列 生成接入凭证

11.3.3.2 配置 AMQP 服务端订阅

本文介绍如何在物联网平台设置和管理AMQP服务端订阅。

步骤1 访问设备接入服务,单击“立即使用”进入设备接入控制台。

步骤2 选择左侧导航栏的“规则 > 数据转发”,单击页面右上角的“创建规则”。

步骤3 参考下表填写参数后,单击“创建规则”。

参数名 参数说明

规则名称 创建的规则名称。

规则描述 对该规则的描述。

参数名 参数说明

● 设备异步命令状态:针对LwM2M/CoAP协议的设备,物联网平 台支持下发异步命令给设备。将异步命令的状态变更设置为数据

SQL语句 您需要编辑处理消息数据的SQL,设置数据转发目的地。

单击“编辑SQL”,编写处理消息字段的SQL。