Edge Box RPi 200 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í.
Preparación del Hardware
Edge Box RPi 200 |
---|
![]() |
Preparación del Software
Edge Box llega a tus manos preinstalado con Raspberry Pi OS. Si estás iniciando este dispositivo por primera vez, por favor lee nuestra Wiki de Introducción. Hemos preparado una Guía de Introducción sobre Node-RED. Se recomienda que revises esta guía antes de proceder con la wiki. En este tutorial, vamos a conectar la PC Host ejecutando el simulador de temperatura ambiente YABE con Node-RED ejecutándose en Edge Box.
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 será usado para simular datos de temperatura ambiente, los cuales luego leeremos y procesaremos usando Node-RED en el Edge Box.
Configurar ajustes de Ethernet para BACnet IP
Dado que el dominio IP de tu dispositivo es diferente de tus configuraciones inalámbricas, puede 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 Dispositivo y establezca prioridades usando el comando metric. La métrica más baja tiene la prioridad más alta. Luego conecte Edge Box y Dispositivo.
Instalar nodo BACnet
-
Abrir Node-RED: Inicie Node-RED en su Edge Box. Normalmente puede acceder a él abriendo un navegador web y navegando a
http://<su-ip-edgebox>:1880
. -
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."
-
Instalar Nuevos Nodos: En la ventana "Manage palette", vaya a la pestaña "Install".
-
Buscar el Paquete: En el cuadro de búsqueda, escriba
node-red-contrib-bacnet-extended
para encontrar el paquete. -
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. -
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.
-
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."
You might need to configure the Ethernet port IP address to ensure it is in the same network domain as both the EdgeBox and your 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
-
Nodos Requeridos: Necesitarás los siguientes cuatro nodos:
- Inject
- Function
- Discover-devices
- Debug
-
Añadir Nodos al Flujo: Arrastra y suelta los nodos anteriores en tu flujo del banco de trabajo de Node-RED.
-
Conectar los Nodos: Conecta los nodos de la siguiente manera:
- Inject >>> Function >>> Discover-devices >>> Debug
-
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;
-
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.
-
Activar el Descubrimiento de Dispositivos: Haz clic en el botón de timestamp (nodo Inject) para iniciar el proceso de descubrimiento.
-
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:
-
Preparar Nodos:
- Necesitarás cuatro nodos: Inject, Function, Read-All-Devices y Debug.
-
Añadir Nodos al Banco de Trabajo:
- Arrastra y suelta los nodos Inject, Function, Read-All-Devices y Debug en tu banco de trabajo.
-
Conectar Nodos:
-
Conecta los nodos en el siguiente orden:
Inject >>>> Function >>>> Read-All-Devices >>>> Debug
-
-
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;
-
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.
-
Iniciar la Lectura de Parámetros del Dispositivo:
- Haz clic en el botón de timestamp en el nodo Inject para iniciar el proceso.
-
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
-
Preparar Nodos:
- Necesitarás cuatro nodos: Inject, Function, Read-All-Devices y Debug.
-
Añadir Nodos al Banco de Trabajo:
- Arrastra y suelta los nodos Inject, Function, Read-Single-Device y Debug en tu banco de trabajo.
-
Conectar Nodos:
-
Conecta los nodos en el siguiente orden:
Inject >>>> Function >>>> Read-Single-Device >>>> Debug
-
-
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;
-
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.
-
Iniciar la Lectura de Parámetros del Dispositivo:
- Haz clic en el botón de timestamp en el nodo Inject para iniciar el proceso.
-
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
-
Preparar Nodos:
- Necesitarás cuatro nodos: Inject, Dos nodos function, Read-Single-Device y Debug.
-
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.
-
Conectar Nodos:
-
Conecta los nodos en el siguiente orden:
Inject >>>> Function >>>> Read-Single-Devices >>>> Function >>>> Debug
-
-
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;
-
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.
-
Iniciar la Lectura de Parámetros del Dispositivo:
- Haz clic en el botón de timestamp en el nodo Inject para iniciar el proceso.
-
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 satisfacer diferentes preferencias y necesidades.