Massimo 756767c33a Update Readme | пре 5 година | |
---|---|---|
boolean-logic-ultimate | пре 5 година | |
.gitattributes | пре 5 година | |
.gitignore | пре 5 година | |
CHANGELOG.md | пре 5 година | |
LICENSE | пре 5 година | |
README.md | пре 5 година | |
package-lock.json | пре 5 година | |
package.json | пре 5 година |
Set of enhanced logic nodes for your flows.
Subscribe to my channel. Only news about my nodes, no spam, no ads. I’m a github developer, not a merchant.
Wellcome! First of all thank you for your interest in my nodes. This is a set of logic nodes, to overcome the simplicity of the default node-red boolean logic nodes. Hope you enjoy that and if you’re in trouble, please ask!
The node performs Boolean logic on the incoming payloads.
The node expects a fixed number of topics (configured in the settings) on which it will operate. It will only output a value
when it has seen the expected number of topics. If it ever sees more than the configured number of topics it will log a message then reset its state and start over.
The node performs 3 checks (AND,OR,XOR) on the incoming boolean payloads and outputs the result at the same time, as follow:
The node can have a persistent input: the input values are retained after a node-red reboot. That means, that if you reboot your node-red, you don’t need to wait all inputs to arrive and initialize the node, before the node can output a payload.
You can also set the default values of the topic inputs.
Number of different topics to evaluate
Set the number of different topics to be evaluated. The node will output a message to the flow, after this number of different topics arrives.
Remember: each input topic must be different. For example, if you set this field to 3, the node expects 3 different topics.
Filter output result
<li>Output both 'true' and 'false' results: Standard behaviour, the node will output <b>true</b> and <b>false</b> whenever it receives an input and calculate the boolean logics as output.</li>
<li>Output only 'true' results: whenever the node receives an input, it outputs a payload <b>true</b> only if the result of the logic is true. <b>False</b> results are filtered out.</li>
Trigger mode
If input states are undefined
Every time you create a node or modify the node, all inputs are set to undefined. This means that the node will wait the arrive of all topics (for example 3 topics, if you’ve selected 3 topics in the option), before it can output a payload. This can be a problem if your logic must be operative as soon as you deploy the flow. To overcome this problem, you can “initialize” all the undefined inputs with True or False.
<li>Leave undefined: Standard behaviour, the node will wait all the "undefined" topics to arrive, then starts a flow with the result.</li>
<li>True or False: The node is immediately operative, by force the initialization of the "undefined" inputs with "true" or "false".</li>
Remember latest input values after reboot
If checked, the input values are retained after a node-red reboot. That means, that if you reboot your node-red, you don’t need to wait all inputs to arrive and initialize the node, before the node can output a payload.
Every time you modify the node’s config, the retained values are cleared.
All incoming msg.payloads are converted into a boolean value according to the following rules (this applies to all boolean logic nodes):
<li>Boolean values are taken as-is.</li>
<li>For numbers, 0 evaluates to false, all other numbers evaluates to true.</li>
<li>Strings are converted to numbers if they match the format of a decimal value, then the same rule as for numbers are applied. If it does not match, it evaluates to false. Also, the string "true" evaluates to true.</li>
Whenever this node receives a payload = false from a specific topic, it stops output messages to the flow. As soon it receives payload = true from this topic, the output messages start to flow out again.
Outputs the inverted input. For example true -> false
This node has 2 outputs.
If the input payload is true, the node will send true
on output 1 and nothing on oputput 2
If the input payload is false, the node will send nothing on output 1, and false
on oputput 2