新闻详情

新闻详情

首页 / 资讯中心 / 详情

ThingsBoard Edge 连接通知模板化指南:参数、大小写转换与国际化

发布时间:2026/10/2 1:51:33来源:尧图网络
ThingsBoard Edge 连接通知模板化指南:参数、大小写转换与国际化
物联网后端数据可视化消息队列【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址https://gitcode.com/GitHub_Trending/th/thingsboard点击查看免费下载导读在 ThingsBoard 中当 Edge边缘节点与服务器建立或断开连接时系统可以通过通知规则向租户用户、客户用户发送邮件、短信、Slack 等渠道的提醒。本文围绕 Edge 连接通知模板化文档 展开系统讲解 Edge 连接通知的可用模板参数、${...}占位符语法、值修饰后缀upperCase/lowerCase/capitalize以及基于翻译键的本地化机制并结合仓库源码说明参数在服务端是如何被填充与处理的。读完本文你将能够为 ThingsBoard Edge 连接通知编写包含 Edge 名称、连接状态与接收人信息的动态模板并实现多语言通知。Edge 连接通知的触发与模板数据来源在讲解模板参数之前先了解通知从何而来。ThingsBoard 的通知规则系统里Edge 连接事件由EDGE_CONNECTION类型的触发器捕获。核心实现位于 EdgeConnectionTriggerProcessor.javamatchesFilter()判断当前连接事件是否命中规则配置事件必须是配置的notifyOn集合中指定的CONNECTED或DISCONNECTED若规则指定了 Edge 白名单edges则只有名单内的 Edge 事件才触发通知名单为空时表示所有 Edge 都触发constructNotificationInfo()将触发事件转换为EdgeConnectionNotificationInfo其中eventType根据连接状态被置为字符串connected或disconnected同时携带edgeId、edgeName、tenantId、customerId。这些字段最终通过 EdgeConnectionNotificationInfo.java 的getTemplateData()暴露给模板引擎成为通知模板中可直接引用的参数来源。可用模板参数一览通知的主题subject、正文message以及动作按钮文本button均支持模板化。可用的参数集合由模板类型决定——Edge 连接通知支持的参数如下参数含义示例值edgeIdEdge 的 UUID 字符串5c0f0e1a-...edgeNameEdge 的名称DatacenterEdgeeventType连接状态的字符串表示connected或disconnectedconnectedrecipientEmail接收人的邮箱johnexample.comrecipientFirstName接收人的名字JohnrecipientLastName接收人的姓氏Smith其中edgeId、edgeName、eventType三个参数由触发事件本身提供见 EdgeConnectionNotificationInfo.java 的getTemplateData()而recipient*系列参数则由接收人信息动态注入在发送时由 NotificationProcessingContext.java 的getProcessedTemplate()按接收人逐个填充。这也意味着同一规则模板发给不同接收人时recipient*部分会根据各自档案生成不同内容。${...}占位符与值修饰后缀参数名必须用${...}包裹才能被模板引擎识别。例如Edge ${edgeName} is now ${eventType}。除了直接引用原始值还可以通过冒号连接的后缀修改参数值的呈现形式共支持三种修饰后缀后缀作用示例upperCase转为全大写${edgeName:upperCase}lowerCase转为全小写${edgeName:lowerCase}capitalize首字母大写其余字母不变${edgeName:capitalize}这些后缀在服务端的统一实现位于 TemplateUtils.java模板参数通过正则\$\{(.?)(:[a-zA-Z])?\}解析upperCase、lowerCase、capitalize分别映射到String::toUpperCase、String::toLowerCase与 Apache Commons 的StringUtils::capitalize。用 translate 后缀实现多语言通知通知模板同样支持本地化。使用方式是在模板中引用翻译键translation key${some.translation.key:translate}translate后缀会把some.translation.key当作翻译键在接收人语言对应的翻译文件中查找实际文本。核心规则如下模板本身是接收人语言的翻译源——例如自定义翻译键custom.notifications.greetings的值为Hello, ${recipientFirstName}!那么模板${custom.notifications.greetings:translate}会被转换成Hello, John!翻译内容中的嵌套占位符如recipientFirstName会继续按接收人信息解析接收人语言取自其个人档案profile中的 locale 设置未设置时默认使用英语Locale.US。这一点与 NotificationProcessingContext.java 中recipient instanceof User user ? user.getLocale() : Locale.US.toString()的逻辑一致非用户类型的接收人一律回退到英语。translate后缀可以与值修饰后缀组合使用例如${custom.notifications.greetings:translate:capitalize}翻译完成后再对结果做文本修饰。完整示例Edge 连接通知模板以下面这条 Edge 连接通知模板为例主题或消息均可使用Edge ${edgeName} is now ${eventType}当名为DatacenterEdge的 Edge 建立连接时实际渲染结果为Edge DatacenterEdge is now connected在此基础上可组合各类参数构造更丰富的通知例如结合recipient参数与修饰后缀Hello, ${recipientFirstName:capitalize}! Edge ${edgeName:upperCase} is now ${eventType} (id: ${edgeId})若接收人名字为john首行渲染为Hello, John!Edge 名datacenter-edge渲染为DATACENTER-EDGE。配置与调试提示Edge 连接通知规则的可配置项通知事件类型notifyOn与 Edge 白名单edges定义在 EdgeConnectionNotificationRuleTriggerConfig.java其中edges为空集合表示全部 Edge 均触发模板化同样适用于主题、消息与按钮文本NotificationTemplate及其按投递渠道划分的DeliveryMethodNotificationTemplate结构见 NotificationProcessingContext.java即邮件标题、正文、短信内容、Slack 文案等均可使用同一套${...}语法排错时优先确认占位符是否拼写正确且已用${}包裹、使用的参数是否属于 Edge 连接通知支持列表、translate引用的翻译键是否存在、接收人档案是否设置了期望的 locale否则回退英文。结语Edge 连接通知模板化是 ThingsBoard 通知体系中把事件数据 接收人数据 翻译文件三类信息组合成最终文案的核心机制。掌握${edgeName}、${eventType}等参数、upperCase/lowerCase/capitalize修饰后缀与translate本地化后缀即可针对租户与客户场景构建可读、可国际化、随事件实时变化的连接状态提醒。赞分享物联网后端数据可视化消息队列【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址https://gitcode.com/GitHub_Trending/th/thingsboard点击查看免费下载相关推荐OneUptime 移动端与桌面端应用 FAQ 与故障排查完全指南OneUptime 移动端与桌面端应用 FAQ 与故障排查完全指南 OneUptime 除浏览器之外还提供两种使用形态面向 iOS/Android 的原生 O物联网后端数据可视化消息队列Solid 响应式系统基准测试全解析从 results.md 到调度算法原型Solid 响应式系统基准测试全解析从 results.md 到调度算法原型 Solid 的基准测试结果文档 results.md https://link.物联网后端数据可视化消息队列基于 SpacetimeDB 构建实时协作绘图应用Paint App「图层与锁定」功能级规格全解基于 SpacetimeDB 构建实时协作绘图应用Paint App「图层与锁定」功能级规格全解 实时协作绘图应用对后端的要求与普通 CRUD 应用截然不同物联网后端数据可视化消息队列上一篇gogcli 实战用 gog gmail archive 在终端批量归档 Gmail 邮件与线程下一篇《乐高岛》物理碰撞isle-portable跨平台物理引擎适配创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SGLang HiCache 分层 KV 缓存实战:RadixAttention 与 write policy 调优 2026/10/2 4:25:28

SGLang HiCache 分层 KV 缓存实战:RadixAttention 与 write policy 调优

1. 从一次推理延迟抖动说起:HiCache 到底在解决什么如果你最近在折腾本地大模型推理,尤其是用 SGLang 跑 Qwen 系列或者 DeepSeek 系列,大概率会遇到一个很微妙的现象:首 token 延迟(TTFT)在长对话、多轮会…

阅读更多 →
腾讯 WorkBuddy 实战指南:AI Agent 工作台从安装到 Skill 开发全解析 2026/10/2 4:25:28

腾讯 WorkBuddy 实战指南:AI Agent 工作台从安装到 Skill 开发全解析

1. 为什么我要认真写这篇 WorkBuddy 实战指南WorkBuddy 这个产品刚出来的时候,我其实没太当回事。腾讯系的产品,名字里带个 Buddy,听起来像是又一个套壳的对话助手。直到有次团队里一个非技术岗的同事,用它在半小时内把一份三十多…

阅读更多 →
LLM工程化落地七层控制体系:从Prompt到监控的实战方法论 2026/10/2 4:25:28

LLM工程化落地七层控制体系:从Prompt到监控的实战方法论

1. 这不是“学LLM”,而是“用LLM”——从工具视角重新理解大模型的实操逻辑你点开这篇内容,大概率不是想听“LLM是Large Language Model的缩写”这种教科书定义。你真正卡住的地方,可能是:明明调通了API,但返回结果忽好…

阅读更多 →
腾讯 WorkBuddy 实战笔记:models.json 配置与 Skill 机制避坑指南 2026/10/2 4:25:28

腾讯 WorkBuddy 实战笔记:models.json 配置与 Skill 机制避坑指南

1. 为什么我要认真写一份 WorkBuddy 实战笔记WorkBuddy 这个腾讯 AI 工作台刚出来的时候,我其实没太当回事。市面上挂着“AI 工作台”名头的产品太多了,大多是把聊天框换个皮,再塞几个预设提示词就敢叫 Agent。真正让我改变看法,是…

阅读更多 →
Scikit-learn入门:从环境搭建到训练第一个机器学习模型 2026/10/2 4:25:28

Scikit-learn入门:从环境搭建到训练第一个机器学习模型

新手必看:用Scikit-learn跑通第一个机器学习模型,从环境搭建到结果解读先聊点实在的。很多朋友刚接触机器学习,看了不少理论,什么梯度下降、过拟合、交叉验证,名词都认识,但真让自己动手建一个模型&#xf…

阅读更多 →
腾讯WorkBuddy AI Agent工作台:从安装配置到Skill任务编排实战指南 2026/10/2 4:25:21

腾讯WorkBuddy AI Agent工作台:从安装配置到Skill任务编排实战指南

1. 为什么我要认真聊聊 WorkBuddy 这个工具第一次听说 WorkBuddy 是在一个技术群里,有人甩了张截图,说腾讯出了个 AI 工作台,能把日常那些重复性的活儿全接过去。当时我的第一反应是:又一个套壳产品吧?毕竟这两年打着“…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉