You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Thingsboard组件自定义动作:关联同名设备仪表板的技术问询

解决方案:通过自定义动作关联同名设备仪表板

我之前刚好碰到过一模一样的需求,给你梳理下具体的实现步骤,亲测可行:

核心思路

利用自定义动作中的event对象获取点击设备的entityName,再通过Grafana的URL规则构造目标仪表板的跳转链接,直接打开同名仪表板。

具体代码实现

在自定义动作的JavaScript编辑框中,输入以下代码(根据你的实际情况调整参数):

// 1. 从点击事件中获取当前设备的名称(也就是你的目标仪表板名称)
const deviceName = event.entityName;

// 2. 替换为你的仪表板所在文件夹的UID(可从目标仪表板的URL中提取,比如`d/abc123/device-001`里的`abc123`)
const targetFolderUid = "your-folder-uid-here";

// 3. 处理仪表板的URL别名(slug):Grafana默认会把名称转小写、空格替换为连字符,若你手动修改过slug需对应调整
const dashboardSlug = deviceName.toLowerCase().replace(/\s+/g, '-');

// 4. 构造跳转URL并打开目标仪表板
const dashboardUrl = `/d/${targetFolderUid}/${dashboardSlug}`;
window.location.href = dashboardUrl;

关键注意事项

  • 确保你的设备名称和对应仪表板的**URL别名(slug)**完全匹配:如果仪表板创建时没有修改过slug,Grafana会自动将名称转为小写,空格替换为-,所以上面的代码做了对应的字符串处理;如果是自定义的slug,直接替换dashboardSlug的生成逻辑即可。
  • 如果所有仪表板都在根文件夹(没有指定文件夹),可以把targetFolderUid替换为general(根文件夹的默认UID)。
  • 测试时可以先通过console.log(event)打印事件对象,确认entityName是否正确获取到了你需要的设备名称。

内容的提问来源于stack exchange,提问作者ajko01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 07:18:14