Node-RED Example
   HOME

TheInfoList



OR:

Node-RED is a flow-based, low-code development tool for
visual programming In computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating prog ...
, originally developed by
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
for wiring together hardware devices,
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
s and
online services An online service provider (OSP) can, for example, be an Internet service provider, an email provider, a news provider (press), an entertainment provider (music, movies), a search engine, an e-commerce site, an online banking site, a health site, ...
as part of the
Internet of things Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communication networks. The IoT encompasse ...
. Node-RED provides a
web browser A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
-based flow editor, which can be used to create
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
functions. Elements of applications can be saved or shared for re-use. The runtime is built on Node.js. The flows created in Node-RED are stored using
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
. Since version 0.14,
MQTT MQTT is a lightweight, publish–subscribe, machine-to-machine network protocol for message queue/ message queuing service. It is designed for connections with remote locations that have devices with resource constraints or limited network b ...
nodes can make properly configured TLS connections. In 2016, IBM contributed Node-RED as an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
OpenJS Foundation The OpenJS Foundation is an organization that was founded in 2019 from a merger of JS Foundation and Node.js Foundation. OpenJS promotes the JavaScript and web ecosystem by hosting projects and funds activities that benefit the ecosystem. The Ope ...
project.


Node-RED projects

The Node-RED project has a number of components: * Node-RED, the visual designer tool. * Node-RED Dashboard, a dashboard
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
for Node-RED. * Node generator, a
command-line tool A console application or command-line program is a computer program (applications or utilities) designed to be used via a text-only user interface. A console application can be used with a computer terminal, a system console, or a terminal emu ...
to generate Node-RED node modules from several sources, including OpenAPI documents and a function node's source. * Node-RED Command Line Tool, a command-line tool that allows for remotely administering a Node-RED instance.


Flows

A Node-RED flow describes the connection and sequencing of various input, output, and processing nodes within the Node-RED platform. Each node within a flow performs a unique and specific task. When data is transmitted to a node, the node processes it according to its designated function, before passing it on to the subsequent node in the flow. This system allows for the controlled execution and regulation of a wide range of operations. Node-RED flows represent the primary visual programming mechanism of the tool.


Adoption

Node-RED has gained traction in the
industrial internet of things The industrial internet of things (IIoT) refers to interconnected sensors, instruments, and other devices networked together with computers' industrial applications, including manufacturing and energy management. This connectivity allows for data ...
(IIoT) and
edge computing Edge computing is a distributed computing model that brings computation and data storage closer to the sources of data. More broadly, it refers to any design that pushes computation physically closer to a user, so as to reduce the Latency (engineer ...
sectors. Node-RED's open-source nature and large community have led to the creation of over 4000 connectors supporting a wide range of data sources and protocols such as
Modbus Modbus (or MODBUS) is a client/server data communications protocol in the application layer. It was originally designed for use with programmable logic controllers (PLCs), but has become a ''de facto'' standardization, standard communication pr ...
, OPC-UA, Siemens S7, and
MQTT MQTT is a lightweight, publish–subscribe, machine-to-machine network protocol for message queue/ message queuing service. It is designed for connections with remote locations that have devices with resource constraints or limited network b ...
. Several PLC and IoT vendors have adopted Node-RED as a standard.


Community survey

The 2023 Node-RED Community Survey provided insights into the usage patterns, preferences, and feedback from 780 individuals who are part of the Node-RED community. The survey, conducted in March 2023, revealed that Node-RED's usage extends beyond DIY home automation, with a trend towards professional use in a variety of industries. Over half of the respondents had been using Node-RED for over two years, indicating a well-established community. The most common messaging technologies used in conjunction with Node-RED are MQTT and HTTP, while
InfluxDB InfluxDB is a time series database (TSDB) developed by the company InfluxData. It is used for storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time a ...
emerged as the most popular database within the community. The survey also shed light on perceived barriers to adoption, pointing towards the perception of Node-RED as a proof of concept tool and the lack of certain key features. Despite these challenges, the survey highlighted a high level of satisfaction within the community, with over two-thirds of respondents rating Node-RED a 5 out of 5.


Commercial offerings

FlowFuse (formerly known as FlowForge) is an open-core company investing in Node-RED. Nick O’Leary, co-creator of Node-RED, is FlowFuse co-founder and CTO. FlowFuse adds collaborative development, management of remote deployments, support for DevOps delivery pipelines, and the ability to host Node-RED applications on FlowFuse Cloud.


See also

*
Dataflow programming In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share ...
*
Visual programming language In computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create computer program, programs by ...
*
Yahoo! Pipes Yahoo! Pipes was a web application from Yahoo! that provided a graphical user interface for building data Mashup (web application hybrid), mashups that aggregate web feeds, web pages, and other services; creating Web-based apps from various sour ...
*
Matter (standard) Matter is a technical standard for smart home and IoT (Internet of Things) devices. It aims to improve interoperability and compatibility between different manufacturers and security, and always allowing local control as an option. Matter orig ...
*
Thread (network protocol) Thread is an IPv6-based, low-power mesh networking technology for Internet of things (IoT) products. The Thread protocol specification is available at no cost; however, this requires agreement and continued adherence to an end-user license ...


References


External links

* {{IBM FOSS Internet of things JSON Visual programming languages IBM software