Node-Red Persistence

Node-RedHow could I POSSIBLY be so SLOW? For many months, after originally coming up with my own mechanism for making Node-Red variables persistent across power cycling – and then promptly forgetting about it, I’ve been conveniently ignoring the relatively new official way to do this…

This morning, just out of boredom I thought I’d have a read up… and…

Making this SIMPLE change to the Node-Red settings.js file inside the module exports section somewhere (in my case in /home/pi/.node-red folder) does it ALL.

contextStorage: {
      default    : { module: “localfilesystem”}
  },

That’s IT. So now, for any global for example, I just do this (below) in the first tab (at the top) of my Node-Red installation using an INJECT node to work once only on initialise. Unlike before, that init will only happen in the unlikely event that my settings file has been corrupted, normally no change will be made on boot as the variable will exist already.

global.set(“sidewallRGB”,global.get(“sidewallRGB”) || “255,255,255”);

Now, clearly the variables are automatically written to a file. to minimise SD wear this apparently is cached for 30 seconds so worse case if you lose power, you could lose the last 30 seconds of change… but that’s FAR better than losing all your values every time you reboot the computer (Raspberry Pi or whatever).

I found THIS helpful discussion:

https://discourse.nodered.org/t/a-guide-to-understanding-persistent-context/4115

Facebooktwitterpinterestlinkedin

7 thoughts on “Node-Red Persistence

      1. That’s the one! A very good tool to troubleshoot the projects. If you tried the NodeRed 1.0 you might also like the subflow variables which now has persistent state baked into it.

        No more dodgy configs for flows.. just pick the preferred values in subflow and deploy.

  1. hello Pete

    I am running V1.0 beta 4

    I put contextStorage: {
    default : { module: “localfilesystem”}
    },
    in my settings.js file in .node-red directory and could not get node-red flow or ui on firefox after I entered it, but I could ssh into directory and erase the entry, after which firefox could get node-red ui and flow.

    see my comments in Node-Red 1.0 b3 Trials

    regards Brian

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.