最近遇到一个需求,按时间段统计一片区域的插座电量。
看了下Thingsboard聚合查询函数,只支持 MIN, MAX, AVG, SUM, COUNT, NONE; 蛋疼了,没有差值
统计这块还是Opentsdb好用,几十个的聚合函数随便玩,不过Thingsboard规则链可以无缝和Opentsdb集成,只要服务器够,其实也还好。
不多说,记录下差值计算的规则链写法,官网也有完整文档。
https://thingsboard.io/docs/user-guide/rule-engine-2-0/tutorials/telemetry-delta-validation/
首先判断插座的遥测数据是否包含电量,没包含直接存储,(比较简单截图略过)。
下来获取上一次电量的值,以便取差值,首先tb支持取一段时间,某一个具体指标上报的第一个、最后一个、以及全部(max 1000)的数据,
数据拿到后,tb会把数据写入元数据中。方便后续计算差值
然后计算取个差值。存入上级资产列表。
最后使用之前帖子写的聚合查询功能实现,完成区域聚合查询即可。资产就是插座所在区域。
从tb和Api检查下数据,功能ok