Las herramientas de gemelo digital open source te permiten construir un gemelo capaz sin licenciar una plataforma propietaria, pero ningún proyecto lo hace todo por sí solo. Esta guía compara las opciones más útiles según la capa que cubren (modelado, integración de datos, visualización e histórico) y explica cómo consume cada una los datos MQTT. Al terminar podrás montar un stack que se ajuste a tu caso de uso, en lugar de forzar tu caso de uso dentro de una única herramienta.
Si todavía te estás orientando, lee primero la guía de tecnología de gemelo digital.
Piensa en capas, no en plataformas
Un gemelo que funcione necesita cuatro cosas:
- Un modelo: qué es el activo, sus propiedades y sus relaciones.
- Datos en vivo: valores actuales que llegan desde campo y comandos que salen hacia él.
- Visualización: dashboards, escenas 3D o ambas.
- Histórico: series temporales almacenadas para tendencias, análisis y machine learning.
Los proyectos open source suelen especializarse en una o dos de estas capas. MQTT es el pegamento que les permite compartir un mismo flujo de datos en vivo: los gateways publican una vez y cada herramienta se suscribe a lo que necesita. Por eso la columna "cómo consume MQTT" de la tabla siguiente importa tanto como la lista de funciones.
Las herramientas de un vistazo
| Herramienta | Capa principal | Formato del modelo | Cómo consume MQTT | Ideal para |
|---|---|---|---|---|
| Eclipse Ditto | Modelo y API de estado del gemelo | Things con atributos y features (JSON) | Conexiones MQTT 3.1.1 y 5 integradas con mapeo de payload | Gemelos de dispositivo con APIs REST/WebSocket y búsqueda |
| Eclipse BaSyx | Modelo (Industria 4.0) | Submodelos de Asset Administration Shell | Un componente data bridge se suscribe a MQTT y actualiza los submodelos | Interoperabilidad basada en AAS en fabricación |
| FIWARE Orion-LD | Modelo de contexto | Entidades NGSI-LD | IoT Agent para JSON o UltraLight sobre MQTT | Ciudades inteligentes y datos de contexto multidominio |
| Node-RED | Integración y lógica | Flujos, cualquier JSON | Nodos MQTT in y out nativos | Pegamento, transformaciones, dashboards rápidos |
| Three.js | Visualización 3D | Escenas glTF | MQTT.js sobre Secure WebSocket en el navegador | Gemelos 3D web a medida |
| Babylon.js | Visualización 3D | Escenas glTF y Babylon | MQTT.js sobre Secure WebSocket | 3D web con inspector y GUI integrados |
| Telegraf + InfluxDB | Histórico | Mediciones de series temporales | Plugin de entrada mqtt_consumer de Telegraf |
Almacenar telemetría para tendencias |
| Grafana | Dashboards | Paneles sobre fuentes de datos | A través de una base de datos o de un plugin de fuente de datos MQTT | Dashboards de operación y alertas |
Eclipse Ditto
Ditto es el servicio open source de "estado del gemelo" más completo. Cada gemelo es un Thing con atributos (mayormente estáticos) y features (estado cambiante). Ditto almacena el estado actual, lo expone mediante APIs REST y WebSocket, permite búsquedas entre things y aplica políticas granulares sobre quién puede leer o escribir qué.
Ditto se conecta a brokers MQTT mediante su servicio de conectividad: defines una conexión con direcciones de origen (topics a los que suscribirse), direcciones de destino (topics donde publicar los cambios) y un mapeo de payload que convierte el JSON de tus dispositivos en mensajes del protocolo Ditto. Funciona bien cuando otras aplicaciones quieren consultar el estado del gemelo por HTTP en lugar de suscribirse a MQTT. Nuestra guía de Eclipse Ditto con MQTT recorre la configuración completa de una conexión.
Ojo con: el peso operativo. Ditto se ejecuta como varios servicios más una base de datos, así que encaja con equipos cómodos con contenedores y Kubernetes.
Eclipse BaSyx
BaSyx implementa la Asset Administration Shell (AAS), el modelo estandarizado de gemelo digital de la comunidad Industria 4.0. Una AAS describe un activo mediante submodelos como la placa de características, los datos técnicos y los datos operativos, con IDs semánticos que los hacen comprensibles entre fabricantes.
Para los datos en vivo, el data bridge de BaSyx se suscribe a fuentes como topics MQTT y escribe los valores en elementos de submodelo. Si tus clientes o socios esperan AAS, BaSyx es la opción open source evidente. La guía de Asset Administration Shell explica el modelo.
Ojo con: la curva de aprendizaje de los metamodelos AAS y los IDs semánticos. Empieza con plantillas de submodelo estándar en lugar de diseñar las tuyas.
FIWARE Orion-LD
El context broker de FIWARE almacena entidades en NGSI-LD, un formato de datos enlazados muy adecuado para ciudades, utilities y agricultura, donde hay que combinar datos de muchos dominios. Los IoT Agents traducen protocolos de dispositivo, incluido JSON sobre MQTT, en actualizaciones de entidades. Elígelo cuando necesites compartir datos entre organizaciones y una API estándar; tiene menos sentido para una sola célula de fábrica.
Node-RED
Node-RED no es una plataforma de gemelos, pero aparece en casi todos los stacks open source de gemelo digital porque acelera mucho la integración. Los nodos MQTT in y out, los nodos function para transformaciones y el complemento de dashboard cubren una parte sorprendente de un primer gemelo. Tareas típicas: normalizar payloads de distintos fabricantes a tu esquema, calcular valores derivados y hacer de puente hacia una base de datos o un servicio de gemelos. Consulta la documentación oficial de Node-RED para la instalación y los nodos MQTT.
Ojo con: los flujos grandes, que se vuelven difíciles de versionar y revisar. Mantén la lógica pequeña y lleva los modelos complejos a servicios propiamente dichos.
Three.js y Babylon.js
Para 3D, las dos bibliotecas web open source líderes son Three.js y Babylon.js. Ambas cargan modelos glTF exportados desde CAD o Blender, y ambas funcionan en cualquier lugar donde funcione un navegador. Combina cualquiera de ellas con MQTT.js sobre Secure WebSocket y obtienes un gemelo digital 3D cuyo navegador se suscribe directamente al estado en vivo, sin necesidad de un backend intermedio.
Three.js es una biblioteca de renderizado ligera con una comunidad enorme; los controles, los cargadores y la interfaz los montas tú. Babylon.js es más bien un motor completo con inspector, sistema de GUI y física integrados. El tutorial de gemelo digital con Three.js y la guía de gemelo digital con Babylon.js muestran cada uno en acción.
Telegraf, InfluxDB y Grafana
La capa de histórico es la menos vistosa y la que más se olvida. El plugin MQTT consumer de Telegraf se suscribe a topics y escribe mediciones en InfluxDB u otra base de series temporales; después Grafana las grafica. Aquí tienes una configuración de Telegraf funcional contra el servidor MQTT público gratuito, usando un prefijo único y solo datos de prueba, ya que cualquiera puede leerlo:
[[inputs.mqtt_consumer]]
servers = ["tcp://broker.connectmq.com:1883"]
topics = ["connectmq/demo/ostw-3c9/site1/+/+/state"]
client_id = "ostw-3c9-telegraf"
qos = 0
data_format = "json"
topic_tag = "topic"
[[inputs.mqtt_consumer.topic_parsing]]
topic = "connectmq/demo/ostw-3c9/site1/+/+/state"
tags = "_/_/_/site/line/asset/_"
[[outputs.influxdb_v2]]
urls = ["http://localhost:8086"]
token = "$INFLUX_TOKEN"
organization = "plant"
bucket = "twin"
El bloque topic_parsing convierte los niveles del topic en tags, de modo que Grafana puede filtrar por línea y activo sin parsear cadenas. Publica un mensaje de prueba y aparecerá en el bucket:
mosquitto_pub -h broker.connectmq.com -p 1883 -i ostw-3c9-pub \
-t "connectmq/demo/ostw-3c9/site1/line2/oven1/state" -m '{"temp_c":212.4,"door_open":0}'
En producción, cambia el servidor a ssl://YOUR_BROKER_HOST:8883 y añade username = "YOUR_USERNAME" y password = "YOUR_PASSWORD" desde el portal de tu broker.
Stacks recomendados
| Caso de uso | Combinación sugerida |
|---|---|
| Primer gemelo de activo con dashboards | Broker MQTT + Node-RED + Telegraf/InfluxDB + Grafana |
| Gemelo 3D interactivo de operaciones | Broker MQTT + Three.js o Babylon.js + Telegraf/InfluxDB |
| Gemelos de dispositivo orientados a API para aplicaciones | Broker MQTT + Eclipse Ditto + Grafana |
| Interoperabilidad Industria 4.0 | Broker MQTT + Eclipse BaSyx + la visualización que prefieras |
| Datos multidominio de ciudad inteligente | Broker MQTT + FIWARE Orion-LD e IoT Agent |
Fíjate en el elemento común. Elijas las herramientas que elijas, un único namespace MQTT las alimenta a todas, así que podrás añadir o sustituir herramientas más adelante sin tocar los dispositivos.
Checklist de selección
- ¿Cuál es tu mayor carencia hoy: modelo, datos en vivo, visualización o histórico?
- ¿Tus socios o clientes exigen un modelo estándar como AAS o NGSI-LD?
- ¿Quién lo va a operar? Las plataformas multiservicio requieren conocimientos de contenedores; Node-RED y Telegraf no.
- ¿Cómo se autenticará cada herramienta en el broker? ¿Puedes dar a cada una sus propias credenciales?
- ¿La herramienta soporta MQTT 5 si dependes de funciones como la expiración de mensajes o las suscripciones compartidas?
- ¿Puedes hacer una prueba de concepto en un día con tu estructura de topics real?
La pieza que no conviene autoalojar
Las herramientas open source de gemelo digital son fáciles de ejecutar en contenedores, pero el broker del que dependen todas merece un cuidado especial: debe mantenerse disponible, aceptar TLS, autenticar a decenas de clientes y sobrevivir a avalanchas de reconexiones. Muchos equipos mantienen las herramientas autoalojadas y usan un broker MQTT gestionado como columna vertebral, o ejecutan un broker MQTT en la nube cerca de su analítica.
ConnectMQ encaja en este patrón: Ditto, el data bridge de BaSyx, Node-RED, Telegraf y los visores en el navegador se conectan a él como clientes MQTT normales por TCP, TLS o Secure WebSocket. Su portal añade un explorador de topics en vivo y una vista de dispositivos ISA-95 que te ayudan a verificar los datos antes de conectar cada herramienta, además de decodificación Sparkplug B si tus dispositivos edge lo hablan.
Conecta tu stack open source a ConnectMQ
Elige las herramientas que cubran tus carencias y dales una columna vertebral fiable. Crea un broker ConnectMQ Serverless gratuito, sin tarjeta de crédito, y apunta Node-RED, Telegraf o Ditto hacia él en minutos.
Preguntas frecuentes
¿Cuál es la mejor plataforma open source de gemelo digital?
No hay una única mejor. Eclipse Ditto destaca en APIs de estado del gemelo, Eclipse BaSyx en modelos de Asset Administration Shell, y Three.js o Babylon.js en 3D. La mayoría de los stacks reales combinan varias herramientas alrededor de un broker MQTT.
¿Eclipse Ditto soporta MQTT 5?
Sí, el servicio de conectividad de Ditto soporta conexiones MQTT 3.1.1 y MQTT 5, con orígenes, destinos y mapeo de payload configurables.
¿Puede Node-RED ser un gemelo digital por sí solo?
Para gemelos de activo sencillos con dashboards, Node-RED puede llegar muy lejos. A medida que el gemelo crece, traslada los modelos y el histórico a herramientas dedicadas y deja Node-RED para la integración.
¿Las herramientas open source de gemelo necesitan su propio broker?
Necesitan acceso a un broker MQTT, no necesariamente uno propio. Un broker MQTT gestionado y compartido permite que todas las herramientas consuman el mismo namespace.



