产品定价 立即试用
社区版
入门 文档 指南 安装 架构 API 常见问题

字段计算

对incoming time series或attributes触发字段计算处理,但不将数据持久化到数据库。

前置条件

消息类型和数据结构需与incoming数据类型一致:

配置

该节点无配置选项。

JSON Schema

1
2
3
4
5
6
7
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "EmptyNodeConfiguration",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

消息处理逻辑

  1. 节点检查入站消息的类型
  2. 对于 POST_TELEMETRY_REQUESTPOST_ATTRIBUTES_REQUEST 消息:
    • 从消息data解析时序或属性数据(适用时包含metadata中的属性scope)
    • 触发使用该数据的字段计算的评估
    • 入站时序或属性数据本身不会持久化到数据库
  3. 当字段计算被评估时:
    • 生成一条以字段计算状态已更新的来源实体为来源的新消息
    • 该新消息被推入来源实体的根规则链
  4. 触发字段计算处理后,原始消息经 Success 连接转发
  5. 若收到不支持的消息类型或发生错误,消息经 Failure 连接路由
文档信息图标

注意:计算结果包含在新生成的消息中(步骤3)。要将这些结果持久化到数据库,仍需在规则链中使用“save time series”或“save attributes”节点。

输出连接

  • Success
    • 消息data包含有效的时序或属性数据且已触发字段计算处理
    • 消息data为空(无需处理)
  • Failure
    • 入站消息类型不是 POST_TELEMETRY_REQUESTPOST_ATTRIBUTES_REQUEST
    • 入站消息data无法解析为时序数据或属性数据
    • 消息处理过程中发生意外错误

示例

示例1 — 为字段计算处理时序

入站消息

Type: POST_TELEMETRY_REQUEST

Data:

1
2
3
4
{
  "temperature": 25.5,
  "humidity": 60
}

Originator: DEVICE.

节点配置

1
{}

系统状态

The device has a calculated field “heatIndex” defined that uses the formula: temperature + 0.5 * humidity

出站消息

出站消息与入站消息相同。经 Success 连接路由。

结果

使用入站温度和湿度值评估字段计算“heatIndex”(25.5 + 0.5 * 60 = 55.5)。生成包含计算值、以设备为来源实体的新消息并推入根规则链。原始时序数据(temperature和humidity)不会存储到数据库。

示例2 — 为字段计算处理属性

入站消息

Type: POST_ATTRIBUTES_REQUEST

Data:

1
2
3
4
{
  "maxSpeed": 100,
  "currentSpeed": 75
}

Metadata:

1
2
3
{
  "scope": "SERVER_SCOPE"
}

Originator: DEVICE.

节点配置

1
{}

系统状态

The device has a calculated field “speedPercentage” defined that calculates: (currentSpeed / maxSpeed) * 100

出站消息

出站消息与入站消息相同。经 Success 连接路由。

结果

评估字段计算“speedPercentage”(75 / 100 * 100 = 75%)。生成包含计算值的新消息并推入根规则链。原始属性不会持久化到数据库。

示例3 — 空负载处理

入站消息

Type: POST_TELEMETRY_REQUEST

Data: {}

节点配置

1
{}

出站消息

出站消息与入站消息相同。经 Success 连接路由。

结果

因data为空,未触发任何字段计算。消息成功透传,无任何处理。

示例4 — 不支持的消息类型

入站消息

Type: ENTITY_CREATED

节点配置

1
{}

出站消息

出站消息与入站消息相同。经 Failure 连接路由。

结果

处理失败,因为该节点仅支持 POST_TELEMETRY_REQUESTPOST_ATTRIBUTES_REQUEST 消息类型。ENTITY_CREATED 生命周期事件无法触发字段计算处理。