在Thingsboard时序组件中统计单数据点各故障类型出现次数
在Thingsboard实现自动统计故障类型次数的方案
完全可以不用拆分数据点、逐个定义故障,也不用低效的后处理函数来实现需求,核心思路是利用Thingsboard的实体聚合查询+内置字符串分组来自动识别故障类型,具体步骤如下:
- 选择合适的小部件:优先用自带的「帕累托图」小部件,如果没有则选「柱状图」(后续可手动配置排序和累计占比)。
- 配置数据源:
- 数据源类型选「实体聚合查询」,关联你的目标设备或设备组。
- 聚合函数设置为COUNT,统计对象选
fault数据点。 - 分组规则选「自定义字段」,利用故障字符串的固定格式(
[E023]前缀),用内置函数提取故障码:比如输入substring(fault, 0, 6)(适配[EXXX]这类6字符前缀,若故障码长度不同可调整参数),这样系统会自动把前缀相同的故障归为同一组,不管后面的描述内容是什么。 - 设置你需要的时间范围,支持用户在仪表盘上手动切换。
- 小部件优化配置:
- 将X轴绑定为分组后的故障码字段,Y轴绑定统计的次数。
- 如果用柱状图实现帕累托效果,可添加一个「累计百分比」的计算系列,公式为
sum(COUNT) OVER (ORDER BY COUNT DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) / sum(COUNT) OVER (),再把这个系列设为折线图叠加在柱状图上。
这个方案的优势是:不管现有200多种故障还是未来新增的,只要故障字符串保持[EXXX]开头的格式,就会自动被分组统计,完全不需要提前定义所有故障类型,也不用维护复杂的规则链或后处理函数。
内容的提问来源于stack exchange,提问作者dwpessoa
相关产品推荐
相关产品推荐

