设备配置文件中具有动态源类型的警报规则不起作用?

问题描述 投票:0回答:1

我的第一个问题是, 我希望我能解释清楚,我是西班牙人

我想根据客户规范创建警报,在客户和设备的资产容器中创建为属性。但是,如https://thingsboard.io/docs/user-guide/device-profiles/第6点所述,在设备配置文件中创建的警报无法按照我想要的方式工作,因为动态值继承从所有者那里获取价值,从客户或资产属性中获取价值,它始终是您使用该配置文件创建的每台设备的一个价值。您知道我是否必须为每个不同的客户规范创建不同的配置文件,或者以规则链中的其他方式管理警报吗?

我不想在每个设备中创建阈值,因为我有很多设备......但我认为这将是我唯一的解决方法......

例如,假设客户指定的温度计具有不同的阈值,当它们达到不同的 tempMAX 时,应该创建警报,具体取决于客户指定的。我将创建如图 (image) 所示的温度计配置文件,但这不会从客户或资产获取 tempMAX 值(在客户和资产中创建为属性 TempMAX),尽管激活了“从所有者继承”复选框

我希望根据客户阈值收到警报,但它充当具有该配置文件的每个设备的恒定阈值

提前致谢

alarm thingsboard
1个回答
0
投票

您的方法是在规则链中设置警报。因为您正在使用设备配置文件,所以您还可以将该设备配置文件关联起来以由特定的规则链处理。在那里你将拥有更多的编程自由。

假设您要为设备属性阈值设置简单警报,并为该设备的客户所有者指定的增量盈余设置高警报和电子邮件发送。您可以使用绿色的 OriginatorAttributesNode、绿色的 CustomerAttributesNode、一些黄色的 FilterScript 和 AlarmNode 来设置算法,如下

两个绿色富集节点中的数据均以字符串形式加载。你必须解析它们。因此,第二个过滤器节点脚本可能类似于:

var th = metadata.ss_threshold;
var customerTh = metadata.customerThreshold;
if (th && customerTh) return msg.temp > parseFloat(th)+parseFloat(customerTh);
return true; // tell there is no customer threshold set

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.