Node-RED es un motor de flujos con enfoque IoT, que permite definir gráficamente flujos de servicios, a través de protocolos estándares como REST, MQTT, Websocket, AMQP… además de ofrecer integración con APIs de terceros, tales como Twitter, Facebook, Yahoo!…
Node-RED puede instalarse en multitud de Sistemas Operativos y Hardware, el principal requisito es que pueda instalarse Node.js: https://nodejs.org/es/
Versiones soportadas de node.js: https://nodered.org/docs/faq/node-versions
Instalación de Node-RED: https://nodered.org/docs/getting-started/
- Docker: https://nodered.org/docs/getting-started/docker
- Local: https://nodered.org/docs/getting-started/local
- Windows: https://nodered.org/docs/getting-started/windows
- Raspberry Pi: https://nodered.org/docs/getting-started/raspberrypi
- AWS: https://nodered.org/docs/getting-started/aws
- Microsoft Azure: https://nodered.org/docs/getting-started/azure
Instalar Node-RED en Raspberry Pi
Node-Red no viene instalado en Raspberry Pi pero se puede hacer desde add/remove software.
La forma es desde Menú – Preferencias – Software Recomendado. También se instala de esta manera, se puede actualizar usando sudo apt-get upgrade.
También puede hacerse desde usando: sudo apt install nodered
IMPORTANTE: Este método de instalación NO es recomendable porque instala una versión antigua de Node-RED.
En el caso de Raspberry Pi OS Buster, ejecutando apt show nodered:
Package: nodered
Version: 1.2.9-1
Priority: optional
Section: editors
Maintainer: Dave Conway-Jones <dceejay@gmail.com>
Installed-Size: 50,2 MB
Depends: nodejs (>= 10), npm (>= 5.8), python (>= 2.7)
Homepage: http://nodered.org
Download-Size: 4.714 kB
APT-Sources: http://archive.raspberrypi.org/debian buster/main armhf Packages
Description: Node-RED - low-code programming for event-driven applications
A graphical flow editor for event driven applications.
Runs on Node.js - using a browser for the user interface.
See http://nodered.org for more information, documentation and examples.
.
Copyright 2017,2021 JS Foundation and other contributors, https://js.foundation/
Copyright 2015,2017 IBM Corp.
Licensed under the Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0
Luego se puede ejecutar manualmente con el comando “node-red-star”:
Para iniciar Node-RED en el arranque de Raspberry Pi de forma automática usar: sudo systemctl enable nodered.service
Más información https://nodered.org/docs/hardware/raspberrypi
Para comprobar que funciona abrir en un navegador http://ip-raspberry:1880
Para encontrar más nodos y ejemplos de flows ver https://flows.nodered.org/ estos nodos se pueden instalar desde el palette.
Instalación Recomendada de Node-Red en Raspberry Pi
La instalación recomendada para tener la última version de Node-RED en Raspberry Pi: https://nodered.org/docs/getting-started/raspberrypi
Comprobar la versión de node.js y npm instalada:
- node –version
- npm –version
Ejecutar el script, ojo cuesta un tiempo instalar:
- bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
script antiguo para Raspberry Pi: bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
Si se hace en RPi apt-get upgrade se actualizan las versiones de node.js y npm
Para versiones de OS basada en rpm usar (CentOS, Fedora, etc…) Usar el script: bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/rpm/update-nodejs-and-nodered)
Para más detalles ver https://github.com/node-red/linux-installers
Este script sirve para instalar Node.js, npm y Node-RED en una Raspberry Pi. El script también se puede utilizar para actualizar una instalación existente cuando hay una nueva versión disponible.
El script que se descarga y ejecuta puede verse en: https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered
Este script eliminará las versiones de Node.js anteriores a la versión 7.x, y Node-RED y
si es necesario, reemplaza con con Node.js 10.x LTS (dubnium) y el último Node-RED de Npm.
También mueve cualquier nodo Node-RED que esté instalado globalmente en su usuario ~/.node-red/node_modules, y los agrega a su package.json, para que puede administrarlos con el administrador de paletas.
También intenta ejecutar ‘npm rebuild’ para actualizar los nodos adicionales que haya instalado que puede tener un componente binario nativo. Si bien esto normalmente funciona bien, necesitas comprobar que tiene éxito para su combinación de nodos instalados.
Estos son los pasos que realiza:
- Stop Node-RED
- Remove old version of Node-RED
- Remove old version of Node.js
- Install Node.js
- Clean npm cache
- Install Node-RED core
- Move global nodes to local
- Install extra Pi nodes
- Npm rebuild existing nodes
- Add shortcut commands
- Update systemd script
Los errores de instalación se pueden ver en: /var/log/nodered-install.log
Para ejecutar Node-RED como servicio y que se inicie en el boot de Raspberry PI ejecutar: sudo systemctl enable nodered.service
Iniciar el servicio de Node-RED con: sudo systemctl start nodered.service
Para comprobar que funciona abrir un navegador y enterar en: http://{your_pi_ip-address}:1880
Más información:
- https://nodered.org/docs/getting-started/raspberrypi
- http://pdacontroles.com/instalacion-completa-node-red-en-raspberry-pi/
- https://diyprojects.io/node-red-installation-discovery-raspberry-pi3/
Instalar Node-RED en CentOS
La instalación en local se hace siguiendo este enlace: https://nodered.org/docs/getting-started/local
Es recomendable crear un usuario nodered y hacer la instalación con ese usuario.
Para versiones de Linux basadas en RPM como Red HAT, fedora o CentOS usar esta instalación: https://github.com/node-red/linux-installers. Funciona perfectamente.
Usar este script: bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/rpm/update-nodejs-and-nodered)
Y luego activar el inicio automático en el arranque: sudo systemctl enable nodered.service
Para actualizar usar el mismo script que el de instalación.
Instalación Manual en CentOS
Para instalar Node-RED es necesario una versión soportada de Node.js: https://nodered.org/docs/faq/node-versions
Sigue leyendo solo si eres usuario avanzado, sino te recomiendo que instales Node-RED con el script.
Primero instalar node.js en CentOS:
- https://nodejs.org/en/download/package-manager/#centos-fedora-and-red-hat-enterprise-linux
- https://linuxize.com/post/how-to-install-node-js-on-centos-7/
- https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-centos-8-es
Para poder instalar add-ons: sudo yum install gcc-c++ make
Para actualizar paquetes npm: npm install -g npm
Y luego instalar node-RED (use the node package manager, npm, that comes with Node.js): npm install -g –unsafe-perm node-red
Running Node-RED: https://nodered.org/docs/getting-started/running
- poner node-red
- abrir firewall sudo firewall-cmd –permanent –add-port=1880/tcp
- firewall-cmd –reload
Arrancar node-red en el arranque: https://nodered.org/docs/hardware/raspberrypi#adding-autostart-capability-using-systemd
Más información para la instalación: https://ketandesai.co.uk/os/install-node-red-on-centos-7/
Para actualizar node-red instalado en local https://nodered.org/docs/getting-started/local usar el comando: npm install -g –unsafe-perm node-red
NOTA: no olvidar actualizar a la última versión de nodejs.
Para configurar:
Para securizar:
Comandos básicos de npm: https://vortexbird.com/comandos-basicos-de-npm/
Actualizar Node-Red en CentOS
Si se ha usado el script usar:
- En principio no haría falta yum update
- cp flows_cred.json backup/flows_cred.json
- cp flows.json backup/flows.json (Backup de nodos y credenciales)
- npm install -g npm (actualizar paquetes npm)
- bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/rpm/update-nodejs-and-nodered)
- systemctl restart nodered.service (reiniciar servicio)
- systemctl status nodered.service (comprobar servicio)
- Actualizar nodos desde Manage Palette
Si se ha instalado con npm:
- cp flows_cred.json backup/flows_cred.json
- cp flows.json backup/flows.json (Backup de nodos y credenciales)
- yum update (actualizar node.js y npm)
- npm install -g npm (actualizar paquetes npm)
- sudo npm install -g –unsafe-perm node-red (actualizar node-red)
- systemctl restart nodered.service (reiniciar servicio)
- systemctl status nodered.service (comprobar servicio)
- Actualizar nodos desde Manage Palette
Instalar Node-RED en Docker
Node-RED en docker: https://nodered.org/docs/getting-started/docker
Docker hub oficial de Node-RED desde la version 1.x: https://hub.docker.com/r/nodered/node-red/
Imagen de Node-RED: https://github.com/node-red/node-red-docker/blob/master/README.md
Para versiones antiguas: https://hub.docker.com/r/nodered/node-red-docker
La forma más sencilla de ejecutar Node-RED en docker:
- docker run -it -p 1880:1880 –name mynodered nodered/node-red
Las imágenes Node-RED se basan en imágenes oficiales de Node JS Alpine Linux para mantenerlas lo más pequeñas posible. El uso de Alpine Linux reduce el tamaño de la imagen construida, pero elimina las dependencias estándar que se requieren para la compilación del módulo nativo.
Una vez que está Node-RED ejecutándose con Docker, debemos asegurarnos de que los nodos o flujos agregados no se pierdan si se destruye el contenedor. Estos datos de usuario pueden conservarse montando un directorio de datos en un volumen fuera del contenedor. Esto puede hacerse usando un montaje de enlace o un volumen de datos con nombre.
Node-RED utiliza el directorio /data dentro del contenedor para almacenar los datos de configuración del usuario.
Para guardar el directorio de usuario Node-RED dentro del contenedor en un directorio host fuera del contenedor, puede usar el siguiente comando. Para permitir el acceso a este directorio de host, el usuario de node-red (uid predeterminado = 1000) dentro del contenedor debe tener el mismo uid que el propietario del directorio de host. Esto puede ser forzado con el comando sudo chown -R 1000:1000 path/to/your/node-red/data. Más información https://github.com/node-red/node-red-docker/wiki/Permissions-and-Persistence
docker run -it -p 1880:1880 -v /home/pi/.node-red:/data –name mynodered nodered/node-red
Montar un volumen de datos dentro del contenedor en esta ruta de directorio significa que la configuración de usuario pueden guardarse fuera del contenedor e incluso compartirse entre instancias de contenedor.
En este ejemplo, el directorio host /home/pi/.node-red está vinculado al directorio contenedor /data
El contenedor utiliza el directorio /data como el directorio de configuración del usuario. Para agregar nodos adicionales, puede abrir el shell en el contenedor y ejecutar los comandos de instalación npm adecuados:
- docker exec -it mynodered /bin/bash (Abre un shell en el contenedor)
- cd /data
- npm install node-red-node-smooth (una vez en el contenedor npm instala el nodo)
- exit
- docker stop mynodered
- docker start mynodered (reiniciar contenedor)
Para montar /data en un path externo:
- docker run –restart always -d -p 1880:1880 -v /opt/docker_volumes/nodered_data:/data –name nodered nodered/node-red
- Y si lo añado en una red: docker run –restart always -d -p 1880:1880 –network ‘Entorno Desarrollo’ -v /opt/docker_volumes/nodered_data:/data –name nodered nodered/node-red
Para que funcione hay que dar permisos de escritura al uid 1000 al directorio /opt/docker_volumes/nodered_data
Actualizar un Contenedor
Para actualizar el contendor: https://nodered.org/docs/getting-started/docker#updating
Actualizar el contenedor con una copia del antiguo:
- docker pull nodered/node-red
- docker stop nodered
- docker rename nodered nodered.bak (lo renombro para tener de backup y luego lo elimino)
- docker run –restart always -d -p 1880:1880 –network ‘Entorno Desarrollo’ -v /opt/docker_volumes/nodered_data:/data –name nodered nodered/node-red
- docker rm nodered.bak (borro el anterior si funciona)
- (borro la imagen antigua)
Para cambiar la time zone del contenedor:
- docker run -it -p 1880:1880 –name mynodered -e TZ=Europe/London nodered/node-red
Docker de node-red en raspberry pi: https://domology.es/docker-de-node-red-en-raspberry-pi/
Más información: https://nodered.org/docs/getting-started/docker
Instalación Manual de Node-RED. Instalación en Local
Esto sirve para cualquier sistema operativo ya sea Windows, Linux, MacOS, etc…. Documentación: https://nodered.org/docs/getting-started/local
Instalación en Windows:
- https://www.alexmedina.net/instalar-nodered-windows/
- http://pdacontroles.com/instalacion-node-red-en-windows/
Node-RED puede instalarse en multitud de Sistemas Operativos y Hardware, el principal requisito es que pueda instalarse Node.js: https://nodejs.org/es/
Node-RED se pueden instalar mediante npm, Además para añadir nodos adicionales primero debe instalar la herramienta npm
Primero se debe instalar node.js, para ello seguir las guias proporcionadas para su instalación: https://nodejs.org/en/download/package-manager/
Versiones node.js soportadas por Node-RED: https://nodered.org/docs/faq/node-versions
npm es el sistema de gestión de paquetes por defecto para Node.js
npm ya viene instalado con la instalación de node.js desde la versión 8.x. Ver: https://www.npmjs.com/get-npm
El comando para instalar y actualizar Node-RED una vez instalado Node.js: sudo npm install -g –unsafe-perm node-red
Y luego para instalar un nodo/librería, se puede hacer mediante npm en lugar de la paleta de nodos con:
- cd ~/.node-red
- npm install node-red-{example node name}
Node-RED Desktop
Por el momento, para instalar Node-RED, un usuario tiene que instalar node.js y npm, luego ejecutar algunos comandos con los que puede que no estén familiarizados y ven una pantalla llena de resultados de npm, la mayoría de los cuales significarán muy poco para ellos.
Existen algunos proyectos de instalador de node-RED como: https://sakazuki.github.io/node-red-desktop/
Instalador Node-RED usando Electron: https://jejo.es/posts/electron/electronarduinonodered/v104/
Node-RED Portable:
- https://jejo.es/posts/electron/electronarduinonodered/portable_node_red/
- https://jejo.es/posts/electron/electronarduinonodered/portable_node_red_rpi/
Ejecutar Node-RED
Una vez instalado Node-RED ejecutar el comando para iniciar: node-red
La salida del registro le proporciona varias piezas de información:
- Las versiones de Node-RED y Node.js
- Cualquier error cuando intentó cargar los nodos de la paleta
- La ubicación de su archivo de configuración y directorio de usuarios
- El nombre del archivo de flujos que está utilizando.
Para tener un log de lo que está pasando usar node-red-log
Otros comandos:
- node-red-stop to stop Node-RED
- node-red-start to start Node-RED again
- node-red-log to view the recent log output
- sudo systemctl enable nodered.service to autostart Node-RED at every boot
- sudo systemctl disable nodered.service to disable autostart on boot
- sudo systemctl status nodered.service to check service status
- sudo systemctl restart nodered.service to restart service
Nodo-RED utiliza el fichero flows_<hostname>.json como el archivo de flujos predeterminado. Puede cambiar esto proporcionando el nombre del archivo de flujos como argumento para el comando node-red
Iniciar Node-RED en el inicio o como servicio: https://nodered.org/docs/faq/starting-node-red-on-boot
Uso de la línea de comandos de node-red: https://nodered.org/docs/getting-started/local#command-line-usage
Override individual settings: https://nodered.org/docs/getting-started/local#override-individual-settings
node-red-admin es la herramienta de línea de comandos le permite administrar de forma remota una instancia de Node-RED: https://nodered.org/docs/user-guide/node-red-admin
Para instalar node-red-admin: sudo npm install -g node-red-admin
Para ver todos los nodos instalados: node-red-admin list
Desde la versión 1.1 se ha integrado en Node-RED y se ejecuta como: node-red admin y no es necesario instalar de forma separada
Más comandos: https://nodered.org/docs/user-guide/node-red-admin
Personalizar Node-RED
Se pueden poner Themes en Node-RED: https://github.com/node-red-contrib-themes
Colección de temas: https://github.com/node-red-contrib-themes/theme-collection
Instalación: npm install @node-red-contrib-themes/theme-collection
Para configurar editar en settings.js:
// Customising the editor
editorTheme: {
projects: {
// To enable the Projects feature, set this value to true
enabled: true
},
theme: "<theme-name>"
}
Luego reiniciar Node-RED con: systemctl restart nodered
Temas disponibles:
- dark
- midnight-red
- oled
- solarized-dark
- solarized-light
Pingback: Instalación Node-RED -
se puede instalar node-red en arduino?
Me gustaLe gusta a 1 persona
No, Node-RED necesita un ordenador, PLC, placa SBC, etc… que sea capaz de ejecutar node.js version 12.x como mínimimo,
Lo que si puedes hacer es controlar Arduinos remotamente desde Node-RED, mediante MQTT, firmata u otro protocolo.
Me gustaMe gusta
Pingback: Diario del Curso IoT, Smart Cities y Node-RED | Aprendiendo Arduino
Pingback: Diario Curso: Raspberry Pi y Node-RED. 2ª ed | Aprendiendo Arduino