Skip to main content

reTerminal DM con Node Red y BACnet TCP

Introducción

BACnet IP (Building Automation and Control Network over IP) es un protocolo de comunicación diseñado para gestionar y automatizar sistemas de edificios. Permite que dispositivos de diferentes fabricantes interoperen sin problemas a través de redes IP estándar, mejorando la integración del sistema y la flexibilidad. Las principales ventajas de BACnet IP en Sistemas de Gestión de Edificios (BMS) incluyen escalabilidad mejorada, instalación y mantenimiento más fáciles, y la capacidad de aprovechar la infraestructura de red existente. BACnet IP también soporta intercambio de datos en tiempo real, facilitando un mejor monitoreo y control de los sistemas de edificios. Esto resulta en mayor eficiencia energética, costos operativos reducidos, y mayor comodidad y seguridad para los ocupantes.

Comenzando

Antes de iniciar este proyecto, es posible que necesites preparar tu hardware y software con anticipación como se describe aquí.

Hardware

Preparación del Software

Hemos preparado una Guía de inicio en Node-RED. Se recomienda que revises esta guía antes de proceder con el wiki.

YABE

Por favor ve a este enlace y descarga YABE (Yet Another BACnet Explorer). YABE es una herramienta versátil que te permite simular y explorar dispositivos BACnet, haciéndola ideal para propósitos de prueba y desarrollo. Una vez descargado e instalado en tu PC Host, YABE se utilizará para simular datos de temperatura ambiente, los cuales luego leeremos y procesaremos usando Node-RED en el reTerminal DM.

Configurar ajustes de Ethernet para BACnet IP

Dado que el dominio IP de tu dispositivo es diferente de tus configuraciones inalámbricas, es posible que tengas que cambiar la configuración IP manualmente. Para eso,

  • Paso 01: Ejecuta el siguiente comando:
sudo nano /etc/dhcpcd.conf
  • Paso 02: Luego configure los ajustes del puerto Ethernet según el dominio de red de su PLC/Dispositivo y establezca prioridades usando el comando metric. La métrica más baja tiene la prioridad más alta.

Instalar nodo BACnet

  1. Abrir Node-RED: Inicie Node-RED en su reTerminal. Normalmente puede acceder abriendo un navegador web y navegando a http://<su-ip-reTerminal-DM>:1880.

  2. Acceder a Gestionar Paleta: En la esquina superior derecha de la interfaz de Node-RED, haga clic en las tres líneas horizontales (menú) para abrir el menú principal. Del menú desplegable, seleccione "Manage palette."

  3. Instalar Nuevos Nodos: En la ventana "Manage palette", vaya a la pestaña "Install".

  4. Buscar el Paquete: En el cuadro de búsqueda, escriba node-red-contrib-bacnet-extended para encontrar el paquete.

  5. Instalar el Paquete: Una vez que vea node-red-contrib-bacnet-extended en la lista de nodos disponibles, haga clic en el botón "Install" junto a él. Esto iniciará el proceso de instalación.

  6. Esperar a que se Complete la Instalación: La instalación puede tomar unos momentos. Una vez que esté completa, debería ver un mensaje de confirmación.

  7. Verificar la Instalación: Después de que la instalación esté completa, los nodos BACnet estarán disponibles en la paleta de Node-RED. Puede verificar esto revisando la lista de nodos en la barra lateral izquierda del editor de Node-RED.

Ahora, ha instalado exitosamente node-red-contrib-bacnet-extended y puede comenzar a usarlo para integrar dispositivos BACnet con sus flujos de Node-RED.

Iniciar Simulador de Controlador de Temperatura de Habitación

Una vez que haya instalado YABE, navegue a la carpeta add-on y haga doble clic en bacnet.Room.Simulator para iniciarlo.

Una vez hecho, necesita iniciar YABE.

Luego, haga clic en la marca + para agregar un dispositivo e ingrese la dirección IP del puerto Ethernet de su PC. Haga clic en "Start."

note

Es posible que necesites configurar la dirección IP del puerto Ethernet para asegurarte de que esté en el mismo dominio de red tanto que el reTerminal DM como tu PC.

Después de eso, deberías poder ver el dispositivo con el mismo ID de dispositivo que el simulador de temperatura ambiente.

Descubrir Dispositivos IP BACnet

  1. Nodos Requeridos: Necesitarás los siguientes cuatro nodos:

    • Inject
    • Function
    • Discover-devices
    • Debug
  2. Añadir Nodos al Flujo: Arrastra y suelta los nodos anteriores en tu flujo del banco de trabajo de Node-RED.

  3. Conectar los Nodos: Conecta los nodos de la siguiente manera:

    • Inject >>> Function >>> Discover-devices >>> Debug
  1. Configurar el Nodo Function: Haz doble clic en el nodo Function para abrir su diálogo de configuración. En el bloque de función, escribe el siguiente código:

    msg.reuseAddr = true;
    msg.transportClosedDuration = 8000;
    return msg;
  1. Desplegar el Flujo: Haz clic en el botón "Deploy" en la esquina superior derecha de la interfaz de Node-RED para desplegar el flujo.

  2. Activar el Descubrimiento de Dispositivos: Haz clic en el botón de timestamp (nodo Inject) para iniciar el proceso de descubrimiento.

  3. Verificar la Salida de Debug: Espera a que aparezca la salida en la ventana de Debug. Verás la IP del dispositivo y el ID del dispositivo en el mensaje de debug.

Leer Todos los Parámetros del Dispositivo

Para leer todos los parámetros de dispositivos BACnet usando Node-RED, sigue estos pasos:

  1. Preparar Nodos:

    • Necesitarás cuatro nodos: Inject, Function, Read-All-Devices y Debug.
  2. Añadir Nodos al Banco de Trabajo:

    • Arrastra y suelta los nodos Inject, Function, Read-All-Devices y Debug en tu banco de trabajo.
  3. Conectar Nodos:

    • Conecta los nodos en el siguiente orden:

      Inject >>>> Function >>>> Read-All-Devices >>>> Debug
  1. Configurar el Nodo Function:

    • Haz doble clic en el nodo Function para abrir su ventana de configuración.
    • Ingresa el siguiente código en el bloque de función:
    msg.reuseAddr = true;
    msg.transportClosedDuration = 8000;
    return msg;
  1. Desplegar el Flujo:

    • Haz clic en el botón "Deploy" en la esquina superior derecha de la interfaz de Node-RED para desplegar el flujo.
  2. Iniciar la Lectura de Parámetros del Dispositivo:

    • Haz clic en el botón de timestamp en el nodo Inject para iniciar el proceso.
  3. Verificar la Salida:

    • Espera a que aparezca la salida en la ventana de Debug. Verás los parámetros de los dispositivos en el área de red BACnet.

Esta configuración leerá todos los parámetros de dispositivos BACnet en tu red y los mostrará en la ventana de Debug de Node-RED.

Leer datos de un solo dispositivo

  1. Preparar Nodos:

    • Necesitarás cuatro nodos: Inject, Function, Read-All-Devices y Debug.
  2. Añadir Nodos al Banco de Trabajo:

    • Arrastra y suelta los nodos Inject, Function, Read-Single-Device y Debug en tu banco de trabajo.
  3. Conectar Nodos:

    • Conecta los nodos en el siguiente orden:

      Inject >>>> Function >>>> Read-Single-Device >>>> Debug
  1. Configurar el Nodo Function:

    • Haz doble clic en el nodo Function para abrir su ventana de configuración.
    • Ingresa el siguiente código en el bloque de función:
       msg.deviceId=DeviceID;
    msg.address="IP:PORT ADD";
    return msg;
  1. Desplegar el Flujo:

    • Haz clic en el botón "Deploy" en la esquina superior derecha de la interfaz de Node-RED para desplegar el flujo.
  2. Iniciar la Lectura de Parámetros del Dispositivo:

    • Haz clic en el botón de timestamp en el nodo Inject para iniciar el proceso.
  3. Verificar la Salida:

    • Espera a que aparezca la salida en la ventana de Debug. Verás los parámetros del dispositivo seleccionado en el área de red BACnet.

Leer datos de objeto particular de un solo dispositivo

  1. Preparar Nodos:

    • Necesitarás cuatro nodos: Inject, Dos nodos function, Read-Single-Device y Debug.
  2. Añadir Nodos al Banco de Trabajo:

    • Arrastra y suelta los nodos Inject, Dos nodos function, Read-Single-Device y Debug en tu banco de trabajo.
  3. Conectar Nodos:

    • Conecta los nodos en el siguiente orden:

      Inject >>>> Function >>>> Read-Single-Devices >>>> Function >>>> Debug
  1. Configurar el Nodo Function:

    • Haz doble clic en el nodo Function cerca del nodo inject para abrir su ventana de configuración.
    • Ingresa el siguiente código en el bloque de función:
       msg.deviceId=DeviceID;
    msg.address="IP:PORT ADD";
    return msg;
    • Haz doble clic en el nodo Function cerca del nodo debug para abrir su ventana de configuración.
    • Ingresa el siguiente código en el bloque de función:
       const objects = msg.payload['OBJECT_LIST(76)'];
    let temperatureIndoor = null;

    for (let obj of objects) {
    if (obj['OBJECT_NAME(77)'] === 'Temperature.Indoor' && obj['OBJECT_TYPE(79)'] === 'ANALOG_INPUT(0)') {
    temperatureIndoor = obj['PRESENT_VALUE(85)'];
    break;
    }
    }

    if (temperatureIndoor !== null) {
    msg.payload = { 'Temperature.Indoor': temperatureIndoor };
    } else {
    msg.payload = { error: 'Temperature.Indoor not found' };
    }

    return msg;

  1. Desplegar el Flujo:

    • Haz clic en el botón "Deploy" en la esquina superior derecha de la interfaz de Node-RED para desplegar el flujo.
  2. Iniciar la Lectura de Parámetros del Dispositivo:

    • Haz clic en el botón de marca de tiempo en el nodo Inject para iniciar el proceso.
  3. Verificar la Salida:

    • Espera a que aparezca la salida en la ventana Debug. Verás los parámetros de solo el objeto particular en el dispositivo seleccionado en el área de red BACnet.

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...