This lecture will take a look at the core set of nodes that Node-RED installs by default and then show you the extended set of nodes that the cloud-based Node-RED service – FRED – supports.
For each node, you’ll see a brief overview of its functionality and an indication of which example in this lecture series uses the node, so you can look in more detail at how to work with the node. This lecture is mostly a reference section. However, it is worth looking quickly through the nodes, so that you have an idea of the basic functionality available to you as you begin to craft your own flows.
Node-RED’s default set of nodes
When you install Node-RED for yourself on a device such as a Raspberry Pi or Beagleboard, it starts up with a default set of nodes. There are 8 main categories of nodes in the default install: inputs, outputs, functions, social, storage, analysis, advanced and Raspberry Pi (See Figs 4.1 and 4.2) Let’s take a look at each category in turn.
Figure 4.1 The default input, output, function and social media nodes.
Input nodes
There are 7 basic input nodes installed by default. They cover the basic communications mechanisms that IoT applications are likely to use. Ranging from lower-level internet protocols such as UDP and TCP through to the higher-level HTTP and the publish/subscribe MQTT.
Node name | Description | Examples |
inject | Injects a timestamp or user-configured text into a message. Can be configured to inject manually, at a set interval, or at specific times (using Cron). | Examples 2.1, 3.6, 3.7, 3.8, 5.1-5.4, 6.1-6.8 |
catch | Catches errors thrown by nodes on the same tab. If a node throws an error whilst handling a message, the flow will typically halt. This node can be used to catch those errors returning a message with an error property detailing the error and the source node and type. | Examples |
mqtt | Subscribes to an MQTT broker and listens on a topic, returns any data published on the topic as a new message. Supports Quality of Service levels and last data retention. | Examples 3.1-3.5 |
http | Receives HTTP requests, allowing Node-RED to act as a basic web server. HTTP body is delivered as an output message along with any response. Message can contain standard URL-encoded data or JSON. | Example 1.3, 5.7 |
websocket | Provides an endpoint for a browser to establish a websocket connection with Node-RED. Offers a duplex connection for browser/server combinations. | Example 3.7 |
tcp | Used to accept incoming TCP requests on a specified port or to connect to a remote TCP port. Generates messages containing the TCP data as a single – or stream of – buffer, string or base64 encoded. | Examples lecture 7 |
udp | Used to accept incoming UDP packets (or multicast packets) on a specified port. Generates messages containing the UDP data as a BUFFER, string or base64 encoded string. | Examples lecture 7 |
serial in | Reads from a serial port on the local device. Can be configured to read buffers, a specific time period or wait for line breaks. | Examples lecture 7 |
Output nodes
The output nodes are essentially the mirror images of the basic set of input nodes and provide a way to send data on the same set of protocols, i.e. mqtt, http, udp etc.
Node name | Description | Examples |
debug | Provides a simple way to view messages which are displayed in the debug pane. Can be configured to display just the msg.payload or the entire msg object. | Various, examples 2.1, 2.2, 3.1-3.6, 5.1-5.4, 6.1-6.5 |
mqtt | Subscribes to an MQTT broker and posts any data (msg.payload) it receives in incoming messages to a topic. Supports Quality of Service levels and last data retention. | Example 3.6 |
http | Sends responses back to HTTP requests received from a HTTP Input node. The response body is determined by msg.payload, and can have headers and status code defined. | Examples |
websocket | Sends msg.payload out on the websocket configured. If msg._session is defined, sends to the origination client, otherwise broadcasts to all connected clients | Example 3.7 |
tcp | Replies to a configured TCP port. Can also be used to send to a specific port. | Example 3.8 |
udp | Sends a UDP message to the configured host (ip address) and port. Supports broadcast. Like most nodes, configured through UI or message properties. | Examples |
serial out | Sends to the defined serial port. Can be configured to send an optional newline after any message payload. | Examples lecture 7 |
Function nodes
The function category contains a variety of nodes that carry out specific processing functions. These range from the simple delay and switch nodes to the programmable function node that can be adapted to almost any programming need.
Node name | Description | Examples |
function | Generic programmable function node. Using standard JavaScript, the node can be tailored to carry out complex processing on its input messages generating one or more output messages. | Examples 2.1, 2.2, 3.8, 5.1-5.4, 5.7, 6.1-6.8 |
template | Configured with a template (using moustache format) of arbitrary complexity, this node takes an input message containing name:value pairs and inserts into the template. Useful for constructing messages, HTML, config files, etc. | Example 1.3 |
delay | A generic node that delays messages by a specific or random time. Can also be configured to throttle a message flow (e.g. 10 msg per sec). | Examples 5.6, 6.8 |
trigger | Creates two output messages separated by a configurable time interval whenever an input message is received. Can also be used as a watchdog timer. | Example 1.1 |
comment | A simple visual comment configured with title and body. | Example 2.1 |
http request | Allows you to construct and send a HTTP request to a specific URL. Method (PUT, GET, etc), headers and payload are all configurable through the UI or programmatically. | Examples 1.3, 6.1, 6.6 |
tcp request | A simple TCP request node. It sends the msg.payload to a server tcp port and expects a response. Can be configured to wait for data, wait for a specific character, or return immediately. | Example 3.8 |
switch | This node routes messages based on their properties. Properties are configured using the UI and can be a variety of logic (>, <, >= etc) applied to a message property. | Examples 3.2-3.5, 5.5 |
change | The change node can be used to set, change or delete properties of incoming messages. A variety of configurable rules allow complex changes including search and replace in the msg.payload | Examples 3.3-3.5 |
range | A simple scaling node that will map numerical input to a new output. Useful for converting or bounding ranges of input values, e.g. temperature. Undefined for non-numeric data. | Example 3.5 |
Node name | Description | Examples |
csv | This node parses msg.payload and tries to convert to/from CSV. If it receives a string, it outputs a JavaScript object, and if it receives a JavaScript object, it outputs a CSV string. | Examples |
html | Extracts elements from an html document in msg.payload using a configurable selector (CSS selector syntax). Essentially allows you to parse out the HTML and returns an array of the elements that match. | Example 6.1 |
json | This node converts to/from a JSON object. If it receives a JavaScript object, it outputs JSON, and if it receives JSON, it outputs a JavaScript object. | Examples 3.1-3.5, 5.7, 6.6 |
xml | This node converts to/from XML format. If it receives a JavaScript object, it outputs an XML string, and if it receives an XML string, it outputs a JavaScript object. | Examples |
rbe | Report By Exception node. Generates a message only when its input is different from the previous input (string or number) or if the input has changed by a configurable amount (deadband mode) – only for numbers. | Example 3.4 |
Social nodes
The basic social media nodes support interaction with email and with Twitter. They enable flows to send or receive email, or to send or receives tweets.
Node name | Description | Examples |
email in | Can be configured to repeatedly read from an IMAP server returning new email as it arrives. Sets msg.topic to email subject and either msg.payload to email text body or msg.html if the email is HTML. | Example |
twitter in | Returns tweets as messages. Can be used to search the public or a user’s stream for tweets containing the configured search term or all tweets by specific users or direct messages received by the authenticated user. | Example 1.1 |
email out | Sends the incoming message as an email via the configured IMAP server. Topic and recipient all configurable. Will convert binary data to an attachment. | Example 1.2 |
twitter out | Tweets the msg.payload on the configured account. Can send direct messages and will send binary data as an image. | Example 2.2 |
Storage nodes
The default node set for storage, because it is targeted at devices such as the Raspberry Pi are quite limited and focus on file based storage.
Figure 4.2 The default storage, analysis, advanced and Raspberry Pi nodes.
You should note that FRED, because it’s a cloud service, doesn’t support the basic file nodes. Instead it replaces these with a variety of storage nodes ranging from Mongo to Dropbox. However, for completeness the default nodes are covered here, so that you can use them, if you install Node-RED yourself (see lecture 7).
Node name | Description | Examples |
tail | Tails (i.e. watches for things to be added) to the configured file. (Linux/Mac ONLY)
This won’t work on Windows file systems, as it relies on the tail -F command. |
Examples |
file in | Reads the specified file and sends the content as msg.payload, and the filename as msg.filename.
The filename can be configured in the node. If left blank, it should be set on msg.filename in an incoming message. |
Examples |
file | Writes msg.payload to the file specified, e.g. to create a log. The filename can be configured in the node. If left blank, it should be set on msg.filename in an incoming message. The default behaviour is to append to the file. This can be changed to overwrite the file each time; for example, if you want to output a “static” web page or report. | Examples |
Analysis nodes
Analysis nodes perform standard analyses on incoming messages. In the default node set, the only node provided is the sentiment node, which can be used to try and determine the sentiment of an incoming message based on the words used in the message, for example, an email or tweet.
Node name | Description | Examples |
sentiment | The sentiment node analyses the msg.payload and scores the sentiment of the message based on word analysis. It adds a msg.sentiment object that contains the resulting AFINN-111 sentiment score as msg.sentiment.score. Score typically ranges from -5 to +5. | Example 5.5 |
Advanced nodes
A set of miscellaneous nodes offering various types of functionality.
Node name | Description | Examples |
watch | Watches a directory or file for changes. You can enter a list of comma-separated directories and/or files. You will need to put quotes “…” around any that contain spaces. On Windows, you must use double backslashes \\ in all directory names.
The full filename of the file that actually changed is put into msg.payload, while a stringified version of the watch list is returned in msg.topic. msg.file contains just the short filename of the file that changed. msg.type has the type changed, usually file or directory, while msg.size holds the file size in bytes. |
Examples |
feedparse | This node monitors an RSS/atom feed for new entries and delivers new entries as messages. It can be configured to query the feed at a specific interval. | Examples |
exec | Calls out to a system command and provides 3 outputs: stdout, stderr, and return code. By default uses exec(), which calls the command, blocks while waiting for completion, and then returns the complete result in one go, along with any errors. | Examples |
Raspberry Pi nodes
Node name | Description | Examples |
rpi_gpio in | Raspberry Pi input node. Generates a msg.payload with either a 0 or 1, depending on the state of the input pin. You may also enable the input pullup resistor or the pulldown resistor.
The msg.topic is set to pi/{the pin number} Requires the RPi.GPIO python library version 0.5.8 (or better) in order to work. Note: we are using the actual physical pin numbers on connector P1 as they are easier to locate. |
Examples lecture 7 |
rpi_gpio out | Raspberry Pi output node. Expects a msg.payload with either a 0 or 1 (or true or false). Will set the selected physical pin high or low, depending on the value passed in. The initial value of the pin at deploy time can also be set to 0 or 1. When using PWM mode, expects an input value of a number 0 – 100.
Requires the RPi.GPIO Python library version 0.5.8 (or better) in order to work. |
Examples 1.1, lecture 7 |
rpi_mouse | Raspberry Pi mouse button node. Generates a msg.payload with either a 1 or 0 when the selected mouse button is pressed and released. Also sets msg.button to the code value, 1 = left, 2 = right, 4 = middle, so you can work out which button or combination was pressed. | Examples lecture 7 |
The extended FRED node set
The FRED service adds a number of nodes to the standard default set. These new nodes, which have either been written for FRED or collected from the public repository, have been added, as they offer useful functionality that expands the capabilities of the vanilla node set.
Note: these nodes are available in FRED by installing them using the FRED installation panel. For a quick example of how to install nodes check out this tutorial.
As you will see, the majority of these additional nodes focus on services and capabilities that match well with FRED’s nature, i.e. a cloud-based service. In many cases they focus on using Node-RED for web based integration or to access enterprise level services.
Figure 4.3 The extended FRED nodes
Extended set of social media nodes
As you can see, the FRED service adds a large number of social media nodes ranging from Pushbullet to Slackbot to Instagram.
Node name | Description | Examples |
pushbullet in | Connects to the popular Pushbullet service and receives Pushbullet data items from all your connected devices. Supports data, links and files. | Examples |
pushbullet out | Allows you to send Pushbullet messages to all devices that have the Pushbullet app installed. | Examples |
XMPP in | Receives messages from an XMPP instant messaging server. The buddy field indicates the buddy or room you are receiving from. Presence information is delivered on a second output link. | Examples |
XMPP out | Sends messages to an XMPP instant messaging server. Uses topics to send to rooms (channels) and supports presence notification. | Examples |
slack | A general node that provides a simple way to post on a slack channel specified via its webhook URL. Can be configured with user name, emoji and to support attachments. | Examples |
slackbot in | A node to use a bot you’ve created on Slack and provides a listener in any channel of which the Slack bot is a member. Outputs the msg.payload as the incoming message. and outputs msg.SlackObj with full Slack message details. | Examples 5.7 |
slackbot out | A node to use a bot you’ve created on Slack Sends the msg.payload to Slack based on the Bot API token provided. You can optionally override the destination channel if required – either in the edit dialogue or by setting msg.channel. | Examples 5.7 |
delicious | A node to save bookmarks to your Delicious account. The payload should contain the URL to save, and msg.title contains the bookmark name. An optional description field can be set. | Examples |
pinboard | A node to save bookmarks to your Pinboard account. The payload should contain the URL to save, and msg.title contains the bookmark name. An optional description field can be set. | Examples |
flickr | Saves photos to the configured Flickr account. msg.payload requires a Buffer with the image and can set the optional title, description and tag properties. | Examples |
foursquare | Queries your Foursquare account for venues that meet a configurable set of requirements based on your location. Results can be passed back as a single message or a configurable set of messages. | Examples |
swarm in | A node to poll every 15 minutes for Foursquare storm check-ins. Returned as a JSON object. | Examples |
swarm out | Swarm query node that can be used to search for all Swarm check-ins by the authenticated user. | Examples |
instagram in | Queries the configured Instagram account every 15 minutes for new photos which are delivered one per message, either as Buffer objects or URLs. | Examples |
Same as Instagram in node, except from being triggered by an incoming message. | Examples |
Extended set of storage nodes
As you can see, the FRED service adds a large number of social media nodes ranging from Pushbullet to Slackbot to Instagram.
Node name | Description | Examples |
amazonS3 watch | Amazon S3 watch node. Watches for file events. By default, all file events are reported, but the filename pattern can be supplied to limit the events to files which have full filenames that match the glob pattern. The event messages consist of the full filename in msg.payload property, the filename in msg.file, the event type in msg.event. | Examples |
amazonS3 in | Amazon S3 input node. Downloads content from an Amazon S3 bucket. The bucket name can be specified in the node bucket property or in the msg.bucket property. The name of the file to download is taken from the node filename property or the msg.filename property. The downloaded content is sent as msg.payload property. If the download fails, msg.error will contain an error object. | Examples |
amazonS3 out | Amazon S3 out node. Uploads content to an Amazon S3 bucket. The bucket name can be specified in the node bucket property or in the msg.bucket property. The filename on Amazon S3 is taken from the node filename property or the msg.filename property. The content is taken from either the node localFilename property, the msg.localFilename property or the msg.payload property. | Examples |
box watch | Box is an enterprise version of Dropbox. This node watches for file events on Box. By default all file events are reported, but the filename pattern can be supplied to limit the events to files which have full filenames that match the glob pattern. The event messages consist of the full filename in msg.payload property, the filename in msg.file, the event type in msg.event and the full event entry as returned by the event API in msg.data. | Examples |
box in | Box input node. Downloads content from Box. The filename on Box is taken from the node filename property or the msg.filename property. The content is sent as msg.payload property. | Examples |
box out | Box out node. Uploads content to Box. The filename on Box is taken from the node filename property or the msg.filename property. The content is taken from either the node localFilename property, the msg.localFilename property or the msg.payload property. | Examples |
dropbox watch | Watches for file events on Dropbox.
By default all file events are reported, but the filename pattern can be supplied to limit the events to files which have full filenames that match the glob pattern. The event messages consist of the full filename in msg.payload property, the filename in msg.file, the event type in msg.event and the dropbox.js API PulledChange object inmsg.data. |
Examples |
dropbox in | Dropbox input node. Downloads content from Dropbox. The filename on Dropbox is taken from the node filename property or the msg.filename property. The downloaded content is sent as msg.payload property. If the download fails, msg.error will contain an error object. | Examples |
dropbox out | Dropbox out node. Uploads content to Dropbox.
The filename on Dropbox is taken from the node filename property or the msg.filename property. You can pass in content either as a filename by setting the localFilename field or msg.localFilename property, or you can pass in content directly using msg.payload. The file will be uploaded to a directory on Dropbox called Apps/{appname}/{appfolder}, where {appname} and {appfolder} are set when you set up the Dropbox application key and token. |
Examples |
MongoDB in | Calls a MongoDB collection method based on the selected operator.
Find queries a collection using the msg.payload as the query statement as per the .find() function. Count returns a count of the number of documents in a collection or that match a query using the msg.payload as the query statement. Aggregate provides access to the aggregation pipeline using the msg.payload as the pipeline array. You can either set the collection method in the node config or on msg.collection. Setting it in the node will override msg.collection. |
Examples |
MongoDB out | A simple MongoDB output node. Can save, insert, update and remove objects from a chosen collection.
Save will update an existing object or insert a new object, if one does not already exist. Insert will insert a new object. Update will modify an existing object or objects. Remove will remove objects that match the query passed in on msg.payload. A blank query will delete all of the objects in the collection. |
Examples |
mysql | Allows basic access to a MySQL database.
This node uses the query operation against the configured database. This does allow both INSERTS and DELETES. msg.topic must hold the query for the database, and the result is returned in msg.payload. The returned payload will typically be an array of the result rows. If nothing is found for the key, then null is returned. |
Examples |
postgres | A PostgreSql I/O node.
Executes the query specified in msg.payload with optional query parameters in msg.queryParameters. The queryParameters in the query must be specified as $propertyname. When receiving data from the query, the msg.payload on the output will be a JSON array of the returned records. |
Examples |
FRED’s IoT nodes
FRED adds a number of nodes to access popular IoT platforms, including Sense Tecnic’s Community edition of its popular IoT platform, WoTKit, and Bug labs’ dweet.io.
IoT platform nodes | ||
wotkit in | WoTKit Sensor Input Node which retrieves new data from a WoTKit Sensor. The node generates a message each time new data is received on the sensor within the WoTKit IoT platform. The message.payload contains a map of sensor field names to sensor values. The node is configured with WoTKit user credentials. The sensor name should be in the form {username}.{sensorname}, or you can use the numeric sensor id. | Examples |
wotkit out | WoTKit output node to send data to a registered WoTKit sensor. The node will use the message.payload to create a data object.
The message.payload must contain an object of key-value pairs matching the sensor fields. The node is configured with WoTKit user credentials.The sensor name should be in the form {username}.{sensorname}, or you can use the numeric sensor id. |
Examples |
wotkit data | WoTKit Historical Data Node which retrieves historical data from a WoTKit sensor by either number of elements or relative time before the request. The message.payload contains a map of sensor field names to sensor values. The sensor name should be in the form {username}.{sensorname}, or you can use the numeric sensor id. | Examples |
wotkit control out | The WoTKit Control Output Node provides the ability to send events to the control channel of a registered WoTKit sensor/actuator. This node will use the message.payload object to create a control event. The message.payload must contain an object of key-value pair for each message. The sensor name should be in the form {username}.{sensorname}, or you can use the numeric sensor id. | Examples |
wotkit control input | The WoTKit Control Input Node provides access to the control channel of a registered WoTKit sensor/actuator. When a control event is received by a WoTKit sensor this node will create a message.payload object containing the event. The sensor name should be in the form {username}.{sensorname}, or you can use the numeric sensor id. | Examples |
dweetio in | Listens for messages from Dweet.io
The Thing ID should be globally unique, as they are all public. It is recommended you use a GUID. The Thing ID is set into msg.dweet, and the TimeStamp into msg.created. |
Examples |
dweetio out | Sends the msg.payload to dweet.io
Optionally uses msg.thing to set the Thing ID, if not already set in the properties. You need to make the Thing ID unique – you are recommended to use a GUID. |
Examples |
Extended set of analysis nodes
The FRED platform only adds a limited number of analysis nodes as the default set is quite extensive.
Node name | Description | Examples |
smooth | A simple but flexible node to provide various functions across several previous values, including max, min, mean, high and low pass filters. Only works on numbers and will fail if it can’t convert the input to a number. | Examples |
wordpos | Analyses msg.payload and classifies the part-of-speech of each word, returning msg.pos as an array of nouns, verbs, adjectives, adverbs, etc.. | Examples |
Extended set of advanced nodes
FRED adds the following advanced nodes.
Node name | Description | Examples |
ping | Pings a machine and returns the trip time in MilliSeconds.
Returns false, if no response received within 5 seconds, or if the host is unresolveable. Default ping is every 20 seconds, but can be configured. |
Examples |
sunrise | Uses the suncalc module to generate an output at sunrise and sunset based on a specified location. Several choices of definition of sunrise and sunset are available.
The first output emits a msg.payload of 1 or 0 every minute, depending if in between selected times or not. The second output emits only on the transition between night to day (-> 1) or day to night (-> 0). Also sets msg.topic to sun and msg.moon to the fraction of the moon between 0 and 1. |
Examples |
Other nodes
The following nodes are available in FRED and don’t fit into the basic categories that vanilla Node-RED provides. These include nodes to access and control Google services, enterprise nodes such as Salesforce access, nodes for accessing transportation API (e.g. Transport for London) and other miscellaneous nodes for access to weather services, etc.
Fig 4.4 FRED’s other nodes
Google nodes
FRED supports several Google nodes to interact with a range of Google services.
Node name | Description | Examples |
Google plus | Interacts with the Google+ API to get information about people, activities, and comments.
People – Allows you to interact with Google+ profiles. You can get a particular profile, search for a profile, or gather a list of people that have +1’d or reshared an activity. Activities – Allows you to interact with Google+ activities. You can get a particular activity, search for an activity, or gather a list of activities directly related to a person. Comments – Allows you to interact with Google+ comments. You can get a particular comment, or gather a list of comments attached to an activity. |
Examples |
googleplaces | A highly flexible node that utilizes the Google Places API in order to find and learn more about local establishments. Search can be based on ranking, radius, price, keywords, language, etc. | Examples |
Google calendar in | A node to watch a calendar and return a message before, at or after the event in the calendar. Configurable to set exactly when the message is generated. | Examples |
Google calendar out | Create an entry in a Google Calendar based on:
payload – either a string to describe the event using quick add format or an object representing the request body for an insert request calendar – the calendar to which the event is added (optional, defaults to the node calendar property or the user’s primary calendar) sendNotifications – a Boolean to determine if notifications should be sent to attendees (optional, defaults to false) |
Examples |
Fitness nodes
The FRED fitness nodes cover a number of popular fitness devices.
Node name | Description | Examples |
strava | Get your most recent activity on Strava.
This node returns the most recent activity in the authenticated user’s account whenever it receives a message. Returns the activity, location and time when available. |
Examples |
Fitbit in | Polls Fitbit for new data at regular intervals. The generated messages are determined by the nodetype property (goals, sleep, or badges). | Examples |
Fitbit activities | Retrieves user data from Fitbit and returns a msg.payload determined by nodetype properties (as fitbit in).
The msg.date property may be set to an ISO 8601 format date (e.g. 2014-09-25) to retrieve historical data for activities and sleep log. If no date is supplied, then data for today will be retrieved. In the case of sleep, this is the data for the preceding sleep. |
Examples |
jawbone | The Jawbone Up node can be used to retrieve the workouts completed since the provided time (given as Epoch). This time can be passed in as settings on the node or as the msg.starttime section of the message input. The value set on the node will take precedence over the contents of incoming message. | Examples |
Weather nodes
FRED adds a set of nodes to give access to a variety of weather services.
Node name | Description | Examples |
openweathermap | A node to query the openweathermap.com site for weather information of a city/country or lat/long pair. Two nodes exist: one that is UI-configured and one that can accept the configuration info as an input message. | Examples |
forecastio | A node to query the forecastio.com site for weather information of a lat/long pair. Two nodes exist: one that is UI-configured and one that can accept the configuration info as an input message. | Examples |
wunderground | A node which queries The Weather Underground API for current weather data periodically and returns when a change is detected. Two nodes exist: one that is UI-configured and one that can accept the configuration info as an input message. | Examples |
Salesforce nodes
A set of experimental SalesForce nodes are available with FRED.
Node name | Description | Examples |
salesforce | A set of 5 nodes that interact with the popular salesforce.com service. The nodes can generate SOSL queries, DML statements, subscribe to the salesforce streaming API or parse outbound salesforce message objects. | Examples |
Transport nodes
Node name | Description | Examples |
TfL bus | Get live bus departure/arrival info for London (UK) buses and river buses.
This node enables the user to get bus or river bus arrival information for selected lines arriving at selected stops. The node returns the first vehicle/vessel to arrive at a particular stop. The data is provided by Transport for London. |
Examples |
TfL underground | A node to get the underground line status for the London Underground. It returns a variety of status information for the specified line including overall status, disruption info etc | Examples |
Formatting nodes
Node name | Description | Examples |
moment | moment is a date/time formatter node that takes as input either a JS datetime object or a string that moment can resolve to such. If the input is null, doesn’t exist or is a blank string, the current date/time will be used. This can be used to add a current timestamp to a flow of any kind easily.
Output is a formatted string or a date object onmsg.payload by default, change by setting the output field. |
Examples |
Summary
In this lecture, you were presented with a summary of the default Node-RED nodes available on installation, and the extended set of nodes that FRED adds. As you have seen, there is a wide variety of nodes allowing you to build complex flows with little or no programming.
You’ve also seen that not all nodes are always available, for example the Raspberry Pi nodes don’t work unless you are actually running Node-RED on a Pi. So it always pays to check that you can run the nodes you need in your environment.
However, given the large number of nodes available, and the fact that the community is creating new nodes on a daily basis, you are likely to be able to find a node that meets your needs. If not, you can fall back on the flexible function node, or even create your own, something that will be discussed in the advanced lectures.
About Sense Tecnic: Sense Tecnic Systems Inc have been building IoT applications and services since 2010. We provide these lectures, and FRED, cloud hosted Node-RED as a service to the community. We also offer a commercial version to our customers, as well as professional services. Learn more.
© Lea, Blackstock, Calderon
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.