YunIOT平台文档
  • 背景介绍
  • 平台介绍
    • 产品架构
    • 产品特点
    • 产品优势
    • 设备和应用接入
    • 部分应用案例
    • 名词解释
    • 特色
      • 特点
      • 系统角色
      • 实体和关系
      • 设备属性
      • 遥测数据
      • 设备警报
      • 物联网设备接入
      • 设备连接状态
      • 物联网设备管理
      • 系统水平可伸缩性
      • 系统容错
  • 平台入驻
    • 注册登录
  • 快速入门
    • 业务使用全流程
    • 使用模拟器体验全流程
  • 设备接入
    • 创建设备
  • 管理后台
    • 业务租户
    • 客户管理
    • 客户用户
    • 场地设施
    • 设备管理
      • 网关管理
      • 中继管理
      • 终端管理
      • 设备分布
      • 远程升级
    • 实体视图
    • 仪表组件
      • 组件库部件包
      • 开发自定义组件
    • 数据仪表
    • 操作日志
    • 流量监控
  • 规则引擎
    • 什么是规则引擎?
    • 规则引擎概述
    • 数据规则引擎
    • 规则链功能节点
      • Filter
      • Enrichment
      • Transformation
      • Action
      • 外部节点
  • 组态控件
    • 图表控件
    • GPIO控件
    • 地图控件
    • 输入框控件
    • 自定义控件
    • 实体管理控件
    • 实时监控控件
    • 异常报警部件
    • 控制开关控件
    • 数字仪表控件
    • 卡片相关控件
  • 创建可视应用界面
    • 设备实践
  • 应用开发指南及协议API
    • MQTT协议
    • Yun-IOT后台服务HTTP接口
由 GitBook 提供支持
在本页
  • 检查节点关系
  • 1. 检查存在字段
  • 2. 消息类型过滤
  • 3. 消息类型切换
  • 4. 发起者类型
  • 发起者类型转换
  • 脚本
  • 交换
  • GPS地理围栏过滤器
  • 从节点配置中获取周边信息

这有帮助吗?

  1. 规则引擎
  2. 规则链功能节点

Filter

上一页规则链功能节点下一页Enrichment

最后更新于4年前

这有帮助吗?

Filter节点用于邮件筛选和路由。

  • 检查节点关系

  • 检查存在字段

  • 消息类型过滤

  • 消息类型切换

  • 发起者类型

  • 发起者类型转换

  • 脚本

  • 交换

  • GPS地理围栏过滤器

    • 从消息元数据中获取边界信息

    • 从节点配置中获取周边信息

检查节点关系

根据类型和方向检查从所选实体到消息发起者的关系。

如果存在关系-消息通过True链发送否则使用False链。

注意: 从Thingsboard 2.3版开始规则节点可以通过禁用规则节点配置进行根据方向和关系类型检查与特定实体或任何实体的关系是否存在:

如果禁用复选框并且存在任何关系-消息通过True链发送否则使用False链。

1. 检查存在字段

检查入站的消息数据和元数据中所选键的是否存在。

如果选中复选框Check that all selected keys are present表示消息数据和元数据中的所有键是否存在,如果为True则通过此链发送消息否则使用False链。

如果未选中此复选框并且消息的数据或元数据中至少有一个键存在通过True链发送消息否则使用False链。

2. 消息类型过滤

管理员为入站消息定义了一组允许的消息类型。

系统中有预定义的消息类型;例如:Post Attributes、Post Telemetry、RPC Request等。

如果入站消息类型-通过True链发送消息否则使用False链。

3. 消息类型切换

根据消息类型路由入站的消息。

如果入站的消息具有已知的消息类型则将其发送到相应的链否则将消息发送到Other链。

如果使用自定义消息类型则可以通过消Message Type Switch Node的Other链将这些消息路由到配置了所需路由逻辑的Switch Node或Message Type Filter Node。

4. 发起者类型

管理员配置发起者实体类型过滤入站消息。

如果是预期的入站发起者类型-通过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'

完整脚本示例:

if(msgType === 'POST_TELEMETRY_REQUEST') {
    if(metadata.deviceType === 'vehicle') {
        return msg.humidity > 50;
    } else if(metadata.deviceType === 'controller') {
        return msg.temperature > 20 && msg.humidity > 60;
    }
}

return false;

交换

根据入站消息路由到一个或多个输出链节点执行已配置的JavaScript函数。

JavaScript函数接收3个输入参数:

· msg - 消息payload

· metadata - 消息metadata

· msgType - 消息类型

该脚本应返回一个将消息路由到的下一关系名称的数组。

如果返回的数组为空-消息将不会路由到任何节点并被丢弃。

消息payload可以通过msg变量访问。例如msg.temperature < 10; 可以通过metadata变量访问消息。例如metadata.customerName === 'John'; 可以通过msgType变量访问。例如msgType === 'POST_TELEMETRY_REQUEST'

完整脚本示例:

if (msgType === 'POST_TELEMETRY_REQUEST') {
    if (msg.temperature < 18) {
        return ['Low Temperature Telemetry'];
    } else {
        return ['Normal Temperature Telemetry'];
    }
} else if (msgType === 'POST_ATTRIBUTES_REQUEST') {
    if (msg.currentState === 'IDLE') {
        return ['Idle State', 'Update State Attribute'];
    } else if (msg.currentState === 'RUNNING') {
        return ['Running State', 'Update State Attribute'];
    } else {
        return ['Unknown State'];
    }
}
return [];

为了指定自定义关系名称,应选择自定义类型。这将允许输入自定义关系名称。定制关系名称不区分大小写。

GPS地理围栏过滤器

通过参数过滤消息的传入基于GPS的从数据或元数据中提取纬度和经度并检查它们是否在配置的边界(地理围栏)内。

默认情况下规则节点从消息元数据中获取外围信息如果未Fetch perimeter information from message metadata则应配置其他信息。

从消息元数据中获取边界信息

根据边界类型有两种区域定义选项:

·

多边形(Polygon)

·

入站消息的元数据必须包含具有名称范围和以下数据结构的密钥:

·

[[lat1,lon1],[lat2,lon2], ... ,[latN,lonN]]

· 圈(Circle)

"centerLatitude": "value1", "centerLongitude": "value2", "range": "value3"

All values for these keys are in double-precision floating-point data type.

The "rangeUnit" key requires specific value from a list of METER, KILOMETER, FOOT, MILE, NAUTICAL_MILE (capital letters obligatory).

从节点配置中获取周边信息

根据边界类型有两种区域定义选项:

· 多边形(Polygon)

· 圈(Circle)

如果配置的纬度和经度在通过True链发送的配置的周界消息内部则使用False链。

在以下情况下将使用故障链:

传入消息在数据或元数据中没有配置的纬度或经度键。 缺少周界定义;