Actualizaciones:

  • 2023-03-01: Revisión del documento y corrección de errores.
  • 2023-03-02: Integración con HA

Introducción

Node-RED es una herramienta de programación para conectar dispositivos de hardware, API y servicios en línea de formas nuevas e interesantes.

Proporciona un editor basado en navegador que facilita la conexión de flujos mediante la amplia gama de nodos de la paleta que se pueden ejecutar con un solo clic.

Node-RED

Instalación

La instalación en Docker se realiza usando la imagen nodered/node-red.

La forma más sencilla es usar un fichero docker-compose.yml con el siguiente contenido:

version: "3"
services:
  node-red:
    image: nodered/node-red:latest
    container_name: node-red
    environment:
      - TZ=Europe/Madrid
    volumes:
      - /home/pi/volumes/node-red:/data
    ports:
      - 1880:1880
    restart: unless-stopped

Se puede usar docker-compose up -d o usar el contenido del fichero en Portainer.

Configuración

Una vez en marcha, se puede acceder a Node-RED a través del puerto 1880 (en este ejemplo http://192.168.1.180:1880) y comenzar la configuración.

Una opción recomendable, además de utilizar HTTPS, es utilizar la autenticación de usuarios.

Para ello hay que descomentar esta sección del fichero settings.js para disponer de un usuario admin con todos los privilegios:

    adminAuth: {
        type: "credentials",
        users: [{
            username: "admin",
            password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
            permissions: "*"
        }]
    },

Para generar la contraseña de este usuario hay que utilizar la herramienta node-red de la siguiente manera::

pi@pi4nas:~ $ docker exec -it node-red node-red admin hash-pw
Password:
$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.

A continuación se reinicia el contenedor para utilizar la nueva configuración.

Integración con HA

La integración de Node-RED con Home Assistant se reliza utilizando HACS:

  • HACS → Integrations
  • Pulsar el botón Explore & Download Repositories
  • Buscar Node-RED Companion y seleccionarlo
  • Pulsar el botón Download
  • Elegir la versión y pulsar en Download de nuevo
  • Reiniciar Home Assistant
  • Settings → Devices & Services
  • Pulsar el botón Add integration
  • Buscar la integración Node-RED Companion y seleccionarla
  • Pulsar el botón Submit para agregarla

A continuación es necesario agregar un módulo en Node-RED que permitirá comunicarse a través de websockets y una API REST:

  • Menú → Manage Palette
  • Seleccionar la pestaña Install
  • Buscar node-red-contrib-home-assistant-websocket y seleccionarlo
  • Oulsar el botón Install

Al cabo de unos segundos se habrán añadido 27 nuevos nodos a la paleta de Node-RED:

Paleta HA Websockets

Actualizar

Si ya se había instalado Node-RED anteriormente, se puede actualizar de la siguiente manera:

docker stop node-red
docker rm node-red
docker rmi nodered/node-red
docker-compose up -d

Soporte

Algunos comandos para gestionar la configuración del contenedor:

# Acceder al shell mientras el contenedor está ejecutándose
docker exec -it node-red /bin/bash

# Monitorizar los logs del contenedor en tiempo real
docker logs -f node-red

Referencias