了解如何配置规则引擎以基于当前和先前的读数计算计数器读数的增量。

用例

假设你的设备报告的绝对”counter”与水消耗相对应。
但是,你不希望可视化“绝对”值,而是可视化“增量”值,例如在最后一天,一周,一个月内消耗了多少水。
在本教程中,我们将基于当前和先前的读数计算计数器读数的”delta”。
假设先前报告的counter值为90,我们将转换输入遥测:

  1. {
  2. "counter": 100
  3. }

  1. {
  2. "counter": 100,
  3. "delta": 10
  4. }

先决条件

我们假设你已完成以下指南并查看了以下文章:

  • 入门指南
  • 规则引擎概述
  • 变换传入遥测

    步骤1: 添加enrichment节点

    我们将修改默认规则链,通过enrichment规则节点从以下位置获取先前的遥测值:数据库并将其放入消息metadata。
    使用以前的记录进行遥测 - 图1
    我们将使用以下节点配置:
    使用以前的记录进行遥测 - 图2
    请注意,如果缺少”counter”值,则规则节点将返回失败。
    我们将在下一步中设置默认的上一个计数器,以防止这种故障。

    步骤2:默认的上一个计数器节点

    这个transformation节点将默认计数器设置为来自传入消息的元数据。下一步将用于将默认”delta”值设置为0。
    使用以前的记录进行遥测 - 图3

    步骤3:Delta transformation节点

    transformation节点将从消息中根据metadata中的先前计数器值和当前值来计算增量。
    使用以前的记录进行遥测 - 图4

    步骤4:设置信息中心以查看数据

    我们添加了简单的卡片小部件以显示规则链生成的最新值
    使用以前的记录进行遥测 - 图5

    TL;DR

    从本教程中下载并导入带有规则链的附件json文件。不要忘记将新规则链标记为“根”。
    使用以前的记录进行遥测 - 图6
    从本教程中下载并导入带有仪表板的附件json文件