2015-01-23 14:34:10 +01:00
|
|
|
node-red-node-rbe
|
|
|
|
=================
|
|
|
|
|
2015-02-14 18:56:29 +01:00
|
|
|
A <a href="http://nodered.org" target="_new">Node-RED</a> node that provides
|
|
|
|
provides report-by-exception (RBE) and deadband capability.
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2015-07-14 23:01:08 +02:00
|
|
|
The node blocks unless the incoming value changes - RBE mode, or
|
|
|
|
changes by more than a certain amount (absolute value or percentage) - deadband
|
|
|
|
mode.
|
|
|
|
|
2015-01-23 14:34:10 +01:00
|
|
|
Install
|
|
|
|
-------
|
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
Run the following command in your Node-RED user directory - typically `~/.node-red`
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
npm i node-red-node-rbe
|
2015-01-23 14:34:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
2015-02-14 18:56:29 +01:00
|
|
|
A simple node to provide report by exception (RBE) and deadband function
|
|
|
|
- only passes on data if it has changed.
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
This works on a per `msg.topic` basis. This means that a single rbe node can
|
2015-07-14 22:03:07 +02:00
|
|
|
handle multiple topics at the same time.
|
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
### RBE mode
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
The node doesn't send any output until the `msg.payload` is different to the previous one.
|
2015-02-14 18:56:29 +01:00
|
|
|
Works on numbers and strings. Useful for filtering out repeated messages of the
|
|
|
|
same value. Saves bandwidth, etc...
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2016-03-02 14:18:24 +01:00
|
|
|
### Deadband modes
|
2015-01-23 14:34:10 +01:00
|
|
|
|
|
|
|
In deadband mode the incoming payload should contain a parseable *number* and is
|
2015-02-14 18:56:29 +01:00
|
|
|
output only if greater than + or - the *band gap* away from the previous output.
|
2016-03-02 14:18:24 +01:00
|
|
|
It can also be set to block values more than a certain distance away from the present value.
|
2016-03-21 01:01:50 +01:00
|
|
|
This can be used to remove outliers or unexpected readings.
|
|
|
|
|
|
|
|
You can specify compare with *previous valid output value* or *previous input value*.
|
|
|
|
The former ignores any values outside the valid range, whereas the latter allows
|
|
|
|
two "bad" readings in a row to reset the range based on those values.
|
|
|
|
For example a valid step change.
|
2015-01-23 14:34:10 +01:00
|
|
|
|
2015-07-14 22:03:07 +02:00
|
|
|
The deadband value can be specified as a fixed number, or a percentage. E.g. 10
|
|
|
|
or 5% . If % mode is used then the output will only get sent if the input payload
|
|
|
|
value is equal or more than the specified % away from the previously sent value.
|
|
|
|
|
|
|
|
For example - if last sent value was 100, and deadband is set to 10% - a value
|
|
|
|
of 110 will pass - then the next value has to be 121 in order to pass (= 110 + 10% = 121).
|
|
|
|
|
|
|
|
This is mainly useful if you want to operate across multiple topics at the same
|
|
|
|
time that may have widely differing input ranges.
|
|
|
|
|
|
|
|
Will only accept numbers, or parseable strings like "18.4 C" or "$500"
|