跳转至

丰富节点

丰富节点用于更新传入消息的元数据。

计算增量
自 YiCONNECT 版本 3.2.2 起

图像

根据之前的时间序列读数和当前读数计算“增量”并将其添加到消息中。增量计算是在消息发起者的范围内完成的,例如设备、资产或客户。对于智能计量用例很有用。例如,当水计量装置每天报告一次脉冲计数器的绝对值时。要找出当天的消耗量,您需要将前一天的值与当天的值进行比较。

增量计算是在消息发起者的范围内完成的,例如设备、资产或客户。

配置参数:

  • 输入值键(默认为“pulseCounter”)- 指定将用于计算增量的键。
  • 输出值键(默认为“delta”)- 指定将在丰富消息中存储增量值的键。
  • 小数 - 增量计算的精度。
  • 使用最新值缓存(默认“启用”)- 启用内存中最新值的缓存。
  • 如果 delta 为负则告诉“Failure”(默认情况下“启用”)- 如果 delta 值为负则强制消息处理失败。
  • 在消息之间添加周期(默认情况下“禁用”)- 添加当前消息和上一条消息之间的周期值。

规则节点关系:

规则节点产生具有以下关系之一的消息:

  • 成功 - 如果传入消息中存在通过“输入值键”参数配置的键;
  • 其他 - 如果通过“输入值键”参数配置的键不存在于传入消息中;
  • 失败 - 如果设置了“如果 delta 为负则告诉‘失败’”并且 delta 计算返回负值;

让我们通过示例回顾一下规则节点的行为。我们假设以下配置:

图像

我们假设下一条消息由同一设备发起,并按照列出的顺序到达规则节点:

msg: {"pulseCounter": 42}, metadata: {"ts": "1616510425000"}
msg: {"pulseCounter": 73}, metadata: {"ts": "1616510485000"}
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"}

输出如下:

msg: {"pulseCounter": 42, "delta": 0, "periodInMs": 0}, metadata: {"ts": "1616510425000"}, relation: Success
msg: {"pulseCounter": 73, "delta": 31, "periodInMs": 60000}, metadata: {"ts": "1616510485000"}, relation: Success
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}, relation: Other
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"}, relation: Failure
客户属性
自 YiCONNECT 2.0 版本以来

图像

节点找到消息发起者实体的客户,并将客户属性或最新遥测值添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射。

节点配置中有 最新遥测复选框。 如果选中此复选框,节点将获取配置密钥的最新遥测数据。否则,Node 将获取服务器范围属性。

图像

出站消息元数据将包含配置的属性(如果存在)。要访问其他节点中获取的属性,您可以使用此模板“ metadata.temperature

允许以下消息发起者类型: CustomerUserAssetDevice

如果发现不支持的发起者类型,则会引发错误。

如果发起者没有分配客户实体,则使用失败链,否则使用成功链。

注意: 从 YiCONNECT 版本 3.3.3 开始,您可以使用${metadataKey}元数据中的值、$[messageKey]消息正文中的值。

示例: 您有以下元数据{"country": "England"}。此外,您还有一个属性,其键是国家/地区名称,值为首都 ( {"England": "London"})。

目的是从元数据中获取国家属性中的首都,并将结果添加到带有关键 “城市” 的元数据中。为了实现这一点,您可以使用“源”属性${country},并将“城市”用作目标属性。

结果是{"city": "London"}.

设备属性
自 YiCONNECT 2.0 版本以来

图像

节点使用配置的查询查找消息发起者实体的相关设备,并将属性(客户端\共享\服务器范围)和最新遥测值添加到消息元数据中。

属性被添加到具有范围前缀的元数据中:

  • 共享属性->shared_
  • 客户端属性->cs_
  • 服务器属性->ss_
  • 遥测 -> 不使用前缀

例如,共享属性“version”将被添加到名为“shared_version”的元数据中。客户端属性将使用“cs_”前缀。服务器属性使用“ss_”前缀。最新遥测值按原样添加到消息元数据中,不带前缀。

在“设备关系查询”配置中,管理员可以选择所需的方向关系深度级别 。还可以使用所需的一组设备类型来配置 关系类型

图像

如果找到多个相关实体,则仅使用第一个实体进行属性丰富,其他实体将被丢弃。

如果未找到相关实体,则使用失败链,否则 -成功链。

如果未找到属性或遥测数据,则不会将其添加到消息元数据中,并且仍通过成功链进行路由。

仅当配置的属性存在时,出站消息元数据才会包含它们。

要访问其他节点中获取的属性,您可以使用此模板“ metadata.temperature

注意: 从 YiCONNECT 版本 2.3.1 开始,如果出站消息中至少不存在一个选定的键,则规则节点能够启用/禁用报告失败

图像

发起者属性
自 YiCONNECT 2.0 版本以来

图像

将消息发起者属性(客户端\共享\服务器范围)和最新遥测值添加到消息元数据中。

属性被添加到具有范围前缀的元数据中:

  • 共享属性->shared_
  • 客户端属性->cs_
  • 服务器属性->ss_
  • 遥测 -> 不使用前缀

例如,共享属性“version”将被添加到名为“shared_version”的元数据中。客户端属性将使用“cs_”前缀。服务器属性使用“ss_”前缀。最新遥测值按原样添加到消息元数据中,不带前缀。

图像

出站消息元数据将包含配置的属性(如果存在)。

要访问其他节点中获取的属性,您可以使用此模板“ metadata.cs_temperature

注意: 从 YiCONNECT 版本 2.3.1 开始,如果出站消息中至少不存在一个选定的键,则规则节点能够启用/禁用报告失败

图像

发起者字段
自 YiCONNECT 版本 2.0.1 起

图像

节点获取消息发起者实体的字段值并将它们添加到消息元数据中。管理员可以配置字段名称和元数据属性名称之间的映射。如果指定的字段不是消息发起者实体字段的一部分,它将被忽略。

图像

允许以下消息发起者类型: 租户客户用户资产设备警报规则链

如果发现不支持的发起者类型,则使用失败链,否则 -成功链。

如果未找到字段值,则不会将其添加到消息元数据中,并且仍通过成功链进行路由。

仅当配置的属性存在时,出站消息元数据才会包含它们。

要访问其他节点中获取的属性,您可以使用此模板“ metadata.devType

相关属性
自 YiCONNECT 2.0 版本以来

图像

节点使用配置的查询查找消息发起者实体的相关实体,并将属性或最新遥测值添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射。

在“关系查询”配置中,管理员可以选择所需的方向关系深度级别 。还可以使用所需的关系类型和实体类型配置关系过滤器集。

节点配置中有 最新遥测复选框。 如果选中此复选框,节点将获取配置密钥的最新遥测数据。否则,Node 将获取服务器范围属性。

图像

如果找到多个相关实体,则仅使用第一个实体进行属性丰富,其他实体将被丢弃。

如果没有找到相关实体,则使用失败链,否则使用成功链。

出站消息元数据将包含配置的属性(如果存在)。

要访问其他节点中获取的属性,您可以使用此模板“ metadata.tempo

注意: 从 YiCONNECT 版本 3.3.3 开始,您可以使用${metadataKey}元数据中的值、$[messageKey]消息正文中的值。

您可以在客户属性节点的描述中看到此功能的示例。

租户属性
自 YiCONNECT 2.0 版本以来

图像

节点找到消息发起者实体的租户,并将租户属性或最新遥测值添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射。

节点配置中有 最新遥测复选框。 如果选中此复选框,节点将获取配置密钥的最新遥测数据。否则,Node 将获取服务器范围属性。

图像

出站消息元数据将包含配置的属性(如果存在)。要访问其他节点中获取的属性,您可以使用此模板“ metadata.tempo

允许以下消息发起者类型: 租户客户用户资产设备警报规则链

如果发现不支持的发起者类型,则会引发错误。

如果发起者没有分配租户实体,则使用失败链,否则 -成功链。

注意: 从 YiCONNECT 版本 3.3.3 开始,您可以使用${metadataKey}元数据中的值、$[messageKey]消息正文中的值。

您可以在客户属性节点的描述中看到此功能的示例。

发起者遥测
自 YiCONNECT 版本 2.1.1 起

图像

将节点配置中选择的特定时间范围内的消息发起者遥测值添加到消息元数据。

图像

添加到消息元数据的遥测值不带前缀。

规则节点有三种获取模式:

  • FIRST:从数据库中检索最接近时间范围开头的遥测数据
  • LAST:从数据库中检索最接近时间范围末尾的遥测数据
  • ALL:从数据库中检索指定时间范围内的所有遥测数据。

图像

如果选择获取模式FIRSTLAST ,出站消息元数据将包含 JSON 元素(键/值)

否则,如果选择获取模式 ALL ,遥测数据将作为数组获取。

笔记:
规则节点可以提取限制大小的记录到数组中:1000 条记录

该数组将包含带有时间戳和值的 JSON 对象。

笔记:
间隔结束点必须始终小于间隔开始点。

如果选中复选框: 使用元数据间隔模式 ,规则节点将使用元数据中的开始间隔和结束间隔模式。

模式单位设置为自 UNIX 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的毫秒数

图像

  • 如果消息元数据中不存在任何模式,则出站消息将通过故障链进行路由。
  • 此外,如果任何模式具有无效的数据类型,则出站消息也将通过故障链进行路由。

出站消息元数据将包含配置的遥测字段(如果存在并且属于所选范围)。

如果未找到属性或遥测数据,则不会将其添加到消息元数据中,并且仍通过成功链进行路由。

要访问其他节点中获取的遥测数据,您可以使用此模板:JSON.parse(metadata.temperature)

注意: 从 YiCONNECT 版本 2.3 开始,规则节点能够在选择 Fetch 模式:ALL时选择遥测采样顺序。

图像

租户详情
自 YiCONNECT 版本 2.3.1 起

图像

规则节点 将租户详细信息中的字段添加到消息正文或元数据。

节点配置中存在将 所选详细信息添加到消息元数据复选框。 如果选中此复选框,现有字段将添加到消息元数据而不是消息数据中。

图像

选定的详细信息将添加到带有前缀的元数据中: tenant_ 。出站消息将包含配置的详细信息(如果存在)。

要访问其他节点中获取的详细信息,您可以使用以下模板之一:

  • metadata.tenant_address
  • msg.tenant_address

如果发起者没有分配租户实体,则使用失败链,否则 -成功链。

客户信息
自 YiCONNECT 版本 2.3.1 起

图像

规则节点 将客户详细信息中的字段添加到消息正文或元数据。

节点配置中存在将 所选详细信息添加到消息元数据复选框。 如果选中此复选框,现有字段将添加到消息元数据而不是消息数据中。

图像

选定的详细信息将添加到带有前缀的元数据中: customer_ 。出站消息将包含配置的详细信息(如果存在)。

要访问其他节点中获取的详细信息,您可以使用以下模板之一:

  • metadata.customer_email
  • msg.customer_email

允许使用以下消息发起者类型: AssetDeviceEntity View

如果发现不支持的发起者类型,则会引发错误。

如果发起者没有分配客户实体,则使用失败链,否则使用成功链。