The OpenJS Foundation and nodered.org have officially released Node-RED version 1.0!
Since the previous major Node-RED version v0.20, there have been big changes and improvements to both the visual editor on the surface and the runtime under the hood. These improvements are what truly make this a full version 1.0 update, and not just an iterative v0.21. This blog post will cover what has been updated or changed at a high level, and discuss the impact on users of Node-RED running on groov EPIC.
Note to Opto 22 customers: To upgrade to Node-RED v1.0 on your own groov EPIC you’ll just need to apply the free
GRV-EPIC-PR1 firmware update version 1.5 or higher, which includes Node-RED version 1.0. Don’t forget to backup your EPIC first!
If you’re a Node-RED power user and want more information and technical details not covered here, read the 1.0 release notes on the official Node-RED blog: nodered.org/blog/2019/09/30/version-1-0-released
Now let’s jump into the new release!
The most visible updates have been to Node-RED’s browser-based editor, which has received some quality-of-life improvements that will help both advanced users and first-timers alike. There have also been significant updates to how the runtime works that aren’t visible in the editor. These updates improve general performance, but don’t necessarily affect basic interactions with Node-RED. More on the runtime changes later.
The visual editor includes several small tweaks and improvements. Not to worry; it doesn’t take long to adjust.
The first big noticeable change is that the “input” and “output” categories in the node palette on the left-hand side of the editor have been removed. Instead, the palette is broken up by use case. Now it has “common,” “function,” “network,” “sequence,” “parser,” and “storage” categories.
Experienced users will be able to find the node they need much faster with these updated categories, and new users will have a much more logical introduction to the variety of available nodes and their different uses.
As well as having new categories, you’ll see that some nodes you might be used to seeing aren’t installed at all! This is because Node-RED 1.0 includes changes to the core node set: the email, twitter, sentiment, feedpasser, and Raspberry PI general purpose IO (GPIO) node packages have been removed. If you want or need these nodes, you’ll need to manually install them through the Palette Manager accessible from the editor. These node packages still exist in the Node-RED repository, they’re just not included by default when you install Node-RED, This is similar to other external node packages like database, cloud analytics, and Opto 22 nodes.
On the other hand, some of the remaining core nodes included with Node-RED v1.0 were given some new features and UI upgrades. The MQTT nodes now support MQTT v3.1.1 (with v5 support on the way), and various improvements to the CSV, template, switch, and HTTP request nodes have been added. These nodes weren’t completely overhauled, so they should still be familiar, but the changes do introduce new features and make them noticeably easier to use.
You’ll notice many improvements to the editor besides these node-specific updates, including better search features, a new visual JSON object editor interface, new keyboard shortcuts, the ability to quick-add a new node in the middle of a wire, and a revamped subflow interface. Not only was the subflow interface upgraded, it also has new features, like the ability to give each subflow instance individual properties and independently change the subflow node color.
All of these updates and changes discussed so far are visible right in the editor; you can see them right away when you start Node-RED. But under the covers has also received big improvements in how Node-RED itself runs, particularly with the runtime. The runtime has been changed from being “partially” synchronized to using fully asynchronous message routing. A lot of technical details are behind what this means and how it changes the way Node-RED operates, but the main takeaway is that forks in your flows and parallel strings of nodes will now be more consistently predictable, and overall flows are more stable with asynchronous routing.
Along with asynchronous message routing came changes to how nodes indicate when they are “done” with a particular action, and how messages are cloned by function nodes. For example, you may find certain flows that rely on message routing, task completion, or message cloning will no longer function exactly the same in version 1.0 as it did in the past. Just be aware of these changes when you move to Node-RED 1.0, and be sure to thoroughly read the full update notes if you have trouble migrating your flows to the new runtime and editor. Most flows can be migrated from v0.20 and earlier up to v1.0, but you should take care to understand how message cloning works if you use “node.send()” in your function nodes, which you can read about from Node-RED here: https://nodered.org/blog/2019/09/13/cloning-messages
All of these updates and improvements contribute to a better overall experience programming with the Node-RED editor and running your flows with the updated runtime–without affecting any of the good things from prior versions. The 1.0 release is a more mature, refined version of the software we’ve grown to love, and it continues to get better as more updates are rolled out. If you haven’t upgraded yet, definitely check out the latest version and start creating your own flows!
If you have any questions about Node-RED 1.0, groov EPIC, or EPIC development in general, check out developer.opto22.com or drop a comment below.