¿Qué es Node-RED?

Node-RED es una herramienta de código abierto para la programación visual que permite crear aplicaciones de Internet de las cosas (IoT).
Node-RED se ejecuta en el navegador web y utiliza una programación visual que le permite conectar bloques de código, conocidos como nodos, para realizar una tarea. Los nodos cuando se conectan entre sí se denominan flujos.

Características:
- Es accesible a una gama más amplia de usuarios.
- Permite ahorrar tiempo, pues no se escribe código (… ¿Tu qué opinas?)
- Es código abierto y desarrollado por IBM,
- Raspberry Pi puede ejecutar Node-RED,
¿Qué se puede hacer con Node RED?
Node-RED permite:
- Acceder a los GPIO;
- Establecer una conexión MQTT con otros dispositivos (Usando Arduino IDE, ESP8266, ESP32, etc.);
- Cree una interfaz gráfica de usuario receptiva para sus proyectos;
- Comunicarse con servicios de terceros (IFTTT.com, Adafruit.io, ThingSpeak, Home Assistant, InfluxDB etc);
- Recuperar datos de la web (pronóstico del clima, precios de acciones, correos electrónicos, etc.);
- Crear eventos activados por tiempo;
- Almacenar y recuperar datos de una base de datos.
Instalando Node RED en Raspberry Pi
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Link Oficial: Running on Raspberry Pi : Node-RED (nodered.org)
Preguntará si se quiere instalar Node Red, luego preguntará: “Would you like to install Pi-specific nodes?” Presionar Y, luego Enter.

Tomará unos minutos instalar Node-RED. Al final, debería recibir un mensaje similar en la ventana de Terminal:
Configurar Node-RED Settings
Después de la instalación, se recomienda configurar las opciones y configuraciones iniciales.
Ejecución del siguiente comando:
node-red admin init
- Press Enter to create a Node-RED Settings file on /home/pi/.node-red/settings.js
- Do you want to set up user security? Yes.
- Enter a username -> Luego presionar Enter (admin).
- Enter a password -> Luego presionar Enter (adminadmin).
- Luego, debe definir los permisos de usuario. Configuraremos el acceso completo, nos aseguraremos de que la opción de acceso completo esté resaltada en azul y presione Enter.
- Se pueden agregar otros usuarios con diferentes permisos. Solo se creará un usuario por ahora. Se puden agregar otros usuarios más luego.

- Do you want to enable the Projects feature? No.
- Enter a name for your flows file. (Presionar Enter para seleccionar el nombre por defecto flows.json).
- Provide a passphrase to encrypt your credentials file. (huecat) Aprende más sobre qué es una passphrase.
- Select a theme for the editor. Presionar Enter para seleccionar por default.
- Press Enter again to select the default text editor.
- Allow Function nodes to load external modules? Yes.
La configuración de Node-RED fue exitosa. Todos los ajustes se guardan en settings.js.

Iniciar Node-RED
Correr el siguiente comando para iniciar Node-RED:
node-red-start
Debería verse algo así en la Terminal:

Auto-Inicio / Autostart Node-RED
Para ejecutar Node-RED automáticamente cuando se inicia el Pi, debe ingresar el siguiente comando. Esto significa que mientras su Raspberry Pi esté encendida, Node-RED estará funcionando.
sudo systemctl enable nodered.service
Ahora, reinicie su Pi para que el inicio automático surta efecto. La próxima vez que se reinicie la Raspberry Pi, Node-RED ya se estará ejecutando.
sudo reboot

If, later on, you want to disable autostart on boot, you can run:
sudo systemctl disable nodered.service
Para obtener más información sobre el proceso de instalación, consulte la official documentation.
Access Node-RED
Node-RED se ejecuta en el puerto 1880. Para acceder a Node-RED, abra un navegador y escriba la dirección IP de Raspberry Pi seguida de: 1880. Por ejemplo:
192.168.1.102:1880
Para obtener su dirección IP de Raspberry Pi, puede ejecutar el siguiente comando:
hostname -I

Después de ingresar la dirección IP de Raspberry Pi seguida de: 1880 en el navegador web, obtendrá acceso a la página de inicio de sesión de Node-RED. Inicie sesión con el nombre de usuario y la contraseña que configuró anteriormente.

Ya se tiene el acceso a Node-RED. Ahora se puede comenzar a construir sus flujos.

Descripción General Node-RED
Echemos un vistazo a la interfaz visual de Node-RED.

Secciones principales de la interfaz Node-RED
La siguiente imagen muestra las secciones principales de Node-RED etiquetadas.

Nodes / Nodos
En la barra lateral izquierda, puede ver una lista con un montón de bloques. Estos bloques se denominan nodos y están separados por su funcionalidad. Si se selecciona un nodo, se puede ver cómo funciona en la pestaña de documentación de los nodos.
Los nodos tienen puertos de entrada y/o salida para recibir y enviar información a otros nodos. Por ejemplo, un nodo recibe una entrada de un nodo anterior, procesa esa información y envía un mensaje diferente a otro nodo que hará algo con esa información. La información que se pasa entre los nodos se denomina mensaje.
Flow
Los nodos son los componentes básicos de un flujo. Conecta los nodos para crear un flujo que realizará una determinada tarea. Un Flujo también es una pestaña en el espacio de trabajo donde coloca y organiza los nodos.
En el centro, tienes el Flujo y aquí es donde colocas los nodos.
Barra lateral derecha
La barra lateral a la derecha tiene varias herramientas.
- Información: muestra información sobre los flujos;
- Ayuda: muestra la documentación de los nodos;
- Debug/Depurar: el icono de error abre una ventana de depuración que muestra los mensajes pasados a los nodos de depuración; es útil para fines de depuración;
- Config nodes/Nodos de configuración: el icono de engranaje muestra información sobre los nodos de configuración. Los nodos de configuración no aparecen en el espacio de trabajo principal y son nodos especiales que contienen configuraciones reutilizables que pueden compartir varios nodos en un flujo.
Implementación
El botón de implementación guarda todos los cambios realizados en el flujo y comienza a ejecutar el flujo.
Creando un flujo simple
Para que se acostumbre a la interfaz de Node-RED, creemos un flujo simple. El flujo que crearemos, simplemente imprime un mensaje en la consola de depuración, cuando se activa.
Arrastre un nodo de inyección y un nodo de depuración a su flujo y conéctelos.

Ahora, editemos el nodo de inyección. Haga doble clic en el nodo. En la figura a continuación, puede ver las diferentes configuraciones que puede cambiar.
En el campo msg.payload , seleccione una cadena y escriba Hola. Luego, haz clic en Listo.

Messages (msg) in Node-RED are javascript objects that can have multiple properties. The payload is the default property most nodes work with. You can think of it as the main content of the message you want to send to the next node. In our case, we’re simply sending a text message.
We won’t edit the debug node, but you can double-click on it to check its properties.

////////////////////////////////////////////////////////// HASTA ACA
You can select the output of the debug node, which is msg.payload and where we want to send that output. In our case, we want to send it to the debug window.
To save your application, you need to click the Deploy button in the top right corner.

Your application is saved.
Testing the flow
Let’s test our simple flow. Open the debug window and click the inject node to trigger the flow.

As you can see, our message is printed in the debug window when you trigger the inject node. This is a very basic example and it doesn’t do anything useful. However, the purpose of this post is to get you familiar with the Node-RED interface. In no time, you’ll start creating your own flows.
Exporting and Importing Nodes
In this section, you’ll learn how to save your nodes. This is useful if you need to:
- Backup your Node-RED flow
- Move your flow to another Raspberry Pi (or machine)
- Share your Node-RED project with others
Open the main menu, and select the Export option.

A new window opens. You can select if you want to save the selected nodes, the current flow, or all flows. You can also download the nodes as a JSON file or copy the JSON to the clipboard.

To show you how it works, click on Download for the selected nodes. It will download a JSON file called flows.json.
You can import those nodes later to another Raspberry Pi or another machine with Node-RED installed, by going to the main menu and selecting the Import option.
On the Import nodes window, you can upload a JSON file or paste raw JSON.

Installing Pallete Nodes
As we’ve seen previously, Node-RED comes with a bunch of pre-installed nodes on the Pallete (left sidebar). There are many more nodes available that you can install and use for your projects. You can find them in the Node-RED library. If you need some specific task for your project, there’s probably already a node for that.
For example, if you need to add the feature to send an email to your flow, you can google something like this: “send email node-red node”. One of the first search results is this page with the node-red-node-email. It comes with some nodes to send and receive emails.
If you want to install those nodes (or any other nodes) so that you can use them on your flow, go to the main menu and select the option Manage palette.

The following window will open. Select the install tab and search for the nodes you want to install, for example, node-red-node-email.

Node-RED Dashboard
Node-RED Dashboard is a module that provides a set of nodes in Node-RED to quickly create a live data dashboard. You can install those nodes using the Menu > Manage Palette. Then, search for node-red-dashboard and install it.

After installing, the dashboard nodes will show up on the palette.

Nodes from the dashboard section provide widgets that show up in your application user interface (UI). The user interface is accessible on the following URL:
http://Your_RPi_IP_address:1880/ui
For example, in my case:
http://192.168.1.106:1880/ui

Fuente: https://nodered.org/docs/getting-started/raspberrypi
Traducción: 69%
Prueba Ok (ventanas rojas)
Es muy útil el nodered para cuando alguient e configura todo o lo haces con la misión de luego cambiar seguido los flows. Pero para un programador que debe dejar este trabajo «hecho» es sinceramente engorroso y la curva de aprendizaje de los bloques es como pasar con el auto sobre un camino de lomos de burro