Files
smart-city-digital-twin-mar…/architecture-multi-cb.md
2026-05-06 21:27:10 -04:00

11 KiB

 1|# Architecture Smart City Digital Twin - Martinique (État au 07 Mai 2026)
 2|
 3|## Architecture Validée : Simulateur → MQTT → IoT Agents → Context Brokers → Time-Series
 4|
 5|```
 6|┌─────────────────────────────────────────────────────────────────────────────┐
 7|│                     Smart City Simulator (Python)                         │
 8|│  Publie sur 3 brokers MQTT avec format IoT-Agent JSON (30 capteurs)      │
 9|└──────────┬────────────────────┬──────────────────────┬───────────────────┘
10|           │                    │                      │
11|           ▼                    ▼                      ▼
12|┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
13|│   EMQX Broker   │  │ Mosquitto Broker │  │  BunkerM Broker │
14|│   (emqx_emqx_1)│  │ (smart-city-    │  │  (mqtt.digitribe.│
15|│   :1883 (host   │  │  mosquitto)     │  │  fr:1900)       │
16|│   11883)        │  │  :1883 (host    │  │  ⏳ À tester │
17|│   ✅ Fonctionnel │  │  1883)         │  │  mosquitto2     │
18|│                 │  │  ✅ Fonctionnel │  │                  │
19|└────────┬─────────┘  └────────┬─────────┘  └────────┬─────────┘
20|         │                       │                      │
21|         ▼                       ▼                      ▼
22|┌──────────────────┐  ┌──────────────────┐  ┌──────────────────┐
23|│ IoT-Agent-EMQX  │  │IoT-Agent-Mosquitto│  │IoT-Agent-BunkerM │
24|│ (smart-city-    │  │ (smart-city-    │  │ (smart-city-    │
25|│  iot-agent-emqx)│  │  iot-agent-     │  │  iot-agent-     │
26|│  :4041          │  │  mosquitto)     │  │  bunkerm)       │
27|│  Apikey: smart- │  │  :4042          │  │  :4043          │
28|│  city-api-key   │  │  Apikey: smart- │  │  Apikey: bunker-│
29|│                 │  │  city-api-key   │  │  m-api-key      │
30|└────────┬─────────┘  └────────┬─────────┘  └────────┬─────────┘
31|         └───────────────────────┴──────────────────────┘
32|                              │
33|                              ▼
34|              ┌───────────────┴───────────────┐
35|              │                               │
36|              ▼                               ▼
37|┌─────────────────────┐           ┌─────────────────────┐
38|│   Orion-LD          │           │   Stellio            │
39|│   (smart-city-      │           │   (stellio-api-      │
40|│    orion-ld)        │           │    gateway)          │
41|│   Port: 1026       │           │   Port: 8080         │
42|│   ✅ Fonctionnel    │           │   ✅ Fonctionnel     │
43|│   MongoDB backend   │           │   Kafka backend      │
44|└─────────┬───────────┘           └─────────┬───────────┘
45|          │                                 │
46|          ▼                                 ▼
47|┌─────────────────────┐           ┌─────────────────────┐
48|│ QuantumLeap-Orion  │           │ QuantumLeap-Stellio │
49|│ (smart-city-       │           │ (smart-city-        │
50|│  quantumleap)      │           │  quantumleap)       │
51|│ Port: 8668        │           │ Port: 8668?         │
52|│ ✅ Fonctionnel     │           │ (à vérifier)        │
53|│ → CrateDB-Orion   │           │ → CrateDB-Stellio   │
54|└─────────┬───────────┘           └─────────┬───────────┘
55|          │                                 │
56|          ▼                                 ▼
57|┌─────────────────────┐           ┌─────────────────────┐
58|│ CrateDB-Orion      │           │ CrateDB-Stellio     │
59|│ (smart-city-       │           │ (smart-city-       │
60|│  cratedb)         │           │  cratedb)          │
61|│ Port: 5432/4200   │           │ Port: 5432/4200    │
62|│ DB: quantumleap    │           │ DB: quantumleap    │
63|│ ✅ Données présentes│           │ (à vérifier)       │
64|└─────────┬───────────┘           └─────────┬───────────┘
65|          │                                 │
66|          └───────────────────────┬─────────┘
67|                              │
68|                              ▼
69|                    ┌─────────────────────┐
70|                    │   Grafana          │
71|                    │   (digital-twin-  │
72|                    │    grafana)       │
73|                    │   Port: 3000      │
74|                    │   https://        │
75|                    │   grafana.digitribe│
76|                    │   .fr             │
77|                    │   2 Datasources:   │
78|                    │   - CrateDB-Orion  │
79|                    │   - CrateDB-Stellio│
80|                    └─────────────────────┘
81|```
82|
83|## Flux de Données Validés (07 Mai 2026)
84|
85|### Pipeline 1 : Orion-LD ✅ (Opérationnel Complet)
86|1. **Simulateur** → Publie sur EMQX & Mosquitto (topics `smartcity-api-key/{sid}/attrs`) ✅
87|2. **IoT Agents** (EMQX & Mosquitto) → Transfèrent vers Orion-LD ✅
88|3. **Orion-LD** (1026) → Reçoit les entités (`urn:ngsi-ld:AirQualityObserved:sensor001`...) ✅
89|4. **QuantumLeap-Orion** (8668) → Reçoit notifications Orion-LD ✅
90|5. **CrateDB-Orion** (5432) → Persistance dans `quantumleap.etairqualityobserved` ✅
91|   - Données vérifiées : `sensor005` (NO2=72.1, temp=31.5°C, humidité=92%)
92|6. **Grafana** ← Visualise données CrateDB ✅
93|
94|### Pipeline 2 : Stellio 🔄 (À finaliser)
95|1. **Simulateur** → Publie sur EMQX & Mosquitto ✅
96|2. **IoT Agents** → Transfèrent vers Stellio (à configurer) ⏳
97|3. **Stellio** (8080) → Reçoit les entités NGSI-LD ✅
98|4. **QuantumLeap-Stellio** → Reçoit notifications Stellio (à configurer) ⏳
99|5. **CrateDB-Stellio** → Persistance (même CrateDB?) ⏳

100|6. Grafana ← Visualise données 101| 102|## États des Services (07 Mai 2026 - 21h30) 103| 104|| Service | Container | Ports | Statut | Notes | 105||---------|-----------|--------|--------|-------| 106|| Simulateur | smart-city-simulator | - | UP | Publie sur 2/3 brokers (EMQX , Mosquitto , BunkerM ) | 107|| EMQX Broker | emqx_emqx_1 | 1883 (host 11883) | UP | Messages reçus, topics smartcity-api-key/# | 108|| Mosquitto Broker | smart-city-mosquitto | 1883 (host 1883) | UP | Messages reçus | 109|| BunkerM Broker | smart-city-bunkerm | 1900 | Inaccessible | mosquitto2.digitribe.fr:1900 ne répond pas au simulateur | 110|| IoT Agent EMQX | smart-city-iot-agent-emqx | 4041 | UP | Reçoit et transfère vers Orion-LD/Stellio | 111|| IoT Agent Mosquitto | smart-city-iot-agent-mosquitto | 4042 | UP | Idem | 112|| IoT Agent BunkerM | smart-city-iot-agent-bunkerm | 4043 | ⚠️ UP | Mais pas de messages (BunkerM inaccessible) | 113|| Orion-LD | smart-city-orion-ld | 1026 | UP | Entités créées, subscriptions actives | 114|| Stellio | stellio-api-gateway | 8080 | UP | Prêt pour intégration IoT Agent | 115|| QuantumLeap | smart-city-quantumleap | 8668 | UP | Notifications traitées | 116|| CrateDB | smart-city-cratedb | 5432/4200 | UP | Table quantumleap.etairqualityobserved | 117|| Grafana | digital-twin-grafana | 3000 | UP | https://grafana.digitribe.fr | 118|| OpenRemote | openremote-manager-1 | 8080/8443 | UP | Pas encore connecté aux brokers MQTT | 119|| ThingsBoard | smart-city-thingsboard | 8080 | CRASH | Manque /config/thingsboard.conf | 120| 121|## Prochaines Étapes 122| 123|1. Corriger le simulateur pour publier sur les topics IoT Agent (FAIT) 124|2. Configurer Stellio pour recevoir les données des IoT Agents 125|3. Finaliser QuantumLeap-Stellio (subscriptions) 126|4. Connecter OpenRemote aux brokers MQTT (via MQTT Client assets) 127|5. Réparer BunkerM (rendre accessible mosquitto2lateur) 128|6. Finaliser Grafana (dashboards avec données CrateDB) 129|7. Réparer ThingsBoard (créer fichier configuration) 130| 131|## Notes Importantes 132| 133|- Architecture Validée : Le flux Simulateur → Brokers MQTT → IoT Agents → Orion-LD → QuantumLeap → CrateDB est opérationnel. 134|- 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). 135|- Credentials : 136| - Orion-LD : http://smart-city-orion-ld:1026 137| - QuantumLeap : http://smart-city-quantumleap:8668 138| - CrateDB : user crate, pas de mot de passe, port 5432 139| - Grafana : admin / Digitribe972 140| - OpenRemote : admin / Digitribe972 141|- Gitea : https://gitea.digitribe.fr/eric/smart-city-digital-twin-martinique 142| 143|--- 144|Dernière mise à jour : 07 Mai 2026, 21h30 - Architecture validée Orion-LD pipeline complet