🎉 Node-RED 3.0.1 released

Node-RED 3.0.1 has been released.

This rolls up a small number of fixes from the last few days. Most notably, it restores support for slightly older browsers... so no more disappearing nodes causing unnecessary panics.

Docker images are baking as I type.

Full change log: Release 3.0.1: Maintenance Release · node-red/node-red · GitHub

15 Likes

I may have found a minor issue with the function node editor on MacOS Monterey12.4 running Chrome Version 103.0.5060.114 (Official Build) (arm64). On the Mac, there's a mouse feature called "Smart Zoom". If this feature is enabled, a double-tap will zoom in and a second double-tap will zoom out. I often use this feature by accident, which is how I found this issue (which I first observed in 3.0.0).

In the node-red editor, a double-tap makes the font smaller. However, subsequent double-taps, rather than reversing the action, continue to shrink the font down to its minimum size. There doesn't appear to be any way to recover within the editor Refreshing the page does reset the font size back to the default, so it's not a serious problem for me, but I thought I'd point it out.

Is this a mouse or pad?

If mouse: try CTRL+Scroll

If touch pad: try pinch and zoom

Lastly, press F1 (or right click -> command pallete) then enter font and chose "font zoom reset"

It's a Magic Mouse. Ahhh, CTRL+Scroll does the trick. Thanks!

Works ok under docker on Pi4 Bullseye
I add node-red-dashboard nodes without problem but i had to remove my email node.
Fail to add node-red-node-email.

Here is the log from NR console.

4 Jul 19:39:50 - [info] 

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

24 Jul 19:39:50 - [info] Node-RED version: v3.0.1
24 Jul 19:39:50 - [info] Node.js  version: v16.16.0
24 Jul 19:39:50 - [info] Linux 5.10.103-v7l+ arm LE
24 Jul 19:39:51 - [info] Loading palette nodes
24 Jul 19:39:53 - [info] Settings file  : /data/settings.js
24 Jul 19:39:53 - [info] Context store  : 'default' [module=memory]
24 Jul 19:39:53 - [info] User directory : /data
24 Jul 19:39:53 - [warn] Projects disabled : editorTheme.projects.enabled=false
24 Jul 19:39:53 - [info] Flows file     : /data/flows.json
24 Jul 19:39:53 - [info] Server now running at http://127.0.0.1:1880/
24 Jul 19:39:53 - [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.
---------------------------------------------------------------------

24 Jul 19:39:53 - [warn] Error loading credentials: SyntaxError: Unexpected token ˊ in JSON at position 0
24 Jul 19:39:53 - [warn] Error loading flows: Error: Failed to decrypt credentials
24 Jul 19:39:53 - [info] Waiting for missing types to be registered:
24 Jul 19:39:53 - [info]  - ui_base
24 Jul 19:39:53 - [info]  - ui_group
24 Jul 19:39:53 - [info]  - ui_tab
24 Jul 19:39:53 - [info]  - e-mail (provided by npm module node-red-node-email)
24 Jul 19:39:53 - [info]  - ui_gauge
24 Jul 19:39:53 - [info]  - ui_chart
24 Jul 19:39:53 - [info]  - ui_text
24 Jul 19:39:53 - [info]  - ui_switch
24 Jul 19:39:53 - [info]  - ui_button
24 Jul 19:39:53 - [info]  - e-mail in (provided by npm module node-red-node-email)
24 Jul 19:39:53 - [info]  - ui_numeric
24 Jul 19:39:53 - [info] To install any of these missing modules, run:
24 Jul 19:39:53 - [info]   npm install <module name>
24 Jul 19:39:53 - [info] in the directory:
24 Jul 19:39:53 - [info]   /data
24 Jul 19:41:08 - [info] Installing module: node-red-dashboard, version: 3.1.7
24 Jul 19:43:00 - [info] Installed module: node-red-dashboard
24 Jul 19:43:01 - [info] Dashboard version 3.1.7 started at /ui
24 Jul 19:43:01 - [info] Missing type registered: ui_base
24 Jul 19:43:01 - [info] Missing type registered: ui_button
24 Jul 19:43:01 - [info] Missing type registered: ui_switch
24 Jul 19:43:01 - [info] Missing type registered: ui_numeric
24 Jul 19:43:01 - [info] Missing type registered: ui_text
24 Jul 19:43:01 - [info] Missing type registered: ui_gauge
24 Jul 19:43:01 - [info] Missing type registered: ui_chart
24 Jul 19:43:01 - [info] Missing type registered: ui_tab
24 Jul 19:43:01 - [info] Missing type registered: ui_group
24 Jul 19:43:01 - [info] Added node types:
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_base
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_button
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_dropdown
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_switch
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_slider
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_numeric
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_text_input
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_date_picker
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_colour_picker
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_form
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_text
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_gauge
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_chart
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_audio
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_toast
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_ui_control
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_template
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_link
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_tab
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_group
24 Jul 19:43:01 - [info]  - node-red-dashboard:ui_spacer
24 Jul 19:43:38 - [info] Installing module: node-red-node-email, version: 1.17.0
24 Jul 19:43:50 - [warn] Installation of module node-red-node-email failed:
24 Jul 19:43:50 - [warn] ------------------------------------------
24 Jul 19:43:50 - [warn] npm WARN config production Use `--omit=dev` instead.
npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /data/node_modules/node-red-node-email/node_modules/encoding-japanese/src
npm ERR! dest /data/node_modules/.node-red-node-email-ZF9YCqdF/node_modules/encoding-japanese/src
npm ERR! errno -39
npm ERR! ENOTEMPTY: directory not empty, rename '/data/node_modules/node-red-node-email/node_modules/encoding-japanese/src' -> '/data/node_modules/.node-red-node-email-ZF9YCqdF/node_modules/encoding-japanese/src'

npm ERR! A complete log of this run can be found in:
npm ERR!     /usr/src/node-red/.npm/_logs/2022-07-24T23_43_40_522Z-debug-0.log

24 Jul 19:43:50 - [warn] ------------------------------------------
Error: Install failed
    at /usr/src/node-red/node_modules/@node-red/registry/lib/installer.js:285:25
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
24 Jul 19:43:50 - [error] Error: Install failed
24 Jul 20:03:40 - [info] Installing module: node-red-node-email, version: 1.17.0
24 Jul 20:03:48 - [warn] Installation of module node-red-node-email failed:
24 Jul 20:03:48 - [warn] ------------------------------------------
24 Jul 20:03:48 - [warn] npm WARN config production Use `--omit=dev` instead.
npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /data/node_modules/node-red-node-email
npm ERR! dest /data/node_modules/.node-red-node-email-ZF9YCqdF
npm ERR! errno -39
npm ERR! ENOTEMPTY: directory not empty, rename '/data/node_modules/node-red-node-email' -> '/data/node_modules/.node-red-node-email-ZF9YCqdF'

Hi thank you for very much the new release. I love the junctions.

But the junctions cause an issue when you import flows with a subflow including junctions.

Then the editor looks like this and becomes unusable:


But the flows are working still in the background.

What browser and what version number are you using?

can you supply (export CTRL+E) a subflow that causes this repeatedly please?


In order to make code readable and usable it is necessary to surround your code with three backticks (also known as a left quote or backquote ```)

``` 
   code goes here 
```

See this post for more details - How to share code or flow json

Firefox 102.0.1 (64-Bit) or Chromium 103.0.5060.134, both with the same issue. And this issue is only after importing a flow with subflow including junctions.

You can reproduce it with this tiny flow:

[
    {
        "id": "2bf18c7f8e1360df",
        "type": "subflow",
        "name": "Subflow 3",
        "info": "",
        "in": [
            {
                "x": 40,
                "y": 90,
                "wires": [
                    {
                        "id": "1628fa013204a6cf"
                    }
                ]
            }
        ],
        "out": []
    },
    {
        "id": "0e503224c0e9f22f",
        "type": "change",
        "z": "2bf18c7f8e1360df",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 200,
        "y": 70,
        "wires": [
            []
        ]
    },
    {
        "id": "b3d62cc853a01c08",
        "type": "change",
        "z": "2bf18c7f8e1360df",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 200,
        "y": 110,
        "wires": [
            []
        ]
    },
    {
        "id": "6f3bffd1d4698ac6",
        "type": "inject",
        "z": "202682a5.d52c3e",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 1880,
        "y": 290,
        "wires": [
            [
                "1a84f26c06e3e1ad"
            ]
        ]
    },
    {
        "id": "1a84f26c06e3e1ad",
        "type": "subflow:2bf18c7f8e1360df",
        "z": "202682a5.d52c3e",
        "name": "",
        "x": 2030,
        "y": 290,
        "wires": []
    }
] 

But you should backup your own flows before. When you restart your Node-RED Instance the issue with the broken Editor is still there an you can not remove it with the webinterface.

In the exported json there is also no "type": "junction", but the content of the subflow is this:

@Ixuser can you raise an issue?

I can see there is an issue with exporting a subflow that includes Junctions.

Ok, i will raise the issue in a few minutes and add an link to it here.

Edit: Issue with exporting and importing a subflow that includes Junction · Issue #3805 · node-red/node-red · GitHub

2 Likes

Hi,
yesterday I update to 3.0.1 version and I noticed that this node (image), are no longer aligned ....

image

I don't know if this is a problem of this release but That's what I saw (it's a little thing of course)

image2

I had a similar issue, I believe it is due to the change allowing more options (path, msg., expression, env var) to set the Filename field (because that field can also rename the node if the Name field is empty). Furthermore, changing names resizes nodes, so it stands to reason that this could cause the issue. Just renaming or moving the offending nodes should resolve the issue though.

Ok, I have looked and looked and cannot find the command line combination to force an install to version 3.0.1. on my Linux Mint machine.

sudo npm install -g --unsafe-perm node-red
or
sudo npm install -g --unsafe-perm node-red@3.0.1

does not yield 3.0.1. instead it is still 3.0.0-beta.4
The upgrade to 3.0.1 worked fine in Windows just leaving off the version statement, What am I doing wrong?

Have you restarted node-red since you did that? Also clear the cache in the browser (using the browser menus) and refresh the page. If still not working then stop node-red and start it again in a terminal and post the terminal output here. Assuming that you used the recommended Ubuntu/Debian/Pi install script then you can do that using
node-red-stop
node-red-start

Oh yes, re-booted the machine. It runs from the terminal normally on this home Linux laptop. I'm not doing anything like installing it local or using a service. I tried to be specific to load the version using @ as listed in my post. The information about the version is in the terminal. This has nothing to do with the editor browser.

Also, my system does not recognize node-red-stop or node-red-start

In that case, presumably, you did not use the recommended install script I linked to.
Please post the full terminal output you get when you start node-red (copy/paste please, not screenshot).
Also what does the command which node-red show?

[Edit] also, how are you starting node-red?

[edit]only seems to apply to subflow node
I've just encountered a little issue - I can't seem able to copy/paste a node (I can copy but not paste)

I've been experimenting using Edge on my Windows machine to edit my instance running on my Pi 4 and did control-c to copy a node - message pops up saying node copied

But when I did ctrl-v - nothing happens. Also nothing happens if I use menus to paste either...

As I'm typing this tried different browser - same thing and then I tried copying a different node and that worked!

Seems this is only happening on a subflow node

Can anyone else replicate this!

[edit2] only seems to happen with one type of subflow node!

[edit3- here is error in console when I try to paste
image

Does your subflow include Junctions? There is an issue exporting subflows with junctions reported in post 8 above, so perhaps it is a related issue.

No - the subflow hasn't been touched in a long time - its just a debugging node I use to use status to display last time a message was received by it

image

Here is the subflow itself (includes simpletime contrib node)

[
    {
        "id": "42652991.2d0e78",
        "type": "subflow",
        "name": "+ hh:mm:ss",
        "info": "",
        "category": "",
        "in": [
            {
                "x": 40,
                "y": 60,
                "wires": [
                    {
                        "id": "68633fa6.25f2e"
                    }
                ]
            }
        ],
        "out": [
            {
                "x": 380,
                "y": 60,
                "wires": [
                    {
                        "id": "68633fa6.25f2e",
                        "port": 0
                    }
                ]
            }
        ],
        "env": [],
        "meta": {},
        "color": "#C7E9C0",
        "icon": "node-red-contrib-sun-position/clock-white.png",
        "status": {
            "x": 380,
            "y": 120,
            "wires": [
                {
                    "id": "421b10be.1db69",
                    "port": 0
                },
                {
                    "id": "68633fa6.25f2e",
                    "port": 0
                }
            ]
        }
    },
    {
        "id": "68633fa6.25f2e",
        "type": "simpletime",
        "z": "42652991.2d0e78",
        "name": "",
        "mydate": false,
        "myymd": true,
        "myyear": false,
        "mymonth": false,
        "mymonthn": false,
        "mydom": false,
        "mydoy": false,
        "myday": false,
        "myhourpm": false,
        "myhour": false,
        "mytime": false,
        "mytimes": true,
        "myminute": false,
        "myminutes": false,
        "mysecond": false,
        "mymillis": false,
        "myepoch": false,
        "myrawdate": false,
        "mypm": false,
        "x": 115,
        "y": 60,
        "wires": [
            [
                "a8b5a4ba.c0c178"
            ]
        ],
        "l": false
    },
    {
        "id": "421b10be.1db69",
        "type": "change",
        "z": "42652991.2d0e78",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "mytimes",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 280,
        "y": 180,
        "wires": [
            []
        ]
    },
    {
        "id": "a8b5a4ba.c0c178",
        "type": "delay",
        "z": "42652991.2d0e78",
        "name": "",
        "pauseType": "delay",
        "timeout": "3",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "outputs": 1,
        "x": 120,
        "y": 180,
        "wires": [
            [
                "421b10be.1db69"
            ]
        ]
    },
    {
        "id": "349f96da0768e108",
        "type": "subflow:42652991.2d0e78",
        "z": "4040409aae3a5015",
        "name": "",
        "env": [],
        "x": 325,
        "y": 510,
        "wires": [
            []
        ],
        "l": false
    }
]