微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

节点红色:测量值与设定值多次不同时出现温度报警

如何解决节点红色:测量值与设定值多次不同时出现温度报警

我正在使用 Node Red 来监控一组水族箱。我们有 14 个 DS18b20 传感器,每个水族箱一个。如果一个传感器的测量温度与设定值不同,我可以通过电子邮件发送警报。但是,有时在维护期间,我们会将传感器从水族箱中取出。因此,我想编写一个仅在测量异常值时设置警报的功能,例如连续三次(每 15 分钟测量一次值)。我怎么能这样做?
目前,我编写了一个函数,如果任何 msg.payload(数组中的 14 个测量值)与设置值的差异超过 1.5 °C,则将 msg.payload[i].temp 设置为“警报”。此功能之后是一个开关,然后触发电子邮件
你对我的问题有什么建议吗?感谢您的帮助!

解决方法

您可以尝试使用 global context 来保存连续异常措施的计数器。 例如,在名为“评估全局异常度量”

的函数节点上
// Set the variable GlobalAbnormalAlert (the counter) to not get undefined error later
if(!global.get("GlobalAbnormalAlert")){
    global.set("GlobalAbnormalAlert",0);
}

// Check if is anormal  measure,and if it so,add 1 to the counter
if (msg.payload[i].temp > 1.5 ){
    global.set("GlobalAbnormalAlert",global.get("GlobalAbnormalAlert") + 1);
}
else {
    // If not anormal,reset the counter
    global.set("GlobalAbnormalAlert",0);
}
return msg;

然后您可以在 global.GlobalAbnormalAlert 上配置一个开关来触发邮件(或不触发): Switch

然后,流程看起来像这样:

Flow

初始节点触发措施是您的回忆过程(从哪里获得msg.payload[i].temp

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。