PC 设备数据集成¶
本教程将指导你学习使用 EnOS 设备数据集成服务来创建一个 HTTP Server,将自定义格式的 PC 数据通过 HTTP 协议集成到到 EnOS,完成 EnOS 对 PC 设备上线管理及数据的收集。
场景描述¶
不同的设备具有不同的数据格式。EnOS 提供了标准 SDK、协议和鉴权方法,可供你将设备数据集成到 EnOS 设备连接与管理(以下简称 EnOS DCM)。设备数据集成服务有助于快速集成设备数据,而不必担心底层不同的数据格式和协议。
该流程如下所示:
设备数据集成服务创建一个 HTTP Server,通过 HTTP 协议接收来自 PC 设备的数据。
进行服务端认证。
更新设备在线状态。同时,映射设备测点数据。
将设备测点数据转换成 EnOS 标准测点格式。
将测点数据上传到 EnOS DCM。
教程目标¶
通过本教程你将能学会:
了解设备数据集成服务的应用场景。
学会流设计器的使用和对设备数据集成服务的监控。
完成 HTTP Server 的创建和配置。
完成对接入设备的服务端认证、资产映射、设备上线功能配置。
完成将自定义协议设备的数据接入、并通过编写简单的 Javascript 脚本完成数据与模型测点的转换和映射,并将测点数据上传到 EnOS DCM。
前提条件¶
阅读 将个人电脑接入 EnOS 教程,因为本教程将会使用该文档中的模型和设备。
确保你拥有发送 HTTP 协议的工具,如 Postman 或 cURL 等。本教程将会采用 Postman 的 GUI。
确保你已请求了 数据集成资源。
步骤 1:创建集成流¶
登录 EnOS 管理控制台,选择左侧导航菜单中的 设备数据集成 > 流设计器。
选择 新建集成流,输入流名称 DIS-Demo,然后选择 确定。
步骤 2:设计集成流¶
你将进入带有空白画布的 流设计器 页面。节点列表将会显示在左侧。
从节点列表中将下图所示节点拖拽入设计画布,并按照顺序连接,完成集成流。
配置 HTTP Server¶
HTTP Server 节点将建立一个 HTTP 服务器。你可以在节点的 设置 中配置其鉴权方式。
选择 HTTP Server 节点。
在 鉴权方式 下拉列表中选择 Access Token,然后输入
abc123
作为鉴权 token。
备注
URL 是 HTTPS 服务的访问地址,该地址由设备数据集成服务自动分配,无法编辑。
有关 HTTP Server 节点的更多信息,参见 HTTP Server。
配置资产映射¶
PC 设备将通过 HTTP 协议发送 myID 作为 EnOS DCM 定义的设备 ID,该 ID 将通过 Lookup Asset 节点映射到 EnOS DCM 中的资产 ID。
选择 Lookup Asset 节点。
在 查询方法下拉列表中选择 按 Device Key,然后在下方的输入框中输入表达式
${msg.myId}
。有关表达式的更多信息,参见 表达式。
备注
集成流中的数据存储在 msg 和 metadata 变量中,并采用 key:value 格式在节点之间传输。例如,如果你需要配置 msg 变量,则可以输入 ${msg.key}。在上述情况下,通过 ${msg.myId},可以获得来自 HTTP Server 节点的 myId 参数值。
有关 Lookup Asset 节点的更多信息,参见 Lookup Asset。
将数据广播到不同的分支¶
为同时更新设备状态和上传设备测点,可通过 Multicast 节点将输入的数据同时分发到每个后续连接的下游节点,下游节点将会相应地处理数据。
有关 Multicast 节点的更多信息,参见 Multicast。
配置更新设备状态分支¶
选择 Update Device Status 节点。
在 AssetId 中输入 ${msg.assetId},状态 选择 上线,然后在 登录状态持续时间 中输入
300
。
有关 Update Device Status 节点的更多信息,参见 Update Device Status。
配置数据广播¶
你可以使用 Javascript 通过 Script 节点将数据转换为 EnOS DCM 标准格式,将转换后的数据上传到 EnOS DCM。
选择 Script 节点。
选择 Script 标签。
根据以下内容,按照 EnOS DCM 所需的数据格式编写测点转换函数。
function transformMyData(assetId, pointValue) { return [{ "assetId": assetId, "measurepoints": { "cpu_used": 0.2+(Math.random()/10.0), "mem_used": pointValue }, "time": new Date().getTime(), }, ] }
然后,编写代码完成数据转换,并以 JSON 格式返回。
var data = transformMyData(msg.assetId, msg.myValue); return tools.resultBuilder.build(true, JSON.stringify(data));
选择 测试。
在 输入 Msg 文本框中,按照以下说明输入设备发送的模拟数据格式。
{ "myId": "DIS-PC1000", "myValue": 50 }
选择 测试。
检查 输出 Msg 中的数据是否异常,然后选择 确定 按钮完成脚本测试。
有关 Script 节点的更多信息,参见 Script。
配置设备数据上传到 EnOS DCM¶
Upload Measurement Pt. 节点将上一个节点传入的标准格式测点数据上传到 EnOS DCM。
有关 Upload Measurement Pt. 节点的更多信息,参见 Upload Measurement Point。
步骤 3:发布集成流¶
打开右上角的 Debug 开关,然后选择 保存 和 发布 。
选择 流设计器 菜单,返回到集成流列表,你将会看到该集成流的运行状态。
成功发布后,该集成流的状态将会变成 运行中,之后便可进行数据集成操作。
数据集成测试¶
打开 Postman 工具进行测试并创建 POST 请求。
在地址栏中选择 POST,并输入 HTTP Server 提供的 URL 地址。
在 Authorization 标签栏,选择 TYPE 为 Bearer Token, 输入 Token 为 HTTP Server 设置的 token,此处为步骤 2 HTTP Server 节点中自定义的
abc123
。在 Body 标签中,选择 raw 和 JSON,然后输入模拟测试设备的 JSON 协议数据。
选择 Send,发送请求并测试连接。如果测试成功,HTTP Server 将返回 code 为 200 的 JSON 格式数据。
备注
如果未安装 Postman,也可以通过其它终端工具进行快速测试。命令参考如下所示。
Linux/MacOS:
集成数据观察¶
在 EnOS 管理控制台中,进入 设备管理 > 设备资产,查看要接入的设备上线情况。
选择设备的 查看 图标,然后选择 测点 标签查看集成的数据。
打开 实时刷新 开关,连续发送 HTTP 请求,观察数据变化。
集成监控查看¶
在 EnOS 管理控制台中,进入 设备数据集成 > 流设计器,选择 DIS-Demo 集成流对应的 … > 运行监控。
通过弹出的运行监控对话框,可以查看当前集成流的CPU和内存使用信息。