🎉 Node-RED 4.0 released

Node-RED 4.0 is finally here!

After a number of successful beta releases over the last couple months, we've finally got the point to make Node-RED 4.0 generally available to all.

Thank you to everyone who has been involved in this release - both in contributions to the code as well as feedback on the betas. It has been a long time coming, but hopefully worth the wait.

33 Likes

Just a quick note about the Docker containers.

We had to drop s390x and the 32bit ARM builds because they would not build on the Github Actions hardware.

The debian based build does have an ARMv7 build if you still need to run things on 32bit Raspberry Pi and Docker.

I will try and see if we can get these to build again going forward, but no promises. If anybody wants to provide some dedicated build hardware get in touch...

Updated docker version OK. Went to upgrade the theme collection (@node-red-contrib-themes/theme-collection) and upon restart the correct theme didn't load and the logs say:

...
20 Jun 15:35:38 - [info] Loading palette nodes
Error: ENOENT: no such file or directory, scandir './themes'
    at Object.readdirSync (node:fs:1507:26)
    at module.exports (/data/node_modules/@node-red-contrib-themes/theme-collection/themes.js:5:23)
    at loadPlugin (/usr/src/node-red/node_modules/@node-red/registry/lib/loader.js:412:27)
    at /usr/src/node-red/node_modules/@node-red/registry/lib/loader.js:451:31
    at Array.forEach (<anonymous>)
    at loadNodeSetList (/usr/src/node-red/node_modules/@node-red/registry/lib/loader.js:448:11)
    at /usr/src/node-red/node_modules/@node-red/registry/lib/loader.js:143:16 {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: './themes'
}
20 Jun 15:35:39 - [info] Dashboard version 3.6.5 started at /ui
...

I tried creating the missing folder, but it still errored

What version of that module have you got installed? I note a version 4.0.1 was published minutes ago - so maybe @mbonani can help.

1 Like

This issue was just fixed. Please update the theme plugin.

1 Like

v4.0.0 installed

I'll give it 5 minutes and check again, thanks.

I am clearly just too quick :slight_smile:

2 Likes

How to update from the last beta? Is it possible without uninstalling?

That will depend on how you are running Node-RED. How did you install the beta?

yes, I have the latest beta v4.0 installed
via: npm install -g --unsafe-perm node-red@next

@zkollz you can use the same command to install 4.0 - we've updated the next tag to point at it.

Finally, NodeRed version 4 has come to life.
Many thanks to the team

1 Like

Thanks for the great work!.
I use the official docker but have hit a problem with the enocean node:

Welcome to Node-RED

21 Jun 12:12:09 - [info] Node-RED version: v4.0.0
21 Jun 12:12:09 - [info] Node.js version: v20.14.0
21 Jun 12:12:09 - [info] Linux 6.1.79-Unraid x64 LE
21 Jun 12:12:09 - [info] Loading palette nodes
21 Jun 12:12:11 - [warn] ------------------------------------------------------
21 Jun 12:12:11 - [warn] [node-red-contrib-enocean/enocean-config-node] Error: Error relocating /data/node_modules/@serialport/bindings/build/Release/bindings.node: _ZN2v82V818GlobalizeReferenceEPNS_8internal7IsolateEPm: symbol not found
21 Jun 12:12:11 - [warn] ------------------------------------------------------
21 Jun 12:12:11 - [info] Settings file : /data/settings.js
21 Jun 12:12:11 - [info] Context store : 'default' [module=localfilesystem]
21 Jun 12:12:11 - [info] User directory : /data
21 Jun 12:12:11 - [warn] Projects disabled : editorTheme.projects.enabled=false
21 Jun 12:12:11 - [info] Flows file : /data/flows.json
21 Jun 12:12:11 - [info] Server now running at http://127.0.0.1:1880/
21 Jun 12:12:11 - [warn] Using unencrypted credentials
21 Jun 12:12:11 - [info] Waiting for missing types to be registered:
21 Jun 12:12:11 - [info] - enocean-config-node

I can't start nodered even with the safe mode flag..... any pointers on how to fix?

run npm rebuild in /data

EDIT

Not sure if the image will have the necessary tools installed to re-compile the serial port. Or, it may be you simply need to uninstall/reinstall node-red-contrib-enocean to get the right binary in place.

@hardillb any thoughts here please? I know you had some dealings with @serialport/bindings and you know what the official docker image has - perhaps you can better advise?

2 Likes

Thanks Steve

  1. Started the Node 4.0,
  2. console into docker
  3. cd /data
  4. npm rebuild
  5. rebooted......

...and it worked!
Many thanks
Tony

Edit - Deleting ~/.node-red, reinstalling and restoring from a backup seems to have resolved it.

On only one of my Pies I'm seeing problems after updating.
I expect I broke something by trying to run the install script with the overlay filesystem enabled. (It hung).
But after a fresh run of the script I get this:

pi@zero2amber:~ $ node-red --safe
21 Jun 13:01:11 - [info]

Welcome to Node-RED
===================

21 Jun 13:01:11 - [info] Node-RED version: v4.0.0
21 Jun 13:01:11 - [info] Node.js  version: v20.14.0
21 Jun 13:01:11 - [info] Linux 6.6.31+rpt-rpi-v8 arm64 LE
21 Jun 13:01:12 - [info] Loading palette nodes
21 Jun 13:01:20 - [info] Dashboard version 3.6.5 started at /ui
21 Jun 13:01:23 - [info] Settings file  : /home/pi/.node-red/settings.js
21 Jun 13:01:23 - [info] Context store  : 'default' [module=memory]
21 Jun 13:01:23 - [info] User directory : /home/pi/.node-red
21 Jun 13:01:23 - [warn] Projects disabled : editorTheme.projects.enabled=false
21 Jun 13:01:23 - [info] Flows file     : /home/pi/.node-red/flows.json
21 Jun 13:01:23 - [info] Server now running at http://127.0.0.1:1880/
21 Jun 13:01:23 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

21 Jun 13:01:23 - [warn] Encrypted credentials not found
21 Jun 13:01:24 - [info] *****************************************************************
21 Jun 13:01:24 - [info] Flows stopped in safe mode. Deploy to start.
21 Jun 13:01:24 - [info] *****************************************************************
21 Jun 13:02:31 - [red] Uncaught Exception:
21 Jun 13:02:31 - [error] TypeError: Cannot read properties of undefined (reading 'getSessions')
    at loadSessions (/usr/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/auth/tokens.js:61:34)
    at Object.get (/usr/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/auth/tokens.js:93:16)
    at handleAuthPacket (/usr/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/editor/comms.js:82:16)
    at WebSocket.<anonymous> (/usr/lib/node_modules/node-red/node_modules/@node-red/editor-api/lib/editor/comms.js:137:17)
    at WebSocket.emit (node:events:519:28)
    at Receiver.receiverOnMessage (/usr/lib/node_modules/node-red/node_modules/ws/lib/websocket.js:1070:20)
    at Receiver.emit (node:events:519:28)
    at Receiver.dataMessage (/usr/lib/node_modules/node-red/node_modules/ws/lib/receiver.js:517:14)
    at Receiver.getData (/usr/lib/node_modules/node-red/node_modules/ws/lib/receiver.js:435:17)
    at Receiver.startLoop (/usr/lib/node_modules/node-red/node_modules/ws/lib/receiver.js:143:22)

Suggests the ~/.node-red/.sessions.json file may be corrupted. Delete that and restart.

The images have all that's needed to build the serial port node

2 Likes

Hi all,

For testing purposes I use an old model Raspberry Pi 1B and have been running version 3.1.10 so far successfully. Version of NodeJS and npm: v18.18.0 Npm 9.8.1.

I intended to upgrade to version 3.1.11, but coincidentally upgraded to 4.0.0.

I tried to upgrade to node 20, which was not successful. It did not change and version 18 is still installed. Confirmed by node -v and npm - v commands.

Trying to start Node-RED results in an error:

Starting as a systemd service.
nodered.service: Main process exited, code=killed, status=4/ILL
nodered.service: Failed with result 'signal'.
nodered.service: Service RestartSec=20s expired, scheduling restart.
nodered.service: Scheduled restart job, restart counter is at 1.
Stopped Node-RED graphical event wiring tool.
Started Node-RED graphical event wiring tool.
nodered.service: Main process exited, code=killed, status=4/ILL
nodered.service: Failed with result 'signal'.
nodered.service: Service RestartSec=20s expired, scheduling restart.
nodered.service: Scheduled restart job, restart counter is at 2.
Stopped Node-RED graphical event wiring tool.

Etc.

Questions:

  1. Is the Raspberry Pi, model 1B still supported with.Node RED 4.0.0?
  2. Can NodeJS 20 be installed on this Pi or is 18 the highest available version?
    Version v20.15.0 has been published yesterday.
  3. If all can be confirmed, how to install v20 and how to solve the error.?

Regards