README
node-red-contrib-store-and-forward
A contributed Node-RED node, that queues undeliverable messages to file for later delivery. This node package is intended for use on systems with unreliable network connectivity. It can also be used to serve as a data logger for node red
Overview
If the network connection is lost during operation this node will divert all new messages to file.
When the connection is established it will off-load the messages from that file in a first in first out order
The node has persistent storage so even if there is 1 or multiple blackouts it will still offload the file upon restart.
A good example is sensor data passing to an MQTT node. The Mqtt node is sending the sensor data to a broker outside it own network.
This could be a cloud broker or remote server on the same site.
The node also has a property to control how fast the stored messages offload. This allows the design to have more control on the handling of the messages.
Installation
Install smithtek-node-red-storenforward
by following the
store Configuration
The Connected Status Matches
section is a regular expression ^connected
which
matches all status text messages that start with connected. In addition to regular
expressions, you can also specify a simple substring match. Because there is no
value specified to match Disconnected Status Matches
, any message that doesn't
match ^connected
will be deemed a disconnected state.
Conversely, if a Disconnected Status Matches
value is provided, but not for
Connected Status Matches
, then any status text that does not match will be
deemed a connected state.
Finally, if both a Connected Status Matches
and Disconnected Status Matches
value is given, then any status text doesn't match either, will be ignored, and
the current state will remain.
You must also specify a filename for the sqlite database that stores queued messages during a disconnected state. This database file must not be shared between multiple queue nodes.
Message release node input
property is in ms
. the messages will release from the store
at the selected time ms
An example : the store has saved 60 messages during the disconnected period.
You selected 1000 ms
the store would offload in 1 minute.
Licence
Copyright (c) original development code 2017 Damien Clark, Damo's World
Copyright (c) smithtek 2019, Smithtek
Licenced under the terms of the
GPLv3
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAMIEN CLARK BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Acknowledgements
We would like to thank the following people for their hard work, time and effort. For without them this node would not be possible
- Damien Clark for the birth of a great idea
- Creators of the queue icon
- Nick O'Leary and Dave Conway-Jones for creating Node-Red