通过通知中心使用通知模板向指定收件人发送通知。
配置
Template
定义通知内容、格式和配送渠道(Web、Email、SMS、Slack等)的通知模板。从ThingsBoard实例中选择已有的通知模板。
可使用 ${key} 语法引用消息data字段、metadata及其他消息属性,在通知模板中使用入站消息中的值。
Recipients
将接收通知的收件人组列表。可选择多个收件人组。通知系统将自动解析并在所有所选组之间去重。
JSON Schema
输出消息格式
节点通过将通知请求统计添加到消息metadata来转换入站消息,同时保留原始消息data。
当通知成功处理并发送时,以下字段添加到消息metadata:
notificationRequestResult— 包含通知配送统计的JSON字符串,包括:sent— 各配送渠道成功发送数量的映射errors— 各配送渠道失败数量的映射(如有)totalSent— 所有渠道成功发送的总数totalErrors— 所有渠道失败的总数error— 整个通知请求失败时的错误信息(成功时为null)
示例:
原始消息metadata:
1
2
3
{
"deviceType": "sensor"
}
通知成功发送后,metadata变为:
1
2
3
4
{
"deviceType": "sensor",
"notificationRequestResult": "{\"sent\":{\"WEB\":1},\"errors\":{},\"totalErrors\":0,\"error\":null,\"totalSent\":1}"
}
消息data保持不变。
消息确认行为
节点的消息确认行为由 ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK 环境变量控制:
- 设为
true时 — 入站消息在接收后立即被确认并标记为已成功处理。创建包含更新metadata的新消息并加入队列供下一节点处理。 - 设为
false时(默认)— 入站消息在整个通知操作期间保持处理中状态。消息就地转换,其metadata使用通知结果更新,通知完成后将修改后的消息传递至下一节点。
消息处理逻辑
- 节点使用入站消息data、metadata、来源实体信息及配置的模板和收件人创建通知请求。
- 通知请求异步提交至通知中心,由通知中心向解析出的收件人发送通知。
- 处理完成时:
- Success:将配送统计以
notificationRequestResult添加到消息metadata,消息经Success连接路由。 - Failure:消息经
Failure连接路由。
- Success:将配送统计以
输出连接
- Success
- 通知已成功处理并发送给收件人。
- 出站消息metadata包含配送统计(
notificationRequestResult),显示各渠道发送数量。
- Failure
- 意外错误:通知处理过程中发生意外错误。
示例
示例1 — 在通知中发送遥测值
发送包含设备最新遥测值的通知。
入站消息
Data:
1
2
3
4
5
{
"temperature": 23.5,
"humidity": 65.2,
"pressure": 1013.25
}
Metadata:
1
2
3
4
{
"deviceName": "Weather Station 01",
"deviceType": "sensor"
}
节点配置
1
2
3
4
5
6
7
8
9
{
"templateId": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"entityType": "NOTIFICATION_TEMPLATE"
},
"targets": [
"784f394c-42b6-435a-983c-b7beff2784f9"
]
}
节点配置
ID为 a1b2c3d4-e5f6-7890-abcd-ef1234567890 的通知模板具有以下内容:
1
2
3
4
5
6
7
8
Weather Update from ${deviceName}
Current readings:
- Temperature: ${temperature}°C
- Humidity: ${humidity}%
- Pressure: ${pressure} hPa
Device type: ${deviceType}
出站消息
Data:不变。
Metadata:
1
2
3
4
5
{
"deviceName": "Weather Station 01",
"deviceType": "sensor",
"notificationRequestResult": "{\"sent\":{\"WEB\":1},\"errors\":{},\"totalErrors\":0,\"error\":null,\"totalSent\":1}"
}
经 Success 连接路由。
结果
通知已通过Web界面成功发送给用户。通知内容:
1
2
3
4
5
6
7
8
Weather Update from Weather Station 01
Current readings:
- Temperature: 23.5°C
- Humidity: 65.2%
- Pressure: 1013.25 hPa
Device type: sensor