You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 6.3KB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. # node-red-contrib-boolean-logic-ultimate
  2. Set of enhanced logic nodes for your flows.
  3. [![NPM version][npm-version-image]][npm-url]
  4. [![NPM downloads per month][npm-downloads-month-image]][npm-url]
  5. [![NPM downloads total][npm-downloads-total-image]][npm-url]
  6. [![MIT License][license-image]][license-url]
  7. [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
  8. [![Donate via PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square)](https://www.paypal.me/techtoday)
  9. [![Donate via PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square)](https://www.paypal.me/techtoday)
  10. <a href="http://eepurl.com/gJm095" target="_blank">Subscribe to my channel.</a> Only news about my nodes, no spam, no ads. I'm a github developer, not a merchant.
  11. > 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.
  12. Hope you enjoy that and if you're in trouble, please ask!
  13. ## CHANGELOG
  14. * See <a href="https://github.com/Supergiovane/node-red-contrib-boolean-logic-ultimate/blob/master/CHANGELOG.md">here the changelog</a>
  15. # BOOLEAN LOGIC
  16. The node performs Boolean logic on the incoming payloads.<br/>
  17. The node expects a fixed number of topics (configured in the settings) on which it will operate. It will only output a value
  18. 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.<br/>
  19. The node performs 3 checks (<b>AND,OR,XOR</b>) on the incoming boolean payloads and outputs the result at the same time, as follow:<br/>
  20. - Output "AND": true or false<br/>
  21. - Output "OR": true or false<br/>
  22. - Output "XOR": true or false<br/>
  23. 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.<br/>
  24. You can also set the default values of the topic inputs.
  25. ## ADDITIONAL FUNCTIONS
  26. * Filter ouput results (outputs only true or trye/false)
  27. * Trigger mode selection (Can output a payload only by single input's topic trigger and after evaluation ot other inputs, or can oputput a payload by change of every input)
  28. ## CONFIGURATION
  29. ***Number of different topics to evaluate***
  30. 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.<br/>
  31. *Remember: each input topic must be different. For example, if you set this field to 3, the node expects 3 different topics.*
  32. ***Filter output result***
  33. <ol>
  34. <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>
  35. <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>
  36. </ol>
  37. <br/>
  38. **Trigger mode**
  39. <ol>
  40. <li>All topics: standard behaviour, the node will evaluate each input topic and ouputs the values. At each input change, it will output a msg on the flow.</li>
  41. <li>Single topic + eval other inputs: the node evaluates all the input topics, but only whenever it receives a msg input with the **specified topic** (having payload **true**), it outputs a msg to the flow.</li>
  42. </ol>
  43. **If input states are undefined**
  44. 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.
  45. <ol>
  46. <li>Leave undefined: Standard behaviour, the node will wait all the "undefined" topics to arrive, then starts a flow with the result.</li>
  47. <li>True or False: The node is immediately operative, by force the initialization of the "undefined" inputs with "true" or "false".</li>
  48. </ol>
  49. <br/>
  50. **Remember latest input values after reboot**
  51. 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.<br/>
  52. Every time you modify the node's config, <b>the retained values are cleared</b>.<br/>
  53. All incoming msg.payloads are converted into a boolean value according to the following rules (this applies to all boolean logic nodes):
  54. <ol>
  55. <li>Boolean values are taken as-is.</li>
  56. <li>For numbers, 0 evaluates to false, all other numbers evaluates to true.</li>
  57. <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>
  58. </ol>
  59. <br>
  60. The XOR operation operates in a one, and only one mode, i.e. (A ^ B) ^ C ... ^ n
  61. </p>
  62. <p>
  63. # INTERRUPT FLOWS
  64. 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.
  65. # INVERT ULTIMATE
  66. Outputs the inverted input. For example true -> false
  67. # FILTER ULTIMATE
  68. This node has 2 outputs.<br />
  69. If the input payload is true, the node will send <code>true</code> on output 1 and nothing on oputput 2<br />
  70. If the input payload is false, the node will send nothing on output 1, and <code>false</code> on oputput 2<br />
  71. [license-image]: https://img.shields.io/badge/license-MIT-blue.svg
  72. [license-url]: https://github.com/Supergiovane/node-red-contrib-boolean-logic-ultimate/master/LICENSE
  73. [npm-url]: https://npmjs.org/package/node-red-contrib-boolean-logic-ultimate
  74. [npm-version-image]: https://img.shields.io/npm/v/node-red-contrib-boolean-logic-ultimate.svg
  75. [npm-downloads-month-image]: https://img.shields.io/npm/dm/node-red-contrib-boolean-logic-ultimate.svg
  76. [npm-downloads-total-image]: https://img.shields.io/npm/dt/node-red-contrib-boolean-logic-ultimate.svg