Edge Box RPi 200 com Node Red e BACnet TCP
Introdução
BACnet IP (Building Automation and Control Network over IP) é um protocolo de comunicação projetado para gerenciar e automatizar sistemas prediais. Ele permite que dispositivos de diferentes fabricantes interoperem de forma transparente em redes IP padrão, aumentando a integração e a flexibilidade do sistema. As principais vantagens do BACnet IP em Sistemas de Gerenciamento Predial (BMS) incluem melhor escalabilidade, instalação e manutenção mais fáceis e a capacidade de aproveitar a infraestrutura de rede existente. O BACnet IP também oferece suporte à troca de dados em tempo real, facilitando um melhor monitoramento e controle dos sistemas prediais. Isso resulta em maior eficiência energética, redução de custos operacionais e maior conforto e segurança para os ocupantes.
Iniciando
Antes de começar este projeto, você pode precisar preparar seu hardware e software com antecedência, conforme descrito aqui.
Preparação de Hardware
| Edge Box RPi 200 |
|---|
![]() |
Preparação de Software
O Edge Box chega até você com o Raspberry Pi OS pré-instalado. Se você estiver inicializando este dispositivo pela primeira vez, leia nosso Wiki de Primeiros Passos. Nós preparamos um Guia de Primeiros Passos no Node-RED. Recomenda-se que você revise este guia antes de prosseguir para este wiki. Neste tutorial, vamos conectar o PC Host executando o simulador de temperatura de ambiente YABE ao Node-RED executando no Edge Box.
YABE
Acesse este link e baixe o YABE (Yet Another BACnet Explorer). O YABE é uma ferramenta versátil que permite simular e explorar dispositivos BACnet, sendo ideal para fins de teste e desenvolvimento. Depois de baixado e instalado no seu PC Host, o YABE será usado para simular dados de temperatura de ambiente, que então iremos ler e processar usando o Node-RED no Edge Box.
Configurar as definições de Ethernet para BACnet IP
Como o domínio de IP do seu Dispositivo é diferente das suas definições de rede sem fio, talvez você tenha que alterar a configuração de IP manualmente. Para isso,
- Passo 01: Execute o seguinte comando:
sudo nano /etc/dhcpcd.conf
- Passo 02: Em seguida, configure as definições da porta Ethernet de acordo com o domínio de rede do seu Dispositivo e defina prioridades usando o comando metric. O menor valor de metric tem a maior prioridade. Então conecte o Edge Box e o Dispositivo.
Instalar o nó BACnet
-
Abrir o Node-RED: Inicie o Node-RED no seu Edge Box. Você normalmente pode acessá-lo abrindo um navegador web e navegando para
http://<your-edgebox-ip>:1880. -
Acessar o Manage Palette: No canto superior direito da interface do Node-RED, clique nas três linhas horizontais (menu) para abrir o menu principal. No menu suspenso, selecione "Manage palette".
-
Instalar Novos Nós: Na janela "Manage palette", vá para a aba "Install".
-
Procurar pelo Pacote: Na caixa de pesquisa, digite
node-red-contrib-bacnet-extendedpara localizar o pacote. -
Instalar o Pacote: Quando você vir
node-red-contrib-bacnet-extendedna lista de nós disponíveis, clique no botão "Install" ao lado dele. Isso iniciará o processo de instalação. -
Aguardar a Conclusão da Instalação: A instalação pode levar alguns momentos. Quando estiver concluída, você deverá ver uma mensagem de confirmação.
-
Verificar a Instalação: Depois que a instalação for concluída, os nós BACnet estarão disponíveis na paleta do Node-RED. Você pode verificar isso consultando a lista de nós na barra lateral esquerda do editor Node-RED.
Agora, você instalou com sucesso o node-red-contrib-bacnet-extended e pode começar a usá-lo para integrar dispositivos BACnet com seus fluxos no Node-RED.
Iniciar o Simulador de Controle de Temperatura de Ambiente
Depois de instalar o YABE, navegue até a pasta add-on e clique duas vezes em bacnet.Room.Simulator para iniciá-lo.
Feito isso, você precisa iniciar o YABE.

Em seguida, clique no ícone + para adicionar um dispositivo e insira o endereço IP da porta Ethernet do seu PC. Clique em "Start".
Talvez você precise configurar o endereço IP da porta Ethernet para garantir que ele esteja no mesmo domínio de rede tanto do EdgeBox quanto do seu PC.
Depois disso, você deverá conseguir ver o dispositivo com o mesmo ID de dispositivo que o simulador de temperatura de ambiente.
Descobrir Dispositivos BACnet IP
-
Nós Necessários: Você precisará dos seguintes quatro nós:
- Inject
- Function
- Discover-devices
- Debug
-
Adicionar Nós ao Fluxo: Arraste e solte os nós acima no fluxo da sua bancada de trabalho do Node-RED.
-
Conectar os Nós: Conecte os nós da seguinte maneira:
- Inject >>> Function >>> Discover-devices >>> Debug
-
Configurar o Nó Function: Clique duas vezes no nó Function para abrir sua caixa de diálogo de configuração. No bloco de função, escreva o seguinte código:
msg.reuseAddr = true;
msg.transportClosedDuration = 8000;
return msg;
-
Implantar o Fluxo: Clique no botão "Deploy" no canto superior direito da interface do Node-RED para implantar o fluxo.
-
Acionar a Descoberta de Dispositivos: Clique no botão de carimbo de data/hora (nó Inject) para iniciar o processo de descoberta.
-
Verificar a Saída de Depuração: Aguarde a saída aparecer na janela Debug. Você verá o IP do dispositivo e o ID do dispositivo na mensagem de depuração.

Ler Todos os Parâmetros do Dispositivo
Para ler todos os parâmetros de dispositivos BACnet usando o Node-RED, siga estes passos:
-
Preparar Nós:
- Você precisará de quatro nós: Inject, Function, Read-All-Devices e Debug.
-
Adicionar Nós à Bancada:
- Arraste e solte os nós Inject, Function, Read-All-Devices e Debug na sua bancada.
-
Conectar os Nós:
-
Conecte os nós na seguinte ordem:
Inject >>>> Function >>>> Read-All-Devices >>>> Debug
-
-
Configurar o Nó Function:
- Clique duas vezes no nó Function para abrir sua janela de configuração.
- Insira o seguinte código no bloco de função:
msg.reuseAddr = true;
msg.transportClosedDuration = 8000;
return msg;
-
Implantar o Fluxo:
- Clique no botão "Deploy" no canto superior direito da interface do Node-RED para implantar o fluxo.
-
Iniciar a Leitura de Parâmetros dos Dispositivos:
- Clique no botão de carimbo de data/hora no nó Inject para iniciar o processo.
-
Verificar a Saída:
- Aguarde a saída aparecer na janela Debug. Você verá os parâmetros dos dispositivos na área de rede BACnet.
Esta configuração lerá todos os parâmetros dos dispositivos BACnet na sua rede e os exibirá na janela Debug do Node-RED.


Ler dados de um único dispositivo
-
Preparar Nós:
- Você precisará de quatro nós: Inject, Function, Read-All-Devices e Debug.
-
Adicionar Nós à Bancada:
- Arraste e solte os nós Inject, Function, Read-Single-Device e Debug na sua bancada.
-
Conectar os Nós:
-
Conecte os nós na seguinte ordem:
Inject >>>> Function >>>> Read-Single-Device >>>> Debug
-
-
Configurar o Nó Function:
- Clique duas vezes no nó Function para abrir sua janela de configuração.
- Insira o seguinte código no bloco de função:
msg.deviceId=DeviceID;
msg.address="IP:PORT ADD";
return msg;
-
Implantar o Fluxo:
- Clique no botão "Deploy" no canto superior direito da interface do Node-RED para implantar o fluxo.
-
Iniciar leitura de parâmetros do dispositivo:
- Clique no botão de carimbo de data/hora (
timestamp) no nó Inject para iniciar o processo.
- Clique no botão de carimbo de data/hora (
-
Verificar a saída:
- Aguarde a saída aparecer na janela Debug. Você verá os parâmetros do dispositivo selecionado na área de rede BACnet.

Ler dados de um objeto específico de um único dispositivo
-
Preparar nós:
- Você precisará de quatro nós: Inject, dois nós Function, Read-Single-Device e Debug.
-
Adicionar nós à área de trabalho:
- Arraste e solte os nós Inject, dois nós Function, Read-Single-Device e Debug na sua área de trabalho.
-
Conectar nós:
-
Conecte os nós na seguinte ordem:
Inject >>>> Function >>>> Read-Single-Devices >>>> Function >>>> Debug
-
-
Configurar o nó Function:
- Dê um clique duplo no nó Function próximo ao nó Inject para abrir a janela de configuração.
- Insira o seguinte código no bloco function:
msg.deviceId=DeviceID;
msg.address="IP:PORT ADD";
return msg;- Dê um clique duplo no nó Function próximo ao nó Debug para abrir a janela de configuração.
- Insira o seguinte código no bloco function:
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;
-
Implantar o fluxo:
- Clique no botão "Deploy" no canto superior direito da interface do Node-RED para implantar o fluxo.
-
Iniciar leitura de parâmetros do dispositivo:
- Clique no botão de carimbo de data/hora (
timestamp) no nó Inject para iniciar o processo.
- Clique no botão de carimbo de data/hora (
-
Verificar a saída:
- Aguarde a saída aparecer na janela Debug. Você verá os parâmetros apenas do objeto específico no dispositivo selecionado na área de rede BACnet.

Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.
