We have published the next public beta of Node-RED 1.0.
This beta contains all of the remaining major features for 1.0. From this point on we'll be focussed primarily on bug fixes only.
Asynchronous message passing
As I wrote on the blog last week, this release changes the message passing between nodes to be asynchronous rather than synchronous. If you have haven't read that blog post, please do.
This change introduces a new API that nodes can use to indicate when they have finished handling a message. Along with that is a new node in the palette called the Complete node.
This node can be targeted at another node, like the Catch node, and it will be triggered when the targeted node finishes handling a message. This will only work for nodes that are updated to the new API and we'll be sharing more details in the near future.
We have removed some nodes from the default palette.
The Twitter, Email, Feedparser and Pi GPIO nodes are no longer installed as dependencies of the
node-red module. They have all been in their own npm modules for a long time, but you will need to explicitly add them back if you are using them.
We've also reorganised the palette to give what we believe is a better order to the nodes.
The categories are now:
- common - the basic building block nodes: Inject, Debug, Catch, Status, Links, Comment.
- function - the main function nodes: Function, Switch, Change, Template, Exec, Delay, Trigger, Range
- network - nodes that do things over the network. This means the HTTP In and HTTP Response node are now sat next to each other and not split across different categories - likewise the MQTT, TCP and UDP nodes.
- sequence - the nodes for working with message sequences: Split, Join, Sort and Batch.
- parser - the nodes for working with particular data formats: CSV, HTML, JSON, XML and YAML.
Subflow Instance property UI
In 0.20 we added the ability for a Subflow Template to define a set of environment variables and for individual instances of the subflow to override their values.
With this beta, when you define the env vars of a subflow you can also define a custom UI for how the env var should be presented in the instance node.
For example, you may want to have a boolean flag in the subflow to toggle a piece of behaviour per instance. Rather than a free-form text field in the instance node to set the flag you can configure it to show a checkbox.
You can also now customise the colour of a Subflow node.
The editor has a number of new features worth highlighting:
A lot of the things you can do in the editor are defined as 'actions'. The actions can have keyboard shortcuts assigned in the settings dialog. We provide default shortcuts to lots of the actions, but not all.
This beta introduces the new Action List. This provides a way to browser and trigger any action.
You can open the action list from the
View->Action List menu item, or use the shortcut
Speaking of keyboard shortcuts, we've added some new defaults.
Cmd/Ctrl-Y: redo the last edit that was undone with
Cmd/Ctrl-Alt-L: clear the debug sidebar of messages
Cmd/Ctrl-d: Deploy your flows
Visual JSON Editor
The JSON editor now provides a visual mode where you edit JSON without worrying about getting all the quotes in the right place.
New wiring tricks
In 0.20, Ctrl-clicking in the workspace opens the quick-add dialog. Now, if you ctrl-click on a wire the quick-add dialog is shown and whatever you add will be spliced into the wire you clicked on.
More search results
The search dialog (
Ctrl-f) only ever returned the first 25 results. This was a problem for some users when using it to browse their hundreds of tabs. The dialog can now show all of the results - albeit 25 at a time.
Installing the beta
If you want to try out the beta, you will need specify node-red@next when you use npm to update. Without the
@next you'll still get 0.20.x.
So on a Pi you'd do:
sudo npm install -g --unsafe-perm node-red@next
If you hit any problems, please report them either as a reply on this topic, or in the #dev slack channel. Please do not post new topics to the forum regarding the beta as that could confuse users who are not using the beta.
We're very close to releasing 1.0. There are a small handful of items to resolve and no doubt you will all have some feedback for us on the changes in this beta.
But our focus now shifts to a lot of the non-code related material we need to have in place for the release. Documentation, website updates, videos and so on.