Icono del sitio Programar fácil con Arduino

Novedades de Node-RED 0.20

El pasado 12 de Marzo de 2019 Nick O’Leary publicó las novedades de la versión 0.20 de Node-RED. Poco a poco se está convirtiendo en un software indispensable para muchas personas.

Entre ellos estamos los Makers. Se trata de una herramienta que al igual que Raspberry Pi, sirve de pegamento para unir los dispositivos del IoT creados con Arduino y ESP8266 con Internet.

Lo que hace algún tiempo era sólo para unos cuantos expertos, ahora se ha convertido en una tecnología para todo el mundo. Crear aplicaciones del backend nunca había sido tan fácil como lo es ahora gracias a Node-RED.

En este artículo te presentaré todas las novedades que hay entorno a la versión 0.20 de Node-RED.

Actualización de Node-RED

Lo primero que tienes que hacer es actualizar a la nueva versión si no lo has hecho ya. Cómo hacerlo dependerá del entorno donde lo tengas instalado.

Yo personalmente animo a que se utilice Node-RED dentro de una Raspberry Pi ya que esto permite tener encendido en todo momento el servidor y a la vez se consigue un bajo consumo.

Comprueba primero qué versión tienes instalada en tu Raspberry Pi. Lo puedes ver accediendo al menú de opciones de Node-RED.

Yo por ejemplo tengo instalada la versión 0.19.5. Puede que tu tengas otra pero lo importante es que si no tienes la versión 0.20, a continuación te voy a enseñar cómo puedes instalarla.

Antes de nada actualiza Raspbian y todos los paquetes ejecutando primero

Y luego

Esto puede tardar un poco dependiendo de la última vez que actualizaste el sistema y de tu conexión a Internet.

Para actualizar Node-RED a la versión 0.20 en una Raspberry Pi sigue los siguientes pasos.

Abre un terminal de Raspbian

Abre la terminal de Raspbian y ejecuta el siguiente comando.

Si quieres profundizar en el funcionamiento de GitHub entra aquí.

Antes de continuar te preguntará si realmente quieres hacer eso. Escribe y y pulsa la tecla Enter.

Esto inicia el proceso de instalación que puede tardar varios minutos, ten paciencia.

Cuando termine de instalar te mostrará un mensaje parecido al que aparece en la siguiente imagen indicando que todo ha ido bien. Además puedes comprobar como se ha instalado la versión 0.20.

Con esto ya tendrías instalada la última versión de Node-RED en tu ordenador. Ahora sólo queda una cosa y es iniciar Node-RED desde la terminal.

Ejecuta el siguiente comando.

Esto iniciará Node-RED. Ahora si entras a la interfaz gráfica y accedes de nuevo al menú, verás que Node-RED se ha actualizado.

Ahora que ya tenemos actualizado Node-RED vamos a ver las novedades que incorpora la versión 0.20.

Novedades Node-RED 0.20

La primera novedad es que por primera vez han estado trabajando con algunas versiones beta. Esta versión la han ido probando los beta tester y según el feedback se ha ido mejorando.

Según el equipo de Node-RED, este será el camino a seguir en las próximas versiones.

Respecto a NodeJS, Node-RED 0.20 requiere de la versión 8.x o 10.x, ya no soporta la ejecución en versiones más antiguas de NodeJS.

Novedades en la interfaz gráfica

En la interfaz gráfica encontramos bastantes novedades. Vamos a ir viendo cada una de ellas con detalle.

Editor de nodos

El editor de nodos incorpora dos nuevas pestañas a parte de la pestaña principal de propiedades. Una pestaña para descripción y otra pestaña para apariencia.

En la pestaña de descripción puedes describir lo que hace el nodo a través de un editor Markdown. También tienes la posibilidad de ver en tiempo real lo que estás escribiendo.

En la pestaña de apariencia puedes cambiar el icono del nodo eligiendo entre múltiples iconos y ocultar la etiqueta para hacer el nodo más pequeño.

Barra de pestañas

En la barra donde aparecen todas las pestañas ahora tenemos más funcionalidades para poder elegir entre una pestaña cuando tenemos muchas pestañas creadas.

Se puede abrir un listado de flows o flujos donde podemos incluso buscar entre todos los flows (cada flow corresponde con una pestaña).

Cada vez que seleccionamos una pestaña en este listado se activa y nos permite saltar de pestaña en pestaña más fácilmente.

Para crear una nueva pestaña ahora también puedes hacer doble click en el hueco entre las pestañas.

Otra novedad es que puedes seleccionar varios flows que te permite exportarlos de una forma sencilla.

Para ganar espacio en el editor de flows ahora la paleta de nodos puede ser ocultada como la barra lateral de información de la derecha.

Cuadro de diálogo para agregar nodos de forma rápida

Se ha añadido un modo rápido de agregar nodos pulsando la tecla Ctrl y el botón derecho del ratón. Esto muestra la lista de nodos y un buscador para añadir rápidamente cualquier nodo o subflow.

Mejoras en los subflows

Empezamos recordando lo que es un subflow. Se trata de un conjunto de nodos que se agrupan en un solo nodo. Es como si fuera una función de un lenguaje de programación.

Se utilizan para reducir la complejidad visual del flow o para reutilizar la funcionalidad de un grupo de nodos.

Una vez se crea, se agrega a la paleta de nodos y se puede utilizar como si fuera un nodo normal.

Una de las mejoras es que podemos utilizar un node de estado dentro de los subflows. Más o menos hacen la misma función que están haciendo en otros nodos como el de MQTT cuando indica que está online o offline.

En este caso puedes indicar lo que más te convenga.

Otra de las mejoras es que ahora desde los subflows se puede acceder al contexto del flow padre utilizando $parent. Es una forma de transmitir información entre flows y subflows.

Otra de las mejoras en este aspecto es que se pueden crear variables de entorno dentro de los subflows. Estas variables de entorno pueden ser customizadas para cada instancia de ese subflow.

Sería como una propiedad de una clase que según el objeto, puede tener un valor u otro. Imagínate que tenemos una variable de entorno que es el nombre.

Cuando utilizamos una instancia de ese subflow damos un valor a esa variable por ejemplo, nodoprincipal. Pero luego creamos otra instancia y la llamamos nodosecundario.

Esto hace que los subflows sean más fáciles de reutilizar.

Mejoras en los nodos link

Los nodos link se incorporaron en la versión 0.14 y son dodos que te ayudan a organizar mejor los flows. Permiten crear un cable virtual entre un nodo link de inicio y un nodo link de final.

Esto también incluye otros flows es decir, puedes enlazar nodos entre diferentes flows gracias a estos nodos.

Antes para trabajar con estos nodos se hacía de forma manual, doble click sobre el nodo link y seleccionar a qué nodo quieres enlazar.

La nueva mejora permite trabajar de forma normal como si fuera otro nodo más. Cuando seleccionas un nodo link inicial te propondrá a qué otros nodos link puedes enlazar.

Mejoras en el menú deploy

Se ha incorporado una nueva opción en el menú Deploy que permite reiniciar el deploy actual y reiniciar la ejecución.

Hasta ahora, si querías reiniciar la ejecución de nuevo tenías que hacer una modificación ficticia y hacer un deploy. Por ejemplo, mover un nodo un poco y luego aplicar deploy.

Ahora con esta nueva opción ya no tienes que hacer nada de eso.

Mejoras en los nodos

Algunos de los nodos han sufrido mejoras tanto en funcionalidad como en rendimiento.

Nodo catch

El nodo catch es el encargado de detectar cualquier tipo de error en un flow. Si ya has programado en algún lenguaje de alto nivel te sonará la típica estructura try catch.

Este nodo hace más o menos lo mismo. Sin embargo, en esta última actualización a la versión 0.20 se ha añadido funcionalidades para detectar y manejar errores.

Por ejemplo, puedes tener un nodo catch para detectar errores de nodos específicos y luego otro que detecte el resto de errores. Esto te permite afinar más en la captura de los errores.

Nodo HTTP request

El nodo HTTP request ahora permite codificar msg.payload como un parámetro query string de la url en las peticiones GET.

Otra novedad es que ahora el nodo HTTP request también soporta los modos de autenticaciónBearer (basada en Tokens) y Digest (con usuario y contraseña). Hasta ahora sólo permitía la autenticación básica.

Otra novedad con respecto al nodo HTTP request es que es más sencillo configurar el sistema para subir archivos a través de peticiones HTTP. Sólo hay que indicar que el nodo acepta subida de archivos para configurar el formato correcto.

Nodo MQTT

Se trata de uno de los nodos más utilizados cuando trabajamos con Node-RED como puente entre Arduino o ESP8266 y alguna plataforma en la nube.

Este nodo ahora tiene una novedad muy interesante y es que permite recibir directamente mensajes en formato JSON y parsearlo en un objeto. Hasta ahora esto lo teníamos que hacer manualmente.

Si realmente estás seguro que lo que vas a recibir en un nodo de entrada MQTT es en formato JSON, puedes seleccionar la salida como a parsed JSON object.

Eso sí, en el caso de que no sea en formato JSON emitirá un error que podrá ser recogido con un nodo catch.

Nodo escribir archivo

Ahora en el nodo que nos permite escribir archivos en disco podemos elegir la codificación con la que queremos guardar el archivo.

Nuevos modo seguro

Hay veces que por una mala programación o lógica los flows o Node-RED se quedan colgados. El funcionamiento normal para iniciar Node-RED ejecuta automáticamente todos los flows.

Esto puede hacer que sea imposible modificar lo que está mal en algunas ocasiones. El nuevo modo seguro te permite iniciar Node-RED sin que se ejecuten los flows. Así tendrás tiempo para corregir los posibles errores.

Una vez termines, al hacer deploy guardará los cambios, saldrá del modo seguro y ejecutará los flows.

Para ejecutar el modo seguro sólo tienes que añadir el parámetro –safe al comando node-red-start.

Mejoras de rendimiento

Se han aplicado algunas mejoras de rendimiento en los nodos change, switch y join especialmente si utilizan variables del contexto o expresiones JSONata.

Según la web oficial de Node-RED se ha conseguido mejorar el rendimiento en tiempo en un poco menos de la mitad. Ahora parece que estos nodos van mucho mejor.

Conclusiones novedades Node-RED

Poco a poco la comunidad detrás de Node-RED está creciendo. Esto se va notando tanto en el foro de discusión de la web oficial como en las nuevas versiones que poco a poco van surgiendo.

Pero ¿hasta donde van a llegar?

Hace tiempo Nick O’Leary (el genio detrás de esta herramienta) publicó un artículo donde habla de la hoja de ruta hacia la versión 1.0 de Node-RED. El futuro es prometedor.

Habrá mejoras en los proyectos donde podamos tener un conjunto de archivos que representen el proyecto completo para poder distribuir y compartir.

Otra mejora que se espera con la versión 1.0 es un control de versiones de los flows dentro del editor de Node-RED.

Estas son solo un par de mejoras que nos esperan a lo largo de todo este año porque la versión 1.0 está pensada que salga a finales de 2019.

Desde estaré atento a las novedades para compartirlas contigo.

Cualquier duda o cualquier sugerencia la puedes dejar en los comentarios de este artículo.

Información complementaria

Aquí tienes enlaces con información complementaria a este artículo:

Salir de la versión móvil