After upgrate to v1.1.1; flows now not working "error: node not deployed"

Finally took the plunge and updated to v1.1.1 with excitement and trepidation (from 0.20 which was stable and was working flawlessly for ages).

Ungraded using standard recommended script, all seems well with no errors. But excitement turns to frustration, now no flows work, e.g any pressing inject node on any flow, gets error: node not deployed. Though I better seek wisdom of forum before I dig a deeper hole.

The exclamation triangle shows:

Flows stopped due to missing node types.
arduino-board
oled-config
arduino out
Turn-on
Line
String
Clear
Turn-off

What have I done or should do?

Can you see in your flow any dotted outlines nodes that you remember what they were? Have a look in the manage pallete -> install, see if you can find updated versions of the missing nodes and install them. Things should spring into life once installed

Hi Steve,
Thanks for advise, looks like some thing to do with node-red-contrib-oled:
Error: The module '/home/pi/.node-red/node_modules/i2c-bus/build/Release/i2c.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 57. This version of Node.js requires NODE_MODULE_VERSION 72. Please try re-compiling or re-installing the module (for instance, using npm rebuild or npm install). (line:1)
I am not sure how to recompile or if I do will cause other problems.
The thing is that is was working perfectly before the upgrade, and now I cannot even run any flows.
Anyone else had oled running before and not working now in v1.1.1?
Thanks,

Did nodejs get updated? Perhaps this node required/requires an older version of nodejs.

Perhaps node-red-contrib-oled node needs some attention / updating.

See if you can find it on GitHub, maybe raise an issue if not already raised.

Failing that, you might try forking it and updating the package.json to use newest references?

Lastly, you might have to downgrade nodejs to V8 (though this is a temporary stop gap measure and not really the best solution)

Go into your .node-red folder and run
npm install node-red-contrib-oled
If at the end it says there was an error then post the full output from the command here (use the </> button).
If it seems to have installed ok then restart node-red.

[Edit] Looking at the github repo for the node it seems it is no longer supported. This issue posted there purports to provide the means for getting it going. https://github.com/HendrikRoth/node-red-contrib-oled/issues/21

In the longer term you will probably need to find an alternative solution that does not use that node.

Thanks Colin, tried npm install node-red-contrib-oled and just gives pages n pages of error, so I wont waste your time and paste it here.Best is as u said find an alternative. the only other I found in the pallette is 'nodered-sh110' but that fail to install in v1.1.1 also.
I roll back to an olde nr version withr node.js v8.11.1 as suggested by Steve, n it install n works. Obviously not a long term solution, I am surprised that there are no working nodes for oled i2c display as it is such a great display compared to lcd.
Another alternative I guess is to use mqtt and interface to a esp8266 with espeasy oled interface, however just seems a roundabout way.

On the subject of node,js versions and NR versions and NR installation:
1.Is there a reference table somewhere correlating NR versions and node.js versions when u install using the script.
2. Is it possible to modify the script to somehow let user to select which version of NR to install?
3. A script to completely remove NR might be useful. (so one can start from clean slate, I had a look thru the forum,and to complete remove NR is more to it as there are a lot of breadcurumbs)

Anyway back to topic, if anyone has a working oled i2c setup with nr v1.1.1 n node.js v12.13.1, advise will be appreciated.

Thanks,

Valid versions of nodejs (for all recent node red versions) can be found at https://nodered.org/docs/faq/node-versions
If there is already a good version of nodejs installed then the script will leave it. Otherwise if installs it. I believe it will install v12 currently, though not sure what it does on a Pi Zero as there isn't an official v12 build for the Zero.

The easiest way to do that is to let the script install the latest then to manually install the one you want using
sudo npm -g --unsafe-perm node-red@n.n.n
where n.n.n is the version, obviously.

I guess a script would be tricky as what you mean completely removing node-red may be difficult to define. If you are using npm for other applications then it might be difficult to be certain what has to be removed.
However it should not be necessary to do that in order to get a 'clean slate'. I have never had to. Simply removing your .node-red folder will remove all locally installed flows and nodes, and installing node-red as above will re-install all the global node red ones. Very rarely if things get in a mess it might be necessary to remove the global node_modules folder, but that is very rare. I have never had to do that.

Beware the deliberate typo there

As per the referenced table Node-RED is currently supported on the latest/last 8.x version, and latest 10.x 12.x and 14.x versions of node.js - However (as per this thread) that is not the case for all nodes. If you need a certain version of node.js then you need to install that first. How exactly you do that will depend on the exact hardware you are running on.
Once that is done then the script will add Node-RED on top. You (currently) don't need a specific version of Node-RED to match a specific version on node.js.

When you say completely remove... do you mean 100% completely - including all your flows, nodes etc - or just remove the core of node.js and node-red ?

Oops, corrected in original. Thanks

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.