对incoming time series或attributes触发字段计算处理,但不将数据持久化到数据库。
前置条件
消息类型和数据结构需与incoming数据类型一致:
配置
该节点无配置选项。
JSON Schema
消息处理逻辑
- 节点检查入站消息的类型。
- 对于
POST_TELEMETRY_REQUEST或POST_ATTRIBUTES_REQUEST消息:- 从消息data解析时序或属性数据(适用时包含metadata中的属性scope)
- 触发使用该数据的字段计算的评估
- 入站时序或属性数据本身不会持久化到数据库
- 当字段计算被评估时:
- 生成一条以字段计算状态已更新的来源实体为来源的新消息
- 该新消息被推入来源实体的根规则链
- 触发字段计算处理后,原始消息经
Success连接转发 - 若收到不支持的消息类型或发生错误,消息经
Failure连接路由
输出连接
Success- 消息data包含有效的时序或属性数据且已触发字段计算处理
- 消息data为空(无需处理)
Failure- 入站消息类型不是
POST_TELEMETRY_REQUEST或POST_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_REQUEST 和 POST_ATTRIBUTES_REQUEST 消息类型。ENTITY_CREATED 生命周期事件无法触发字段计算处理。