Les outils open source de jumeau numérique permettent de construire un jumeau performant sans payer la licence d'une plateforme propriétaire, mais aucun projet ne fait tout à lui seul. Ce guide compare les options les plus utiles selon la couche qu'elles couvrent (modélisation, intégration des données, visualisation et historique) et explique comment chacune consomme les données MQTT. À la fin, vous saurez assembler une stack adaptée à votre cas d'usage, au lieu de forcer votre cas d'usage à entrer dans un seul outil.
Si vous découvrez le sujet, lisez d'abord notre guide sur la technologie du jumeau numérique.
Raisonner en couches, pas en plateformes
Un jumeau opérationnel a besoin de quatre éléments :
- Un modèle : ce qu'est l'actif, ses propriétés et ses relations.
- Des données en temps réel : les valeurs actuelles qui remontent du terrain et les commandes qui y redescendent.
- Une visualisation : des tableaux de bord, des scènes 3D, ou les deux.
- Un historique : des séries temporelles stockées pour les tendances, l'analyse et le machine learning.
Les projets open source se spécialisent généralement dans une ou deux de ces couches. MQTT est le liant qui leur permet de partager un même flux de données en temps réel : les passerelles publient une seule fois, et chaque outil s'abonne à ce dont il a besoin. C'est pourquoi la colonne « comment consomme-t-il MQTT » ci-dessous compte autant que la liste des fonctionnalités.
Les outils en un coup d'œil
| Outil | Couche principale | Format de modèle | Comment il consomme MQTT | Idéal pour |
|---|---|---|---|---|
| Eclipse Ditto | Modèle et API d'état du jumeau | Things avec attributs et features (JSON) | Connexions MQTT 3.1.1 et 5 intégrées avec mapping de payload | Jumeaux d'appareils avec API REST/WebSocket et recherche |
| Eclipse BaSyx | Modèle (Industrie 4.0) | Sous-modèles Asset Administration Shell | Le composant data bridge s'abonne à MQTT et met à jour les sous-modèles | Interopérabilité AAS dans l'industrie manufacturière |
| FIWARE Orion-LD | Modèle de contexte | Entités NGSI-LD | IoT Agent pour JSON ou UltraLight sur MQTT | Ville intelligente et données de contexte multi-domaines |
| Node-RED | Intégration et logique | Flows, tout JSON | Nœuds MQTT in et out natifs | Liant, transformations, tableaux de bord rapides |
| Three.js | Visualisation 3D | Scènes glTF | MQTT.js sur Secure WebSocket dans le navigateur | Jumeaux 3D web sur mesure |
| Babylon.js | Visualisation 3D | Scènes glTF et Babylon | MQTT.js sur Secure WebSocket | 3D web avec inspecteur et GUI intégrés |
| Telegraf + InfluxDB | Historique | Mesures de séries temporelles | Plugin d'entrée Telegraf mqtt_consumer |
Stockage de la télémétrie pour les tendances |
| Grafana | Tableaux de bord | Panneaux sur des sources de données | Via une base de données, ou plugin de source de données MQTT | Tableaux de bord d'exploitation et alertes |
Eclipse Ditto
Ditto est le service open source d'« état du jumeau » le plus complet. Chaque jumeau est un Thing doté d'attributs (plutôt statiques) et de features (état changeant). Ditto stocke l'état actuel, l'expose via des API REST et WebSocket, permet la recherche parmi les things et applique des politiques fines sur qui peut lire ou écrire quoi.
Ditto se connecte aux brokers MQTT via son service de connectivité : vous définissez une connexion avec des adresses sources (les topics auxquels s'abonner), des adresses cibles (les topics sur lesquels publier les changements) et un mapping de payload qui transforme le JSON de vos appareils en messages du protocole Ditto. C'est un bon choix lorsque d'autres applications veulent interroger l'état du jumeau en HTTP plutôt que s'abonner à MQTT. Notre guide Eclipse Ditto avec MQTT détaille la configuration complète d'une connexion.
Point de vigilance : le poids opérationnel. Ditto s'exécute sous forme de plusieurs services plus une base de données ; il convient donc aux équipes à l'aise avec les conteneurs et Kubernetes.
Eclipse BaSyx
BaSyx implémente l'Asset Administration Shell (AAS), le modèle de jumeau numérique normalisé issu de la communauté Industrie 4.0. Un AAS décrit un actif à travers des sous-modèles tels que la plaque signalétique, les données techniques et les données opérationnelles, avec des identifiants sémantiques qui les rendent compréhensibles d'un fournisseur à l'autre.
Pour les données en temps réel, le data bridge de BaSyx s'abonne à des sources comme des topics MQTT et écrit les valeurs dans les éléments des sous-modèles. Si vos clients ou partenaires attendent de l'AAS, BaSyx est le choix open source évident. Le guide de l'Asset Administration Shell explique le modèle.
Point de vigilance : la courbe d'apprentissage des métamodèles AAS et des identifiants sémantiques. Partez des modèles de sous-modèles standard plutôt que de concevoir les vôtres.
FIWARE Orion-LD
Le context broker de FIWARE stocke les entités en NGSI-LD, un format de données liées bien adapté aux villes, aux services publics et à l'agriculture, où il faut combiner des données de nombreux domaines. Les IoT Agents traduisent les protocoles des appareils, dont le JSON sur MQTT, en mises à jour d'entités. Choisissez-le lorsque vous avez besoin de partager des données entre organisations avec une API standard, moins pour une simple cellule d'usine.
Node-RED
Node-RED n'est pas une plateforme de jumeau, mais on le retrouve dans presque toutes les stacks de jumeau open source parce qu'il accélère l'intégration. Les nœuds MQTT in et out, les nœuds function pour les transformations et le module de tableau de bord couvrent une part étonnante d'un premier jumeau. Usages typiques : normaliser les payloads des fournisseurs selon votre schéma, calculer des valeurs dérivées et faire le pont vers une base de données ou un service de jumeau. Consultez la documentation officielle de Node-RED pour l'installation et les nœuds MQTT.
Point de vigilance : les flows volumineux deviennent difficiles à versionner et à relire. Gardez une logique réduite et déplacez les modèles complexes dans de vrais services.
Three.js et Babylon.js
Pour la 3D, les deux principales bibliothèques web open source sont Three.js et Babylon.js. Toutes deux chargent des modèles glTF exportés depuis la CAO ou Blender, et toutes deux fonctionnent partout où tourne un navigateur. Associez l'une ou l'autre à MQTT.js sur Secure WebSocket et le navigateur s'abonne directement à l'état en temps réel, sans relais backend.
Three.js est une bibliothèque de rendu légère dotée d'une immense communauté ; vous assemblez vous-même contrôles, loaders et interface. Babylon.js est davantage un moteur complet, avec inspecteur, système de GUI et physique intégrés. Le tutoriel de jumeau numérique Three.js et le guide de jumeau numérique Babylon.js montrent chacun en action.
Telegraf, InfluxDB et Grafana
La couche historique est la moins spectaculaire et la plus souvent oubliée. Le plugin MQTT consumer de Telegraf s'abonne aux topics et écrit les mesures dans InfluxDB ou une autre base de séries temporelles ; Grafana les représente ensuite sous forme de graphiques. Voici une configuration Telegraf fonctionnelle pointant vers le serveur MQTT public gratuit, réservé aux tests, avec un préfixe unique :
[[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"
Le bloc topic_parsing transforme les niveaux du topic en tags, ce qui permet à Grafana de filtrer par ligne et par actif sans analyser de chaînes. Publiez un message de test et il apparaît dans le 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 production, passez le serveur à ssl://YOUR_BROKER_HOST:8883 et ajoutez username = "YOUR_USERNAME" et password = "YOUR_PASSWORD" depuis le portail de votre broker.
Stacks recommandées
| Cas d'usage | Combinaison suggérée |
|---|---|
| Premier jumeau d'actif avec tableaux de bord | Broker MQTT + Node-RED + Telegraf/InfluxDB + Grafana |
| Jumeau d'exploitation 3D interactif | Broker MQTT + Three.js ou Babylon.js + Telegraf/InfluxDB |
| Jumeaux d'appareils pilotés par API pour les applications | Broker MQTT + Eclipse Ditto + Grafana |
| Interopérabilité Industrie 4.0 | Broker MQTT + Eclipse BaSyx + la visualisation de votre choix |
| Données de ville intelligente multi-domaines | Broker MQTT + FIWARE Orion-LD et IoT Agent |
Remarquez l'élément commun. Quels que soient les outils choisis, un seul namespace MQTT les alimente tous, ce qui vous permet d'ajouter ou de remplacer des outils plus tard sans toucher aux appareils.
Liste de critères de sélection
- Quelle couche représente aujourd'hui votre plus grosse lacune : modèle, données en temps réel, visualisation ou historique ?
- Vos partenaires ou clients exigent-ils un modèle standard comme l'AAS ou NGSI-LD ?
- Qui va l'exploiter ? Les plateformes multiservices exigent des compétences en conteneurs ; Node-RED et Telegraf non.
- Comment chaque outil s'authentifiera-t-il auprès du broker, et pouvez-vous attribuer à chacun ses propres identifiants ?
- L'outil prend-il en charge MQTT 5 si vous comptez sur des fonctionnalités comme l'expiration des messages ou les abonnements partagés ?
- Pouvez-vous mener une preuve de concept en une journée avec votre vraie structure de topics ?
La brique à ne pas auto-héberger
Les outils de jumeau open source s'exécutent facilement en conteneurs, mais le broker dont ils dépendent tous mérite une attention particulière : il doit rester disponible, accepter TLS, authentifier des dizaines de clients et survivre aux tempêtes de reconnexion. Beaucoup d'équipes gardent les outils auto-hébergés et utilisent un broker MQTT managé comme colonne vertébrale, ou font tourner un broker MQTT cloud à proximité de leurs outils d'analyse.
ConnectMQ s'inscrit dans ce schéma : Ditto, le data bridge de BaSyx, Node-RED, Telegraf et les visualiseurs dans le navigateur s'y connectent tous comme des clients MQTT ordinaires via TCP, TLS ou Secure WebSocket. Son portail ajoute un explorateur de topics en temps réel et une vue des appareils ISA-95 qui vous aident à vérifier les données avant de brancher chaque outil, ainsi que le décodage Sparkplug B si vos appareils edge le parlent.
Connectez votre stack open source à ConnectMQ
Choisissez les outils qui comblent vos lacunes et donnez-leur une colonne vertébrale fiable. Créez un broker ConnectMQ Serverless gratuit, sans carte bancaire, puis pointez-y Node-RED, Telegraf ou Ditto en quelques minutes.
Questions fréquentes
Quelle est la meilleure plateforme open source de jumeau numérique ?
Il n'y en a pas une seule. Eclipse Ditto excelle pour les API d'état du jumeau, Eclipse BaSyx pour les modèles Asset Administration Shell, et Three.js ou Babylon.js pour la 3D. La plupart des stacks réelles combinent plusieurs outils autour d'un broker MQTT.
Eclipse Ditto prend-il en charge MQTT 5 ?
Oui, le service de connectivité de Ditto prend en charge les connexions MQTT 3.1.1 et MQTT 5, avec des sources, des cibles et un mapping de payload configurables.
Node-RED peut-il constituer à lui seul un jumeau numérique ?
Pour des jumeaux d'actifs simples avec tableaux de bord, Node-RED peut aller assez loin. À mesure que le jumeau grandit, déplacez les modèles et l'historique vers des outils dédiés et gardez Node-RED pour l'intégration.
Les outils de jumeau open source ont-ils besoin de leur propre broker ?
Ils ont besoin d'accéder à un broker MQTT, pas forcément au leur. Un broker MQTT managé partagé permet à chaque outil de consommer le même namespace.



