Install older version/specific version of a node-red node?

I updated to the latest version of node-red-contrib-modbus on my groov RIO and it seems to have broken the flex-write node?

Is there a way to install the older version of node-red-contrib-modbus again?

It was working fine with v5.13.1 of the modbus node, but I get the following error since installing v5.14.0.

Error: Modbus exception 4: Slave device failure (device reports internal error) at ModbusRTU._onReceive (/home/dev/.node-red/node_modules/modbus-serial/index.js:348:21) at TcpPort.emit (events.js:198:13) at Socket.<anonymous> (/home/dev/.node-red/node_modules/modbus-serial/ports/tcpport.js:77:20) at Socket.emit (events.js:198:13) at addChunk (_stream_readable.js:288:12) at readableAddChunk (_stream_readable.js:269:11) at Socket.Readable.push (_stream_readable.js:224:10) at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

Yes.
If you don’t have shell access on your RIO, you will need to get a shell license.
https://www.opto22.com/products/product-container/groov-lic-shell
Apply it to your RIO and install PuTTY (if you are on Widows).

First, remove the node that is not working via the ‘Manage Pallet’ menu option.
Then restart Node-RED via the groov Manage menu.
That will flush the old non-working version.
Then from shell…
Log in to your RIO.
Type the following commands

sudo su
cd /home/dev/.node-red
npm install node-red-name-of-node@n.n.n

Where n.n.n is the version you want to install.

Lets know how you get on.

3 Likes

Actually, I just figured out that the error was caused because the PLC wasn’t in a “ready” state… so the updated v5.14.0 node-red-contrib-modbus node is working fine.

But thanks for the instructions :+1:

2 Likes

Sometimes its necessary to downgrade a node version or install a specific version and you may not have shell or may not want to add shell to your groov device just to do this Node-RED node version change.

Good news. If you are running Node-RED version 1.2 or newer (ie, anything since August 2020) you can install specific versions of a node right from the manage pallet interface.

First, you need to get the node version you want.
You can look at the npm page and find older versions there.

Here is an example:

Once you click on the versions you will see the list of old ones, take a note and then make the registry URL following this example: Take the name, then the version and paste it into your URL bar or word editor. Once you have it assembled, put it in your web browser on your computer and download the file.
Keep a note of where it is saved to.

https://registry.npmjs.org/node-red-contrib-mssql-plus/-/node-red-contrib-mssql-plus-0.5.1.tgz

Once you have the node package downloaded, go to your Node-RED on your groov device and click on the burger menu, then ‘Manage Pallet’, then click install, lastly click the upload module icon.

That will open your usual file browser dialog, navigate to where you saved the file, then select it and upload the node package.

That should load that exact version of the node you need, all without shell.

5 Likes

Hi Beno,

I’m trying to install palettes in this way, since due to our firewall rules, I’m not able to use the palette manager normally by just clicking the buttons to install palettes. I downloaded the .tgz files that I wanted, and I’m getting the following error:

image

When checking the log, this is all I see:
image

Any idea why this is happening, and if there’s something else I’d need to do in order to get the palettes downloaded correctly?

You have hit this catch22 here:

Possible solution using the provided blank project.

Thanks Beno, I guess I will have to go with the empty project. Hopefully I don’t need more palettes than what’s provided!

As mentioned in that original post, I just had to guess what would be the most common based on hanging out on the forums here.
More than happy to build another project with more nodes, just not sure what ones are needed by the hive mind…