node-red-contrib-boolean-logic 0.0.3

A set of Node-RED nodes for boolean logic

npm install node-red-contrib-boolean-logic

Node-RED nodes to easily perform boolean logic.

##The problem Node-RED does not support multiple inputs on nodes, and it has been discussed at length in this thread. The TL;DR - as I understand it - is that the developers of NR argue that multiple inputs makes it too complex for users without a background in electrical engineering and that it is preferred users of NR instead use other means to create the desired logic (i.e. write Javascript in function-nodes).

##A solution I really needed a simple and reusable way to perform boolean logic on multiple topics without the need to write the same code over and over.

Could this be solved using a subflow? No, function-node within a subflow cannot be configured on an instance basis which is required as the logic must know how many inputs it is expecting when performing operations such as A || B or A && (B || C). Yes, that could be hard coded, but then it would not be reusable. Also, a subflow cannot use the status indicator which is a great help to the user.

What I came up with are the following nodes.

  • BooleanLogic: Can perform AND, OR and XOR operations on msg.payload on any number of topics.
  • Invert: Inverts the msg.payload, e.g. true -> false.
  • Debug: A debug node that displays the status direcly in the editor, making it easier to see the boolean value at a specific point.

All nodes attempts to convert the incoming msg.payload to a boolean value according to these rules:

  • Boolean values are taken as-is.
  • For numbers, 0 evaluates to false, all other numbers evaluates to true.
  • 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.

####BooleanLogic This node must be configured with the expected number of topics. It will not output a value until it has received the configured number of topics. Also, if it receives more than the configured number of topics it will reset (but not output a value) and wait until it once again sees the configured number of topics.

##Example Example

##Version history

  • 0.0.1 First release
  • 0.0.2
    • Changed status indicators from dot to rings for false-values.
    • Reworked the conversion of input values to be consistent between numbers and strings with numeric meaning.

Node Info

Version: 0.0.3
Updated 8 years, 3 months ago
License: MIT
Rating: 3.0 5

Actions

Rate:

Downloads

785 in the last week

Nodes

  • BooleanLogic
  • Invert
  • BDebug

Keywords

  • node-red
  • boolean
  • logic

Maintainers