smithtek-node-red-storenforward

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

Usage no npm install needed!

<script type="module">
  import smithtekNodeRedStorenforward from 'https://cdn.skypack.dev/smithtek-node-red-storenforward';
</script>

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
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