Node-red-contrib-loop-processing // false positives

Hi,
i´m using node-red-contrib-loop-processing (node-red-contrib-loop-processing (node) - Node-RED) to achieve the following:

Start a while loop at 3pm / 15:00 to close shutters when global.brightness falls below a defined LUX value. As described in the docs I created:

  • a inject daily at 3pm
  • a while loop with condition expression "global.get("brightness") > 600"
  • a delay for 10 Minutes
    => While loop goes TRUE when brightness is above 600, into delay 10min, check again.

After brightness falls below 600, FALSE action triggered, exits loop and shutters go down (link out).
However the delay is still active, so the FALSE action is triggered twice. (As you can see in the screenshot the loop is already exited, however the delay is still active and will trigger the loop again in <10 min.

What am I doing wrong here? I did a log about TRUE and FALSE exits today:

15:00:00;TRUE
15:10:00;TRUE
15:20:00;TRUE
15:30:00;TRUE
15:40:00;TRUE
15:50:00;TRUE
16:00:00;TRUE
16:10:00;TRUE
16:20:00;TRUE
16:30:00;TRUE
16:40:00;TRUE
16:50:00;TRUE
17:00:00;TRUE
17:10:00;TRUE
17:20:00;TRUE
17:30:00;TRUE
17:40:00;TRUE
17:50:00;TRUE
18:00:00;FALSE
18:06:59;FALSE

You will need to add msg.reset set to true to the last message cancel the delay node.

I ended up removing the wile loop and use normal switches. No more false positives. Sometimes it can be so simple.. however I´m still at the point that [Node-red-contrib-loop-processing] is doing sth. wrong here.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.