跳到主要内容

Node-RED 05:Filter 节点的使用

· 阅读需 6 分钟

Node-RED是一款流式编程工具,广泛应用于自动化和物联网(IoT)领域。Filter节点作为其核心功能之一,能够帮助我们对流中的数据进行筛选和过滤,从而实现精确的数据处理和控制。本文将详细介绍Node-RED Filter节点的使用方法和实际应用场景。

什么是Filter节点?

Filter节点是Node-RED中的关键节点之一,用于根据指定的条件过滤流中的消息。Filter节点的主要功能是只在输入值与前一个值不同时传递数据,从而有效地减少重复和冗余的消息传递。它还支持死区和窄带模式,允许进一步控制何时传递数据以及如何处理变化量。本文将详细介绍Node-RED Filter节点的使用方法和实际应用场景。

如何配置 Filter 节点?

在Node-RED编辑器中,从左侧的节点列表中拖动一个Filter节点到流中。双击Filter节点打开配置面板,Filter节点支持一下几种模式:

  • 阻塞到值变化(变化检测)
  • 除非值变化大于(死区)
  • 如果值变化大于则阻塞 (滤波)

1. 变化检测

变化检测可以对值进行检测,当消息流持续输入时节点会检测所输入的值相对于前一个值是否发生了变化,如果发生了变化则进行输出。主要用于将重复的输入进行过滤,避免频繁的触发后续流程的执行。

2. 死区

死区则主要围绕所检测的值可以划定一个±x的区间,只有当数值的变化超出这个区间后才会进行输出,从而触发后续的流程。主要用于对微小波动的过滤。

对于所比对的检测值有两种模式:

  1. 与最后一个有效输出值相比
  2. 与上一个输入值相比

3. 窄带

窄带同样是围绕所检测的值划定一个±x的区间,只有当数值的变化在这个区间内时才会进行输出,从而触发后续的流程。主要用于对异常噪声的过滤。

另外,以上每种方式都可以在同一个节点内处理多组数据的检测,使用传入消息的Topic属性进行分组。当输入的消息中包含reset属性且为true时可以对Filter节点的检测进行重置。

实际案例

下面主要分享关于死区和窄带这两者的应用案例

案例一: 锅炉温度检测

假设我们需要将锅炉的温度进行上报至其它系统,但是温度传感器所传回的值可能会在某一个小范围内支持的变化,如果将这些细微的变化都进行上传会产生大量的数据,这时候我们就可以使用死区的功能将这些范围内的变化进行过滤。

通过以上配置,可以确保温度在5℃范围内频繁的变化时都不会进行输出,只有当与上一次输出的值变化超过5时才会进行输出。

案例二: 异常温度过滤

同样是锅炉的温度传感器,假设传感器在进行数据的采集时有时会存在一些异常的值,比如突然间温度的上升或下降大于10℃,而实际的场景中不可能会出现这种突然间大幅的数值波动,我们可以使用Filter节点的窄带模式进行过滤,将这种异常值进行排除。

总结

Node-RED的Filter节点是一种强大而灵活的数据处理工具,能够帮助我们根据需要过滤和传递关键的数据更新。通过合理配置RBE节点,可以有效地管理和优化数据流,提高系统的响应能力和效率。

希望通过本文,你能够更加深入地了解和应用Node-RED的RBE节点。如果有任何问题或需要进一步讨论,欢迎在评论区留言。

欢迎关注我的公众号 “nodered-co”,原创技术文章第一时间推送。

关注公众号并回复 “教程” 获取约 200 页 "Node-red 中文教程 "