Files
smart-city-digital-twin-mar…/architecture-multi-cb.md
Eric FELIXINE 362a9d1f6b Architecture mise à jour (07 Mai 2026)
- Correction flux : Simulateur → MQTT Brokers → IoT Agents → Orion-LD/Stellio → QuantumLeap → CrateDB
- IoT Agents fonctionnels (EMQX:4041, Mosquitto:4042, BunkerM:4043)
- Pipeline Orion-LD validé (CrateDB: quantumleap.etairqualityobserved)
- BunkerM domaine corrigé : mosquitto2.digitribe.fr:1900
- Simulateur publie sur topics smartcity-api-key/{sid}/attrs
2026-05-06 21:26:21 -04:00

10 KiB

Architecture Smart City Digital Twin - Martinique (État au 07 Mai 2026)

Architecture Validée : Simulateur → MQTT → IoT Agents → Context Brokers → Time-Series

┌─────────────────────────────────────────────────────────────────────────────┐
│                     Smart City Simulator (Python)                         │
│  Publie sur 3 brokers MQTT avec format IoT-Agent JSON (30 capteurs)      │
└──────────┬────────────────────┬──────────────────────┬───────────────────┘
           │                    │                      │
           ▼                    ▼                      ▼
┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
│   EMQX Broker   │  │ Mosquitto Broker │  │  BunkerM Broker │
│   (emqx_emqx_1)│  │ (smart-city-    │  │  (mqtt.digitribe.│
│   :1883 (host   │  │  mosquitto)     │  │  fr:1900)       │
│   11883)        │  │  :1883 (host    │  │  ❌ Inaccessible │
│   ✅ Fonctionnel │  │  1883)         │  │  depuis simu     │
│                 │  │  ✅ Fonctionnel │  │                  │
└────────┬─────────┘  └────────┬─────────┘  └────────┬─────────┘
         │                       │                      │
         ▼                       ▼                      ▼
┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
│ IoT-Agent-EMQX  │  │IoT-Agent-Mosquitto│  │IoT-Agent-BunkerM │
│ (smart-city-    │  │ (smart-city-    │  │ (smart-city-    │
│  iot-agent-emqx)│  │  iot-agent-     │  │  iot-agent-     │
│  :4041          │  │  mosquitto)     │  │  bunkerm)       │
│  Apikey: smart- │  │  :4042          │  │  :4043          │
│  city-api-key   │  │  Apikey: smart- │  │  Apikey: bunker-│
│                 │  │  city-api-key   │  │  m-api-key      │
└────────┬─────────┘  └────────┬─────────┘  └────────┬─────────┘
         └───────────────────────┴──────────────────────┘
                              │
                              ▼
              ┌───────────────┴───────────────┐
              │                               │
              ▼                               ▼
┌─────────────────────┐           ┌─────────────────────┐
│   Orion-LD          │           │   Stellio            │
│   (smart-city-      │           │   (stellio-api-      │
│    orion-ld)        │           │    gateway)          │
│   Port: 1026       │           │   Port: 8080         │
│   ✅ Fonctionnel    │           │   ✅ Fonctionnel     │
│   MongoDB backend   │           │   Kafka backend      │
└─────────┬───────────┘           └─────────┬───────────┘
          │                                 │
          ▼                                 ▼
┌─────────────────────┐           ┌─────────────────────┐
│ QuantumLeap-Orion  │           │ QuantumLeap-Stellio │
│ (smart-city-       │           │ (smart-city-        │
│  quantumleap)      │           │  quantumleap)       │
│ Port: 8668        │           │ Port: 8668?         │
│ ✅ Fonctionnel     │           │ (à vérifier)        │
│ → CrateDB-Orion   │           │ → CrateDB-Stellio   │
└─────────┬───────────┘           └─────────┬───────────┘
          │                                 │
          ▼                                 ▼
┌─────────────────────┐           ┌─────────────────────┐
│ CrateDB-Orion      │           │ CrateDB-Stellio     │
│ (smart-city-       │           │ (smart-city-       │
│  cratedb)         │           │  cratedb)          │
│ Port: 5432/4200   │           │ Port: 5432/4200    │
│ DB: quantumleap    │           │ DB: quantumleap    │
│ ✅ Données présentes│           │ (à vérifier)       │
└─────────┬───────────┘           └─────────┬───────────┘
          │                                 │
          └───────────────────────┬─────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   Grafana          │
                    │   (digital-twin-  │
                    │    grafana)       │
                    │   Port: 3000      │
                    │   https://        │
                    │   grafana.digitribe│
                    │   .fr             │
                    │   2 Datasources:   │
                    │   - CrateDB-Orion  │
                    │   - CrateDB-Stellio│
                    └─────────────────────┘

Flux de Données Validés (07 Mai 2026)

Pipeline 1 : Orion-LD (Opérationnel Complet)

  1. Simulateur → Publie sur EMQX & Mosquitto (topics smartcity-api-key/{sid}/attrs)
  2. IoT Agents (EMQX & Mosquitto) → Transfèrent vers Orion-LD
  3. Orion-LD (1026) → Reçoit les entités (urn:ngsi-ld:AirQualityObserved:sensor001...)
  4. QuantumLeap-Orion (8668) → Reçoit notifications Orion-LD
  5. CrateDB-Orion (5432) → Persistance dans quantumleap.etairqualityobserved
    • Données vérifiées : sensor005 (NO2=72.1, temp=31.5°C, humidité=92%)
  6. Grafana ← Visualise données CrateDB

Pipeline 2 : Stellio 🔄 (À finaliser)

  1. Simulateur → Publie sur EMQX & Mosquitto
  2. IoT Agents → Transfèrent vers Stellio (à configurer)
  3. Stellio (8080) → Reçoit les entités NGSI-LD
  4. QuantumLeap-Stellio → Reçoit notifications Stellio (à configurer)
  5. CrateDB-Stellio → Persistance (même CrateDB?)
  6. Grafana ← Visualise données

États des Services (07 Mai 2026 - 21h30)

Service Container Ports Statut Notes
Simulateur smart-city-simulator - UP Publie sur 2/3 brokers (EMQX , Mosquitto , BunkerM )
EMQX Broker emqx_emqx_1 1883 (host 11883) UP Messages reçus, topics smartcity-api-key/#
Mosquitto Broker smart-city-mosquitto 1883 (host 1883) UP Messages reçus
BunkerM Broker smart-city-bunkerm 1900 Inaccessible mqtt.digitribe.fr:1900 ne répond pas au simulateur
IoT Agent EMQX smart-city-iot-agent-emqx 4041 UP Reçoit et transfère vers Orion-LD/Stellio
IoT Agent Mosquitto smart-city-iot-agent-mosquitto 4042 UP Idem
IoT Agent BunkerM smart-city-iot-agent-bunkerm 4043 ⚠️ UP Mais pas de messages (BunkerM inaccessible)
Orion-LD smart-city-orion-ld 1026 UP Entités créées, subscriptions actives
Stellio stellio-api-gateway 8080 UP Prêt pour intégration IoT Agent
QuantumLeap smart-city-quantumleap 8668 UP Notifications traitées
CrateDB smart-city-cratedb 5432/4200 UP Table quantumleap.etairqualityobserved
Grafana digital-twin-grafana 3000 UP https://grafana.digitribe.fr
OpenRemote openremote-manager-1 8080/8443 UP Pas encore connecté aux brokers MQTT
ThingsBoard smart-city-thingsboard 8080 CRASH Manque /config/thingsboard.conf

Prochaines Étapes

  1. Corriger le simulateur pour publier sur les topics IoT Agent (FAIT)
  2. Configurer Stellio pour recevoir les données des IoT Agents
  3. Finaliser QuantumLeap-Stellio (subscriptions)
  4. Connecter OpenRemote aux brokers MQTT (via MQTT Client assets)
  5. Réparer BunkerM (rendre accessible depuis simulateur)
  6. Finaliser Grafana (dashboards avec données CrateDB)
  7. Réparer ThingsBoard (créer fichier configuration)

Notes Importantes

  • Architecture Validée : Le flux Simulateur → Brokers MQTT → IoT Agents → Orion-LD → QuantumLeap → CrateDB est opérationnel.
  • Format des données : IoT Agent utilise smartcity-api-key/{sid}/attrs (EMQX), smartcity-api-key-mosquitto/{sid}/attrs (Mosquitto), bunkerm-api-key/{sid}/attrs (BunkerM).
  • Credentials :
    • Orion-LD : http://smart-city-orion-ld:1026
    • QuantumLeap : http://smart-city-quantumleap:8668
    • CrateDB : user crate, pas de mot de passe, port 5432
    • Grafana : admin / Digitribe972
    • OpenRemote : admin / Digitribe972
  • Gitea : https://gitea.digitribe.fr/eric/smart-city-digital-twin-martinique

Dernière mise à jour : 07 Mai 2026, 21h30 - Architecture validée Orion-LD pipeline complet