规则节点概述¶
路由规则由多个头尾连接的规则节点组成,每个节点处理单个传入消息并将生成一个或多个输出消息中继到下游节点。
在 EnOS 管理控制台 > 路由规则列表 创建路由规则,可在其路由规则的画布中拖放节点,以根据需求设计路由规则。
节点类型¶
路由规则中的节点分为以下几个类型。
起始节点
路由规则可从 Rule Entry 或 Scheduler 节点开始,具体取决于创建规则时选择的 触发方式。更多信息,参见 创建规则。
Filter
Filter 节点对输入 msg 进行过滤和识别,并将其分别处理,例如筛选出符合某个模型的功能定义,针对所选功能定义类型如上报测点、属性更新、事件上报等分别处理。
Enrichment
Enrichment 节点通过附加细节更新传入的消息,增加信息的维度。
Logic
使用 Logic 节点设置规则和条件处理数据,无需进行任何编程地将规则分成不同的路径以进行后续处理。
Transformation
Transformation 节点转换输入 msg 并输出到下游节点以进行后续处理。
EnOS
EnOS 节点处理 EnOS 的标准数据,如保存上报的属性、测点等,可在 EnOS 管理控制台中查看到其值。
Action
Action 节点使用其输入消息来发起操作,例如将 metadata 中的选定数据添加到 msg、转换数据格式等。
External
External 节点与外部系统交互。
表达式 ¶
消息分为两个部分,分别是 msg 和 metadata。msg 是消息的有效负载,而 metadata 则包含 JSON 格式的属性信息;例如,这些属性信息可通过输入消息和输出消息从一个节点传递到另一个节点。你可以使用表达式从节点的输入 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 是元数据中键值对的键。Metadata 的 Key 中的内容不区分大小写,Value 中填入的内容需要区分大小写。
注解
表达式只能用于 JSON 对象,不能用于 JSON 数组。若要使用表达式,必须将任何非 JSON 输入转换为 JSON 对象。你可以使用 Script 节点转换输入。对于JSON数组,可以使用 Split 节点将数组拆分成 JSON 对象。
节点列表 ¶
起始节点¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Rule Entry | √ | × |
Scheduler | × | √ |
Filter¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Msg Type Switch | √ | × |
Product Switch | √ | × |
Threshold Switch | √ | × |
Script Switch | √ | √ |
Enrichment¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Product Property | √ | √ |
Device Property | √ | √ |
Model Property | √ | √ |
Logic¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Multicast | √ | √ |
Split | √ | √ |
Switch | √ | √ |
Loop | √ | √ |
Loop End | √ | √ |
Combine | √ | √ |
Transformation¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Modify Field | √ | √ |
Operation | √ | × |
EnOS¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Send Command | √ | √ |
Checkpoint | √ | × |
Delete Attribute | √ | × |
Delete Tag | √ | × |
Duplicate to Related | √ | × |
Invoke Service | √ | × |
Post Topology Info | √ | × |
Post Local Log | √ | × |
Get Attribute Info | √ | × |
Get Tag Info | √ | × |
Post Network Stats | √ | × |
Save Attribute | √ | × |
Save Event | √ | × |
Save Measurement Point | √ | × |
Send Event | √ | × |
Post Tag | √ | × |
Send Measurement Point | √ | × |
Set Measurement Point | √ | × |
Model Feature Statistics | √ | × |
Sub-Device Login | √ | × |
Get Model Info | √ | × |
Validate Model | √ | × |
Action¶
节点 | Rule Entry 路由规则 | Scheduler 路由规则 |
---|---|---|
Kafka Pub | √ | √ |
Read Context | √ | √ |
Store Context | √ | √ |
Script | √ | √ |