Si la verdad que nos hemos venido arriba con el titulo de esta entrada del blog, pero es que Node-RED es una herramienta que permite hacer tantas cosas e integrar tantos sistemas focalizados en el entorno del internet de las cosas (IoT) que es difícil no considerarlo un tesoro. Empecemos por el principio.
Que es Node-RED
Node–RED en su definición básica se trata de una herramienta que sirve para comunicar hardware, servicios y APIs de forma rápida y sencilla. Simplifica en gran medida la forma de programar gracias a su formato visual. En su definición mas formal Node–RED fue creado por Nick O’Leary y David Conway-Jones del grupo de Servicios de Tecnologías Emergentes de IBM en el año 2013. Su objetivo era dar solución a la complejidad cuando se requería integrar el hardware con los servicios en entornos sobre todo IoT. Proporciona un editor web que permite crear flujos uniendo nodos. Estos nodos realizan una serie de acciones sobre un mensaje original. Se pueden crear funciones en JavaScript dentro de los nodos con lo que las funcionalidades que ofrece se amplían de forma considerable según nuestras habilidades van en aumento. Node-RED esta escrito en Node.js lo que permite que por su ligereza pueda ser instalado y pueda funcionar en equipos que requieren un bajo coste tanto económico como energético lo que lo hace ideal para entornos IoT.
Node-RED mostrando su potencia
Como comentábamos anteriormente Node-RED nos ofrece un entorno visual capaz de crear flujos uniendo nodos. Los nodos son funciones capaces de actuar sobre un mensaje original. Existen nodos que disponen de entradas y salidas, otros solo salidas o entradas. Así que para cada acción que queramos realizar deberemos de utilizar ciertos nodos. Node-RED se estructura en un formato de paleta de nodos a la izquierda una parte central donde se arrastran los nodos y los flujos se configuran de izquierda a derecha con la posibilidad que aparezcan ramificaciones de los nodos y a la derecha nos aparece una serie de elementos que nos permiten visualizar los mensajes, ver información de los nodos o configurar nuestro Node-RED.
Existen una serie de nodos instalados por defecto pero podemos ir ampliando nuestra paleta de nodos según vayamos necesitando nuevas opciones. Además, existe una comunidad de desarrolladores que incluyen desde personas a grandes corporaciones desarrollando nodos o conjuntos de nodos para sus productos. Es por ello que podemos encontrar librerías y nodos de fabricantes o empresas como Siemens, Weidmuller, Ubidots, Telegram, Home Assistant, etc. Otra de las funcionalidades que tiene Node-RED es que los flujos se guardan en formato JSON por lo que es muy sencillo importar/exportar facilitando tanto los backups como la movilidad de los flujos. Node-RED incorpora un dashboard donde es posible visualizar los valores y flujos en un formato web con gráficos, indicadores e incluso actuadores lo que permite crear mandos de control muy manejables para cualquiera.
Donde puedes instalar Node-RED.
Node-RED lo podemos instalar en casi cualquier sitio.
- En nuestro PC o Docker: Node-RED se puede instalar en nuestro PC como un servicio que podemos activar o desactivar a nuestro antojo o ejecutarlo en un contenedor docker.
- En una Raspberry, BeagleBoard, Interactuando con Arduino o Android: Dado su ligereza Node-RED puede ser instalado en las placas Raspberry o BeagleBoard en Arduino a través de Firmata o incluso en dispositivos Android a través de Termux
- En el cloud: Utilizando los múltiples servicios y plataformas existentes como son IBM Cloud, Amazon Web Services, Microsoft Azure, etc.
- Integrado en plataformas propias: Muchos fabricantes o plataformas de software integran en sus soluciones Node-RED a modo de ejemplo podemos encontrar la pasarela IOT2040 o IOT2050 de Siemens, la pasarella IOT de Weidmuller o el Home Assistant también ofrece la capacidad de instalar el add-on de Node-RED.
En BConsultors ofrecemos integración y asesoramiento de soluciones IoT donde Node-RED es uno de los elementos centrales por sus amplias funcionalidades y posibilidades que ofrece. En próximas entradas profundizaremos en ejemplos desde lo mas sencillo para entender su funcionamiento a soluciones mas complejas e integración con otros servicios. Os esperamos muy pronto!