Um gêmeo digital de HVAC é um modelo de software vivo das suas unidades de tratamento de ar, chillers e bombas, alimentado por dados reais de sensores, para que você veja como a central se comporta e onde ela desperdiça energia. Neste artigo você vai projetar um de ponta a ponta: extrair pontos de controladores BACnet, publicá-los via MQTT, estruturar a árvore de topics e executar análises que encontram aquecimento e resfriamento simultâneos, delta-T baixo no chiller e setpoints à deriva. Tudo usa ferramentas abertas e um broker MQTT padrão.
Por Que o HVAC Combina Naturalmente com um Gêmeo Digital
O aquecimento, ventilação e ar-condicionado costuma ser um dos maiores consumidores de energia em edifícios comerciais, como torres corporativas, shoppings e hospitais em cidades quentes como São Paulo ou Manaus, e grande parte do desperdício é invisível. Uma válvula com vazamento, um damper do economizador travado fechado ou um chiller operando com uma diferença de temperatura ruim raramente disparam um alarme no sistema de gerenciamento predial (BMS). O edifício continua confortável enquanto o medidor de energia sobe silenciosamente.
Um gêmeo digital torna esses problemas visíveis combinando três coisas:
- Dados ao vivo de todos os pontos relevantes: temperaturas, pressões, posições de válvulas e dampers, velocidades de ventiladores e potência.
- Um modelo de como cada ativo deveria se comportar: delta-T de projeto, potência esperada do ventilador em determinada velocidade, a sequência de operação.
- Uma lógica de comparação que sinaliza a diferença entre o comportamento esperado e o real.
O gêmeo não substitui o BMS. O BMS continua controlando a central; o gêmeo observa, analisa e recomenda. Se você é novo no conceito, comece pelo nosso guia principal sobre tecnologia de gêmeo digital.
Arquitetura de Referência
BACnet/IP controllers (AHU, chiller, VAV, meters)
|
| BACnet ReadProperty / COV
v
BACnet-to-MQTT gateway (edge PC, industrial gateway or Node-RED)
|
| MQTT over TLS, port 8883
v
Cloud MQTT broker (ConnectMQ)
|
+--> Python analytics service (subscriber) -> publishes KPIs and faults
+--> Dashboards and 3D views (WebSocket, port 8084)
+--> Time-series database via Telegraf or a custom subscriber
O gateway é o único componente que fala BACnet. Tudo acima dele fala MQTT, o que desacopla análises, dashboards e armazenamento da rede do edifício. Vários gateways comerciais e opções open source conseguem fazer polling de objetos BACnet e publicá-los como mensagens MQTT; Node-RED com um nó BACnet da comunidade é uma escolha popular para pilotos.
Mantenha o gateway somente leitura no início. Gravar setpoints de volta no BMS é possível, mas deve vir depois, quando as recomendações do gêmeo tiverem conquistado confiança, e com um controle de mudanças adequado.
Pontos a Coletar
Você não precisa de todos os pontos do BMS. Comece pelos que determinam energia e conforto:
| Ativo | Pontos principais | O que revelam |
|---|---|---|
| Unidade de tratamento de ar | Temperatura do ar de insuflamento, do ar de retorno, do ar de mistura e do ar externo | Desempenho do economizador, aquecimento e resfriamento simultâneos |
| Unidade de tratamento de ar | Posições das válvulas de resfriamento e de aquecimento, posição do damper de ar externo | Válvulas com vazamento, dampers travados |
| Unidade de tratamento de ar | Velocidade e potência do ventilador de insuflamento, pressão estática no duto, pressão diferencial do filtro | Energia do ventilador, oportunidades de reset da pressão estática, saturação do filtro |
| Chiller | Temperatura de alimentação e retorno da água gelada, temperaturas da água de condensação, potência (kW), status | Eficiência (kW por TR), síndrome do delta-T baixo |
| Bombas | Velocidade, potência, pressão diferencial | Bombeamento excessivo, válvulas competindo entre si |
| Zonas e VAVs | Temperatura da zona, setpoint, vazão de ar, posição do damper | Zonas problemáticas que comandam todo o sistema |
Um intervalo de polling prático para a maioria desses pontos é de um minuto. Valores que mudam rapidamente, como a potência do ventilador, podem usar assinaturas de mudança de valor (COV) do lado BACnet, com uma banda morta para que o gateway não inunde o broker.
Design de Topics para um Gêmeo Digital de HVAC
Uma hierarquia de topics consistente é o que permite que o gêmeo, os dashboards e as análises encontrem os dados sem configuração ponto a ponto. Uma estrutura no estilo ISA-95 também funciona bem para edifícios: empresa, site, área, ativo.
acme/hq-building/plant/chiller-1/telemetry
acme/hq-building/plant/chwp-1/telemetry
acme/hq-building/floor-3/ahu-3/telemetry
acme/hq-building/floor-3/ahu-3/faults
acme/hq-building/floor-3/ahu-3/kpi
Agrupe os pontos relacionados de um ativo em uma única mensagem JSON, publicada no intervalo de polling:
{
"ts": "2026-10-16T09:42:00Z",
"sat": 13.1,
"rat": 23.4,
"mat": 17.9,
"oat": 9.6,
"clg_valve": 42,
"htg_valve": 18,
"oa_damper": 20,
"fan_speed": 78,
"fan_kw": 11.2,
"filter_dp": 185
}
Os chillers seguem o mesmo padrão, com campos como chws e chwr (temperatura de alimentação e de retorno da água gelada), flow_lps (vazão em litros por segundo), kw e status, dos quais as análises abaixo dependem.
Usar uma mensagem por ativo, em vez de uma mensagem por ponto, mantém os carimbos de tempo alinhados, o que importa quando suas regras comparam vários valores no mesmo instante. A ConnectMQ reconhece hierarquias de topics no estilo ISA-95, então a visão de dispositivos do portal agrupa os ativos por nível. Nosso artigo sobre gêmeos digitais ISA-95 explica o modelo de nomenclatura em profundidade.
Análises que Encontram Desperdício de Energia
O valor do gêmeo vem de regras simples e explicáveis. O serviço Python abaixo assina todas as AHUs e chillers do edifício, aplica três verificações clássicas e publica os resultados de volta no MQTT, onde dashboards e regras de alerta podem utilizá-los.
import json
import time
import paho.mqtt.client as mqtt
BROKER = "broker.connectmq.com"
PORT = 8883
SITE = "acme/hq-building"
DESIGN_CHW_DELTA_T = 5.5 # graus C, dos dados de projeto do chiller
VALVE_OVERLAP_PCT = 10 # ambas as válvulas abertas acima disso = desperdício
ECON_OAT_MAX = 15.0 # free cooling esperado abaixo desta temperatura externa
def check_ahu(asset, d):
faults = []
if d["clg_valve"] > VALVE_OVERLAP_PCT and d["htg_valve"] > VALVE_OVERLAP_PCT:
faults.append("simultaneous_heating_cooling")
if d["oat"] < ECON_OAT_MAX and d["clg_valve"] > 20 and d["oa_damper"] < 30:
faults.append("economizer_not_used")
if d["filter_dp"] > 250:
faults.append("filter_loaded")
return {"faults": faults, "fan_kw": d["fan_kw"]}
def check_chiller(asset, d):
delta_t = d["chwr"] - d["chws"]
tons = d["flow_lps"] * 4.19 * delta_t / 3.517 # kW térmico para toneladas de refrigeração
kw_per_ton = d["kw"] / tons if tons > 1 else None
faults = []
if d["status"] == "on" and delta_t < 0.6 * DESIGN_CHW_DELTA_T:
faults.append("low_delta_t")
return {"delta_t": round(delta_t, 2),
"kw_per_ton": round(kw_per_ton, 3) if kw_per_ton else None,
"faults": faults}
def on_connect(client, userdata, flags, reason_code, properties):
print("Connected:", reason_code)
client.subscribe(f"{SITE}/+/+/telemetry", qos=1)
def on_message(client, userdata, msg):
parts = msg.topic.split("/")
area, asset = parts[2], parts[3]
data = json.loads(msg.payload)
if asset.startswith("ahu"):
result = check_ahu(asset, data)
elif asset.startswith("chiller"):
result = check_chiller(asset, data)
else:
return
base = f"{SITE}/{area}/{asset}"
client.publish(f"{base}/kpi", json.dumps(result), qos=1, retain=True)
if result["faults"]:
client.publish(f"{base}/faults", json.dumps({"ts": time.time(), "faults": result["faults"]}), qos=1)
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="YOUR_CLIENT_ID")
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set() # o repositório de CAs do sistema confia no certificado Let's Encrypt do broker
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, PORT, keepalive=60)
client.loop_forever()
As três verificações miram problemas de energia bem conhecidos em HVAC:
- Aquecimento e resfriamento simultâneos. Quando as duas válvulas de uma AHU estão abertas, a unidade está brigando consigo mesma. As causas vão de uma válvula com vazamento a uma malha de controle mal sintonizada.
- Economizador não utilizado. Se está fresco lá fora e a unidade continua em resfriamento mecânico com o damper de ar externo perto do mínimo, o free cooling está sendo desperdiçado.
- Delta-T baixo na água gelada. Um circuito de água gelada operando bem abaixo da diferença de temperatura de projeto exige mais bombeamento e muitas vezes chillers extras em operação. É uma das ineficiências mais comuns e caras em centrais de água gelada.
Cada limite aqui é um ponto de partida. Ajuste-os por ativo usando os documentos de projeto e algumas semanas de dados observados. O artigo sobre gêmeo digital de energia aprofunda o tema de linhas de base e medição de economias.
Alertas e Visualização
Como os resultados são mensagens MQTT simples, qualquer assinante pode consumi-los. No portal da ConnectMQ, você pode criar regras de alerta por limite sobre valores numéricos, por exemplo kw_per_ton ou uma temperatura do ar de insuflamento, e revisar os alertas disparados no log de alertas. As próprias mensagens de falha são melhor roteadas pelas suas próprias ferramentas: o Node-RED pode transformá-las em e-mails ou chamados, e um dashboard Grafana apoiado em um banco de dados de séries temporais pode mostrar tendências.
Para a visualização, um navegador se conecta via WebSocket seguro na porta 8084 (caminho /mqtt) e assina os topics kpi e telemetry. Uma planta baixa 2D com AHUs coloridas costuma ser mais útil para as equipes de facilities do que um modelo fotorrealista. Se você quer ver como é um gêmeo 3D ao vivo, a demo web de gêmeo digital da ConnectMQ anima uma fábrica com máquinas, tanques, bombas e esteiras atualizados via WSS, e o mesmo padrão se aplica a uma casa de máquinas.
Checklist de Implantação
- Inventário: exporte a lista de pontos do BMS e escolha os pontos da tabela acima para uma AHU e um chiller.
- Gateway: instale um gateway BACnet para MQTT na rede do edifício, somente leitura, publicando via TLS.
- Topics: defina a hierarquia e os nomes dos campos JSON antes de conectar o segundo ativo.
- Broker: crie um broker privado com credenciais por gateway e por serviço de análise.
- Validação: compare os valores do gêmeo com a interface do BMS durante um dia; corrija escalas e unidades.
- Regras: habilite as três verificações, revise as constatações semanalmente com a equipe de facilities e ajuste os limites.
- Escala: adicione as demais AHUs, bombas e zonas e depois considere casos de uso preditivos, como desgaste de filtros e rolamentos.
Para o lado da manutenção, veja gêmeo digital para manutenção preditiva e, para o panorama mais amplo do edifício, o guia de gêmeo digital de edifícios.
Considerações de Segurança
As redes prediais muitas vezes são antigas, planas e mal segmentadas, então o gateway é um ponto sensível. Coloque-o em um segmento de rede próprio, permita apenas conexões de saída para o broker na porta 8883, nunca exponha o BACnet à internet e dê a cada gateway suas próprias credenciais. Um broker MQTT gerenciado elimina totalmente a necessidade de abrir portas de entrada na rede do edifício, porque todas as conexões partem do site. Nunca publique dados reais do edifício no servidor MQTT público (gratuito); use-o apenas com valores sintéticos durante a prototipagem.
Construa Seu Gêmeo Digital de HVAC na ConnectMQ
A ConnectMQ é um broker MQTT na nuvem que transporta os dados ao vivo dos quais o seu gêmeo de HVAC depende: MQTT 3.1.1 e 5.0, TLS, WebSockets para dashboards, visões de dispositivos compatíveis com ISA-95 e alertas por limite no portal. Seus gateways, análises e dashboards se conectam como clientes MQTT padrão. Crie um broker no plano Serverless (Free) em app.connectmq.com, sem cartão de crédito, e transmita sua primeira AHU hoje mesmo.
Perguntas frequentes
O que é um gêmeo digital de HVAC?
É um modelo vivo de equipamentos de HVAC, como unidades de tratamento de ar e chillers, atualizado continuamente com dados reais de sensores e comparado com o comportamento esperado para encontrar falhas e desperdício de energia.
Preciso substituir meu BMS para construir um gêmeo digital de HVAC?
Não. O gêmeo lê os dados do BMS existente por meio de um gateway BACnet para MQTT e deixa o controle com o BMS. Ele acrescenta análise, não um novo sistema de controle.
Por que usar MQTT em vez de ler o BACnet diretamente?
O BACnet foi projetado para redes prediais locais. O MQTT transporta os dados com segurança para a nuvem por meio de conexões de saída e permite que muitos consumidores, como análises, dashboards e armazenamento, compartilhem o mesmo fluxo.
Em quanto tempo um gêmeo digital de HVAC mostra resultados?
Regras simples, como aquecimento e resfriamento simultâneos ou delta-T baixo no chiller, podem revelar problemas já nas primeiras semanas de dados, mas as economias dependem do edifício e de agir com base nas constatações.



