Instalación Node-RED

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… ademas 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/

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.

Luego se puede ejecutar manualmente con el comando “node-red-star” o :

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.

Los nodos también se pueden instalar mediante npm. Para añadir nodos adicionales primero debe instalar la herramienta npm, ya que no está incluida en la instalación predeterminada de Raspbian. Esto no es necesario si ha actualizado a Node.js 8.x.

npm es el sistema de gestión de paquetes por defecto para Node.js

Los siguientes comandos instalan npm y luego lo actualizan a la última versión.

  • sudo apt-get install npm (Instala npm)
  • sudo npm install -g npm (Actualiza npm a la última versión en modo global)

Para poder ver la paleta e instalar nodos, reiniciar el servicio:

  • sudo systemctl restart nodered.service

Y luego para instalar un nodo:

  • cd ~/.node-red
  • npm install node-red-{example node name}

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

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:

  • npm –version
  • node –version

Ejecutar el script, ojo cuesta un tiempo instalar: 

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 para 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

Más información:

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 instalar Node-RED es necesario una versión soportada de Node.js: https://nodered.org/docs/faq/node-versions

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

Sigue leyendo solo si eres usuario avanzado, sino te recomiendo que instales Node-RED con el script.

Primero instalar node.js en CentOS:

Hay dos formas de instalar nodejs:

  • usando yum con el repositorio
  • Usando la utilidad n de npm

Para instalar la última version con yum: https://tecadmin.net/install-latest-nodejs-and-npm-on-centos/

Usando la utilidad n de npm para actualizar a la última versión de nodejs con estos comandos:

  1. Clear NPM’s cache:
    sudo npm cache clean -f
  2. Install a little helper called ‘n’
    sudo npm install -g n
  3. Install latest stable Node.js version
    sudo n stable

Más información: https://tecadmin.net/upgrade-nodejs-via-npm/

Para poder instalar add-ons: sudo yum install gcc-c++ make

Para actualizar npm: npm install -g npm

Y luego instalar node-RED (use the node package manager, npm, that comes with Node.js): sudo 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/

Hay que cambiar /lib/systemd/system/nodered.service el usuario pi por el usuario root en este caso o el usuario que ha instalado node-red

User=root

Group=root

WorkingDirectory=/root

Creo un usuario del grupo sudores llamado nodered y contraseña para que ejecute los servicios en el servidor!!!

Para actualizar node-red instalado en local https://nodered.org/docs/getting-started/local usar el comando: sudo 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/

Instalar Node-RED en Local

Para instalar Node-RED en local, ya sea Windows, Linux o MacOS seguir https://nodered.org/docs/getting-started/local

Iniciar Node-RED en el inicio: https://nodered.org/docs/faq/starting-node-red-on-boot

Instalación en Windows:

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 puedes 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

Para que funcione hay que dar permisos de escritura al directorio /opt/docker_volumes/nodered_data

Para actualizar el contendor:

  • docker pull nodered/node-red
  • docker stop mynodered
  • docker start mynodered

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

Enlazar Contenedores

Puede vincular contenedores «internamente» dentro del docker runtime utilizando la opción –link.

Por ejemplo, tengo un contenedor de un broker MQTT simple disponible como:

  • docker run -it –name mybroker eclipse-mosquitto

No es necesario exponer el puerto 1883 a nivel global a menos que desee.

A continuación, ejecute docker, pero esta vez con un parámetro de enlace (nombre: alias)

  • docker run -it -p 1880:1880 –name mynodered –link mybroker:broker nodered/node-red

Ejecutar Node-RED

Una vez instalado Node-RED ejecutar el comando 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.

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

Uso de la línea de comandos de node-red: https://nodered.org/docs/getting-started/local#command-line-usage

Más información: https://nodered.org/docs/getting-started/local

Anuncio publicitario

4 comentarios en “Instalación Node-RED

  1. Pingback: Saber más Curso Raspberry Pi y Node-RED | Aprendiendo Arduino

  2. Pingback: Saber Más Node-RED Developer | Aprendiendo Arduino

  3. Pingback: Saber Más Fundamentos IoT CEFIRE | Aprendiendo Arduino

  4. Pingback: Saber Más Fundamentos IoT para Formación Profesional | Aprendiendo Arduino

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.