Instructions in the comment
nodes indicated with a *
.
As is, it is set to the extremes, so may not be too handy, but it easily editable.
Concept:
You are getting data coming in (values/numbers) that have a range.
In this example 0 -> 100
0 is not useful.
100 is also not too helpful.
So the idea is that if signals (messages) are received for (say) 40 seconds that are between 1 and 99 (inclusive) you will get an output.
Sorry I didn't set anything in the output
node. Too variable.
You can adjust the acceptable range by editing the switch
node.
The middle output is the acceptable range.
The first and last outputs are outside acceptable values and are needed to be used.
If a value is outside the range, the outputs are taken to a change
node and a reset
message is constructed and resets the trigger
node.
The trigger
node is to be edited for the time period you wish the values to be covered.
(Obviously the more signals the better)
I know there are nodes that could do this similar.
But for the point of sharing and helping people: here is a small flow (routine) to do just that.
[{"id":"f62cfcc1.ecaa38","type":"trigger","z":"68e3655f.b606b4","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"40","extend":false,"units":"s","reset":"","bytopic":"all","name":"","x":530,"y":1680,"wires":[["eeeb3617.de0668","20244a41.1c6a86"]]},{"id":"621af0cb.13e2c","type":"switch","z":"68e3655f.b606b4","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"gt","v":"0","vt":"num"},{"t":"eq","v":"100","vt":"num"}],"checkall":"true","repair":false,"outputs":3,"x":330,"y":1680,"wires":[["cabd0990.6a169"],["f62cfcc1.ecaa38"],["cabd0990.6a169"]]},{"id":"cabd0990.6a169","type":"change","z":"68e3655f.b606b4","name":"Reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":1760,"wires":[["f62cfcc1.ecaa38","7e940055.b8258"]]},{"id":"eeeb3617.de0668","type":"debug","z":"68e3655f.b606b4","name":"Sustained signal received.","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":570,"y":1640,"wires":[]},{"id":"7e940055.b8258","type":"trigger","z":"68e3655f.b606b4","op1":"1","op2":"0","op1type":"str","op2type":"str","duration":"1","extend":false,"units":"s","reset":"","bytopic":"all","name":"Reset indicator","x":540,"y":1760,"wires":[[]]},{"id":"8999443b.debb08","type":"comment","z":"68e3655f.b606b4","name":"Sustained health indicator *","info":"Used to detect ongoing signals that are acceptable for health.\n\nEdit the `switch` node for the range.\nand edit the `trigger` node for how long it needs to be valid.\n","x":460,"y":1600,"wires":[]},{"id":"cfb2511d.b8ba98","type":"function","z":"68e3655f.b606b4","name":"Input","func":"\nreturn msg;","outputs":1,"noerr":0,"x":200,"y":1680,"wires":[["621af0cb.13e2c"]]},{"id":"c3e4902d.4afc48","type":"comment","z":"68e3655f.b606b4","name":"Optional *","info":"This node is just if you want to see what's going on from the edit screen if there are signals received that are resetting the `trigger` node.","x":530,"y":1720,"wires":[]},{"id":"20244a41.1c6a86","type":"function","z":"68e3655f.b606b4","name":"Output","func":"\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":1680,"wires":[[]]}]