Filter
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
Filter节点用于邮件筛选和路由。
检查节点关系
检查存在字段
消息类型过滤
消息类型切换
发起者类型
发起者类型转换
脚本
交换
GPS地理围栏过滤器
从消息元数据中获取边界信息
从节点配置中获取周边信息
根据类型和方向检查从所选实体到消息发起者的关系。
如果存在关系-消息通过True链发送否则使用False链。
注意: 从Thingsboard 2.3版开始规则节点可以通过禁用规则节点配置进行根据方向和关系类型检查与特定实体或任何实体的关系是否存在:
如果禁用复选框并且存在任何关系-消息通过True链发送否则使用False链。
检查入站的消息数据和元数据中所选键的是否存在。
如果选中复选框Check that all selected keys are present表示消息数据和元数据中的所有键是否存在,如果为True则通过此链发送消息否则使用False链。
如果未选中此复选框并且消息的数据或元数据中至少有一个键存在通过True链发送消息否则使用False链。
管理员为入站消息定义了一组允许的消息类型。
系统中有预定义的消息类型;例如:Post Attributes、Post Telemetry、RPC Request等。
如果入站消息类型-通过True链发送消息否则使用False链。
根据消息类型路由入站的消息。
如果入站的消息具有已知的消息类型则将其发送到相应的链否则将消息发送到Other链。
如果使用自定义消息类型则可以通过消Message Type Switch Node的Other链将这些消息路由到配置了所需路由逻辑的Switch Node或Message Type Filter Node。
管理员配置发起者实体类型过滤入站消息。
如果是预期的入站发起者类型-通过True链发送消息否则使用False链。
通过发起者实体类型路由入站消息。
使用配置的JavaScript条件传入的消息。
JavaScript函数接收3个输入参数:
· msg - 消息payload
· metadata - 消息metadata
· msgType - 消息类型
脚本应返回布尔值如果为True-通过True链发送消息否则使用False链。
消息payload可以通过msg变量访问。例如msg.temperature < 10; 可以通过metadata变量访问消息。例如metadata.customerName === 'John'; 可以通过msgType变量访问。例如msgType === 'POST_TELEMETRY_REQUEST'
完整脚本示例:
根据入站消息路由到一个或多个输出链节点执行已配置的JavaScript函数。
JavaScript函数接收3个输入参数:
· msg - 消息payload
· metadata - 消息metadata
· msgType - 消息类型
该脚本应返回一个将消息路由到的下一关系名称的数组。
如果返回的数组为空-消息将不会路由到任何节点并被丢弃。
消息payload可以通过msg变量访问。例如msg.temperature < 10; 可以通过metadata变量访问消息。例如metadata.customerName === 'John'; 可以通过msgType变量访问。例如msgType === 'POST_TELEMETRY_REQUEST'
完整脚本示例:
为了指定自定义关系名称,应选择自定义类型。这将允许输入自定义关系名称。定制关系名称不区分大小写。
通过参数过滤消息的传入基于GPS的从数据或元数据中提取纬度和经度并检查它们是否在配置的边界(地理围栏)内。
默认情况下规则节点从消息元数据中获取外围信息如果未Fetch perimeter information from message metadata则应配置其他信息。
从消息元数据中获取边界信息
根据边界类型有两种区域定义选项:
·
多边形(Polygon)
·
入站消息的元数据必须包含具有名称范围和以下数据结构的密钥:
·
[[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]]
· 圈(Circle)
根据边界类型有两种区域定义选项:
· 多边形(Polygon)
· 圈(Circle)
如果配置的纬度和经度在通过True链发送的配置的周界消息内部则使用False链。
在以下情况下将使用故障链:
传入消息在数据或元数据中没有配置的纬度或经度键。 缺少周界定义;