节点概述¶
EnOS 设备数据集成服务中的集成流由多个头尾连接的节点组成,每个节点会处理输入消息并将输出消息(包含 msg 和 metadata 的已处理或未处理输入消息)传递到下游节点或其他 EnOS 服务。
除了 Input 类型节点和 Command 节点,其他节点都包含基本的数据入口和数据出口,你可以使用 EnOS 管理控制台中的 设备数据集成 > 流设计器 将节点拖放到画布中,通过连线将这些节点的入口和出口相互串联,组成完整的流。
节点类型¶
流设计器中的节点分为以下几个类型。
Subflow
Subflow 节点是一个以节点形式添加到其他集成流的集成流。
Input
你可以使用 Input 节点建立与服务器的连接、获取从 EnOS DCM 发布的指令或设置既定间隔等,以触发集成流。
Logic
你可以无需进行任何编程,用 Logic 节点设置规则和条件处理集成流,并将流分成不同的路径以进行后续处理。
Action
Action 节点使用其输入消息来发起操作,例如对服务器进行查询、上传或下载文件、或压缩/解压缩文件等。
你可以选择在执行节点之前将 msg 中的部分或全部内容保存到 metadata 中,以防止内容被覆盖。 为此,在 元数据 标签中输入 键、类型 和 值 的值。键 的内容不区分大小写,值 中填入的内容需要区分大小写。键 和 值 都可以使用 ${msg.xxx} 的表达式引用上游输入的内容。更多信息,参见 表达式。
除此之外,Action 节点处理结果的返回值将自动保存到 metadata 中,以供后续处理,例如使用 Switch 节点分别判断处理。
EnOS
你可以使用 EnOS 节点与 EnOS DCM 交互,例如获取和处理数据以及将数据上传到 EnOS DCM。
External
External 节点可连接到外部云平台或资源并从中获取数据。
Enterprise
Enterprise 节点可连接到企业数据库或 IoT 系统等,从中获取数据。
System
System 节点可管理集成流程中的各种任务对象。
Custom
Custom 节点是用户根据业务需求和使用场景设计和创建的节点。
表达式 ¶
节点日志分为 msg 和 metadata 两部分。msg 是消息的有效负载,而 metadata 则包含 JSON 格式的属性信息;例如,这些属性信息可通过输入消息和输出消息从一个节点传递到另一个节点。msg 的内容展示在日志的 Body 中,metadata 的内容展示在日志的 metadata 中。你可以使用表达式从节点的输入 msg 或 metadata(若为标准 JSON 对象)中检索特定信息,以便进行节点处理。
例如,表达式 ${msg.key} 可以快速检索键值对,其中 key 是 JSON 格式的键值对中的键。在下文所示示例中,节点会接收以下 JSON 对象作为其输入消息:
{
"assetId":"Inverter",
"timestamp":24214324324,
"measurepoints":{
"temperature":22.4,
"humidity":78
}
}
使用以下表达式将分别返回这些值。
- 表达式
- 返回值
- ${msg.assetId}
- Inverter
- ${msg.measurepoints.humidity}
- 78
同样,如果节点支持使用表达式引用其 JSON 元数据中的值,则可以使用 ${metadata.key} 返回所需的值,其中 key 是元数据中键值对的键。例如,对于 Task Manager 节点,每个任务对象都有一个唯一的任务 ID,该 ID 存储在 metadata 中,而且可通过表达式 ${metadata.taskId}
引用。
注解
表达式只能用于 JSON 对象,不能用于 JSON 数组。若要使用表达式,必须将任何非 JSON 输入转换为 JSON 对象。你可以使用 Script 节点转换输入。
节点列表 ¶
Input¶
节点 | 云端集成流 | 站端集成流 |
---|---|---|
AMQP Sub | √ | × |
HTTP Server | √ | √ |
Inject | √ | × |
Kafka Sub | √ | × |
MQTT Server(待下线) | √ | × |
Timer | √ | √ |
MQTT Sub | √ | × |
SFTP File | √ | × |
Logic¶
节点 | 云端集成流 | 站端集成流 |
---|---|---|
Multicast | √ | √ |
Split | √ | √ |
Split End | √ | √ |
Switch | √ | √ |
Loop | √ | √ |
Loop End | √ | √ |
Combine | √ | √ |
Comment | √ | √ |
Catch | √ | √ |
Action¶
节点 | 云端集成流 | 站端集成流 |
---|---|---|
CSV | √ | √ |
Compress | √ | √ |
Read Context | √ | × |
Refresh Token | √ | × |
XML | √ | × |
Script | √ | √ |
File | √ | × |
Store Context | √ | × |
HTTP Response | √ | √ |
Open API | √ | × |
EnOS¶
节点 | 云端集成流 | 站端集成流 |
---|---|---|
Lookup Asset | √ | × |
Command | √ | × |
Lookup Mapping | √ | × |
Lookup Model | √ | × |
OTA | √ | × |
Lookup Product | √ | × |
Report OTA | √ | × |
Respond Command | √ | × |
Template | √ | × |
Update Attribute | √ | × |
Update Device Status | √ | × |
Upload Asset File | √ | × |
Upload Measurement Point | √ | × |
External¶
节点 | 云端集成流 | 站端集成流 |
---|---|---|
AMQP Pub | √ | √ |
Azure Blob | √ | × |
MQTT Pub | √ | √ |
Azure Event Hub | √ | × |
√ | × | |
AWS S3 | √ | × |
HTTP Client | √ | √ |
Kafka Pub | √ | √ |
SFTP Client | √ | √ |
SMS | √ | × |
Twilio SMS | √ | × |
Azure IoT Hub | √ | × |