Creating Flows- Node-Red Admin Basics

To administer node-red you will need to go the admin url.

The admin url is the machine name or IP address followed by the port number. e.g

  •  127.0.0.1:1880/ if you are running the browser on the same machines as node-red.
  • localhost:1880/
  • steve-laptop:1880/ when running node-red on a remote machine
  • 192.168.1.154:1880/

I currently run node-red on a Raspberry Pi and use a second machine (windows 10) to create flows.

node-red-browser

 

Using The Node Red Admin User Interface (UI)

When you open the node-red admin screen for the first time you should start with an empty work space as shown in the earlier screen shot above.



The default view is a three column layout with nodes on the left ,the flows work space in the middle and a third column on the right.

The third column or output pane has two or three tabs – info, debug and dashboard ( if installed).

node-red-screen.jpg

Note: In the latest versions 0.19 and above there are now 5 tabs. The two new ones are the configuration tab and the context tab.

column-tabs-node-red-0.19

Node-Red Flows

A flow is a collection of nodes wired together and functioning as an application or program.

The node-red workspace supports multiple flows which all share the same nodejs event loop.

Node-Red Nodes

Nodes are the basic building block of node-red.

A node is effectively a software block that processes messages.

A node can have inputs and outputs which enable messages to be passed between nodes.

An input can accept connections from multiple nodes and an output can output to multiple nodes.

simple-node-flow-example

The nodes in the left pane are arranged in categories.

A node-red installation will contain core nodes and the nodes are organized into groups

There is a

  • input group
  • output group
  • functional nodes
  • dashboard or display nodes

Other groups can be created when new nodes are installed.

Here is a quick overview video that shows how to create a basic flow.

Each node has a well defined function and contains its own data.

You can install additional nodes using either the npm package manager or using the Admin Interface.

Frequently Used Nodes

There are two nodes that you will find yourself using quite often.

They are the debug node and the inject node.

The Inject Node

Node-Red is an event based system and something must happen to create an event.

The inject nodes will fire a message ( msg) into the next node and is used to trigger a flow.

Debug Node

The debug node is used for displaying output for debugging purposes.

By default it will display the message payload but can be configured to display the entire message object.

 Beginners Guide to Node Red Inject and Debug Nodes- Video

You should notice a green box next to the debug node clicking this will toggle to debug node output on/off.

Dark green is on and light green is off.

debug-node-enabled

Note: On Node-red version 1 the default setting is disabled. So if you aren’t seeing debug messages check the status of the debug node.

Node Properties

If you double click on the node on the canvas then you can edit the node properties.

All Nodes have a name property. This is the name that is displayed on the canvas.

node-properties

A Basic Flow

You can wire the inject node into the debug node to create a basic flow as shown below.

Basic-Flow-node-red

The above flow will inject a unix timestamp into the debug node which can be viewed in the debug tab in the far right pane.

Deploying Flows

When you start node red then all currently enabled flows are automatically started.

If you edit or create a new flow you will need to deploy it using the deploy button.

The Deploy button on the top right change from grey to maroon when changes have been made to a flow to indicate that in it needs to be deployed.

node-red-deploy

You can choose to deploy all flows in the workspace, modified flows,modified nodes or restart flows.

Working With Flows

The workspace consists of all of your flows.

Along the top of the workspace pane are tabs that are used to open previously created flows.

You can create new Flows by clicking on the Plus button on the top right.

create-new-flow

When you create a new empty Flow it is given a default name and is enabled by default.

Generally you create a new flow when the flow needs to do a distinct task.

To add nodes to a flow drag them from the node palette on the left into the active flow in the middle pane.

You can link the nodes together by dragging a wire between them.

A collection of linked nodes is called a flow.

Note: All flows in the workspace share the same node.js event loop.

Renaming, Deleting and Disabling Flows

A flow called Flow1 is pretty meaningless and so you should rename it to something more meaningful.

You can access the flow properties from the settings tab.

You need to select the flow in the workspace and then. to open the flow go to the menu (top right) node-menu and select flows> rename flow, delete, add. node-delete-flow

If you select rename then a window opens that displays the flow properties .

You can rename the flow, and there is also a toggle to enable/disable it, and also a button to delete it.

There is also a delete button to delete the flow on the top left.

Note: enable button moved to bottom right in version 1.0

You need then to redeploy for the setting to take effect.

You can also access this setting by double clicking on the flow name tab:

disable-node-red-flow

You should notice the icon in the flow tab that indicates that the flow is disabled.

Flow Files -Storage and Backup

flows-backup-storageFlows that you create are stored by default in a file in the .node-red directory of your home folder in a file called flows_servername.json.

The file is created when you run node-red for the first time, and is loaded each time that you run node-red.

EG. for my raspberry pi the file is flows_raspberrypi.json.

The file will contain all of the flows in the workspace.

However it is not the only file that is created. You will also see these files.

  • flows_raspberrypi.json.backup
  • flows_raspberrypi_cred.json.
  • flows_raspberrypi_cred.json.backup

flows_raspberrypi.json.backup – This is a backup of the flows_raspberrypi.json file, and functions like a word backup.

When you do a deploy the old flows_raspberrypi.json file is moved to the backup file and the flows_raspberrypi.json is overwritten.

This means that you can recover from a mistake if you notice it after 1 deploy by using the flows_raspberrypi.json.backup file.

flows_raspberrypi_cred.json. – This file contains login data used by some nodes. If it is not present the flows will still work, but you will need to add the information back in to any nodes that need it.

flows_raspberrypi_cred.json.backup – Backup of flows_raspberrypi_cred.json and functions the same way as the other backup.

Flow Backup

It is a good idea to backup your flows files on a regular basis. The automatic backup should only be considered a temporary one.

To do a complete backup then make a copy of the four files mentioned above:

  • flows_raspberrypi.json
  • flows_raspberrypi.json.backup.
  • flows_raspberrypi_cred.json.
  • flows_raspberrypi_cred.json.backup.

Note: you will need to change the names to match your flows files.

Moving Your Flows to Another Machine

You can copy all of the flows by copying the flows_newmachinebane.json. file.

To use them on another machine change the file name to flows_newmachinebane.json.

The only file you really need is the flows_raspberrypi.json file however you should also copy the flows_raspberrypi_cred.json file.

See this github page for other important files and folders.

Creating Additional and Multiple Flow Files

You can created additional flow files for storing different workspaces.

To use another flows file you can create a new settings file and edit it.

As an example if I wanted to create a separate flows file to store client flows I would :

  • copy the old settings file to a new one called client_settings.js
  • Edit the settings file to point to the new flows file and remove the two forward slashes.

// flowFile: clientflows.json’,

  • Start node-red using
node-red -s client_settings.js

You could also use the new flows file without creating a new settings file by using the command option which is my preferred option.

node-red clientflows.json

Notice you don’t need a switch.

<===== Installing and Starting Node-Red

=====> Deploying Node-red flows

Related Tutorials and resources:

Please rate? And use Comments to let me know more
[Total: 4    Average: 4.3/5]

Leave a Reply

Your email address will not be published. Required fields are marked *