Correction BunkerM domaine: mosquitto2.digitribe.fr
This commit is contained in:
@@ -1,144 +1,144 @@
|
|||||||
# Architecture Smart City Digital Twin - Martinique (État au 07 Mai 2026)
|
1|# Architecture Smart City Digital Twin - Martinique (État au 07 Mai 2026)
|
||||||
|
2|
|
||||||
## Architecture Validée : Simulateur → MQTT → IoT Agents → Context Brokers → Time-Series
|
3|## Architecture Validée : Simulateur → MQTT → IoT Agents → Context Brokers → Time-Series
|
||||||
|
4|
|
||||||
```
|
5|```
|
||||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
6|┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
│ Smart City Simulator (Python) │
|
7|│ Smart City Simulator (Python) │
|
||||||
│ Publie sur 3 brokers MQTT avec format IoT-Agent JSON (30 capteurs) │
|
8|│ Publie sur 3 brokers MQTT avec format IoT-Agent JSON (30 capteurs) │
|
||||||
└──────────┬────────────────────┬──────────────────────┬───────────────────┘
|
9|└──────────┬────────────────────┬──────────────────────┬───────────────────┘
|
||||||
│ │ │
|
10| │ │ │
|
||||||
▼ ▼ ▼
|
11| ▼ ▼ ▼
|
||||||
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
12|┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||||
│ EMQX Broker │ │ Mosquitto Broker │ │ BunkerM Broker │
|
13|│ EMQX Broker │ │ Mosquitto Broker │ │ BunkerM Broker │
|
||||||
│ (emqx_emqx_1)│ │ (smart-city- │ │ (mqtt.digitribe.│
|
14|│ (emqx_emqx_1)│ │ (smart-city- │ │ (mqtt.digitribe.│
|
||||||
│ :1883 (host │ │ mosquitto) │ │ fr:1900) │
|
15|│ :1883 (host │ │ mosquitto) │ │ fr:1900) │
|
||||||
│ 11883) │ │ :1883 (host │ │ ❌ Inaccessible │
|
16|│ 11883) │ │ :1883 (host │ │ ⏳ À tester │
|
||||||
│ ✅ Fonctionnel │ │ 1883) │ │ depuis simu │
|
17|│ ✅ Fonctionnel │ │ 1883) │ │ mosquitto2 │
|
||||||
│ │ │ ✅ Fonctionnel │ │ │
|
18|│ │ │ ✅ Fonctionnel │ │ │
|
||||||
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
|
19|└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
|
||||||
│ │ │
|
20| │ │ │
|
||||||
▼ ▼ ▼
|
21| ▼ ▼ ▼
|
||||||
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
22|┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||||
│ IoT-Agent-EMQX │ │IoT-Agent-Mosquitto│ │IoT-Agent-BunkerM │
|
23|│ IoT-Agent-EMQX │ │IoT-Agent-Mosquitto│ │IoT-Agent-BunkerM │
|
||||||
│ (smart-city- │ │ (smart-city- │ │ (smart-city- │
|
24|│ (smart-city- │ │ (smart-city- │ │ (smart-city- │
|
||||||
│ iot-agent-emqx)│ │ iot-agent- │ │ iot-agent- │
|
25|│ iot-agent-emqx)│ │ iot-agent- │ │ iot-agent- │
|
||||||
│ :4041 │ │ mosquitto) │ │ bunkerm) │
|
26|│ :4041 │ │ mosquitto) │ │ bunkerm) │
|
||||||
│ Apikey: smart- │ │ :4042 │ │ :4043 │
|
27|│ Apikey: smart- │ │ :4042 │ │ :4043 │
|
||||||
│ city-api-key │ │ Apikey: smart- │ │ Apikey: bunker-│
|
28|│ city-api-key │ │ Apikey: smart- │ │ Apikey: bunker-│
|
||||||
│ │ │ city-api-key │ │ m-api-key │
|
29|│ │ │ city-api-key │ │ m-api-key │
|
||||||
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
|
30|└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
|
||||||
└───────────────────────┴──────────────────────┘
|
31| └───────────────────────┴──────────────────────┘
|
||||||
│
|
32| │
|
||||||
▼
|
33| ▼
|
||||||
┌───────────────┴───────────────┐
|
34| ┌───────────────┴───────────────┐
|
||||||
│ │
|
35| │ │
|
||||||
▼ ▼
|
36| ▼ ▼
|
||||||
┌─────────────────────┐ ┌─────────────────────┐
|
37|┌─────────────────────┐ ┌─────────────────────┐
|
||||||
│ Orion-LD │ │ Stellio │
|
38|│ Orion-LD │ │ Stellio │
|
||||||
│ (smart-city- │ │ (stellio-api- │
|
39|│ (smart-city- │ │ (stellio-api- │
|
||||||
│ orion-ld) │ │ gateway) │
|
40|│ orion-ld) │ │ gateway) │
|
||||||
│ Port: 1026 │ │ Port: 8080 │
|
41|│ Port: 1026 │ │ Port: 8080 │
|
||||||
│ ✅ Fonctionnel │ │ ✅ Fonctionnel │
|
42|│ ✅ Fonctionnel │ │ ✅ Fonctionnel │
|
||||||
│ MongoDB backend │ │ Kafka backend │
|
43|│ MongoDB backend │ │ Kafka backend │
|
||||||
└─────────┬───────────┘ └─────────┬───────────┘
|
44|└─────────┬───────────┘ └─────────┬───────────┘
|
||||||
│ │
|
45| │ │
|
||||||
▼ ▼
|
46| ▼ ▼
|
||||||
┌─────────────────────┐ ┌─────────────────────┐
|
47|┌─────────────────────┐ ┌─────────────────────┐
|
||||||
│ QuantumLeap-Orion │ │ QuantumLeap-Stellio │
|
48|│ QuantumLeap-Orion │ │ QuantumLeap-Stellio │
|
||||||
│ (smart-city- │ │ (smart-city- │
|
49|│ (smart-city- │ │ (smart-city- │
|
||||||
│ quantumleap) │ │ quantumleap) │
|
50|│ quantumleap) │ │ quantumleap) │
|
||||||
│ Port: 8668 │ │ Port: 8668? │
|
51|│ Port: 8668 │ │ Port: 8668? │
|
||||||
│ ✅ Fonctionnel │ │ (à vérifier) │
|
52|│ ✅ Fonctionnel │ │ (à vérifier) │
|
||||||
│ → CrateDB-Orion │ │ → CrateDB-Stellio │
|
53|│ → CrateDB-Orion │ │ → CrateDB-Stellio │
|
||||||
└─────────┬───────────┘ └─────────┬───────────┘
|
54|└─────────┬───────────┘ └─────────┬───────────┘
|
||||||
│ │
|
55| │ │
|
||||||
▼ ▼
|
56| ▼ ▼
|
||||||
┌─────────────────────┐ ┌─────────────────────┐
|
57|┌─────────────────────┐ ┌─────────────────────┐
|
||||||
│ CrateDB-Orion │ │ CrateDB-Stellio │
|
58|│ CrateDB-Orion │ │ CrateDB-Stellio │
|
||||||
│ (smart-city- │ │ (smart-city- │
|
59|│ (smart-city- │ │ (smart-city- │
|
||||||
│ cratedb) │ │ cratedb) │
|
60|│ cratedb) │ │ cratedb) │
|
||||||
│ Port: 5432/4200 │ │ Port: 5432/4200 │
|
61|│ Port: 5432/4200 │ │ Port: 5432/4200 │
|
||||||
│ DB: quantumleap │ │ DB: quantumleap │
|
62|│ DB: quantumleap │ │ DB: quantumleap │
|
||||||
│ ✅ Données présentes│ │ (à vérifier) │
|
63|│ ✅ Données présentes│ │ (à vérifier) │
|
||||||
└─────────┬───────────┘ └─────────┬───────────┘
|
64|└─────────┬───────────┘ └─────────┬───────────┘
|
||||||
│ │
|
65| │ │
|
||||||
└───────────────────────┬─────────┘
|
66| └───────────────────────┬─────────┘
|
||||||
│
|
67| │
|
||||||
▼
|
68| ▼
|
||||||
┌─────────────────────┐
|
69| ┌─────────────────────┐
|
||||||
│ Grafana │
|
70| │ Grafana │
|
||||||
│ (digital-twin- │
|
71| │ (digital-twin- │
|
||||||
│ grafana) │
|
72| │ grafana) │
|
||||||
│ Port: 3000 │
|
73| │ Port: 3000 │
|
||||||
│ https:// │
|
74| │ https:// │
|
||||||
│ grafana.digitribe│
|
75| │ grafana.digitribe│
|
||||||
│ .fr │
|
76| │ .fr │
|
||||||
│ 2 Datasources: │
|
77| │ 2 Datasources: │
|
||||||
│ - CrateDB-Orion │
|
78| │ - CrateDB-Orion │
|
||||||
│ - CrateDB-Stellio│
|
79| │ - CrateDB-Stellio│
|
||||||
└─────────────────────┘
|
80| └─────────────────────┘
|
||||||
```
|
81|```
|
||||||
|
82|
|
||||||
## Flux de Données Validés (07 Mai 2026)
|
83|## Flux de Données Validés (07 Mai 2026)
|
||||||
|
84|
|
||||||
### Pipeline 1 : Orion-LD ✅ (Opérationnel Complet)
|
85|### Pipeline 1 : Orion-LD ✅ (Opérationnel Complet)
|
||||||
1. **Simulateur** → Publie sur EMQX & Mosquitto (topics `smartcity-api-key/{sid}/attrs`) ✅
|
86|1. **Simulateur** → Publie sur EMQX & Mosquitto (topics `smartcity-api-key/{sid}/attrs`) ✅
|
||||||
2. **IoT Agents** (EMQX & Mosquitto) → Transfèrent vers Orion-LD ✅
|
87|2. **IoT Agents** (EMQX & Mosquitto) → Transfèrent vers Orion-LD ✅
|
||||||
3. **Orion-LD** (1026) → Reçoit les entités (`urn:ngsi-ld:AirQualityObserved:sensor001`...) ✅
|
88|3. **Orion-LD** (1026) → Reçoit les entités (`urn:ngsi-ld:AirQualityObserved:sensor001`...) ✅
|
||||||
4. **QuantumLeap-Orion** (8668) → Reçoit notifications Orion-LD ✅
|
89|4. **QuantumLeap-Orion** (8668) → Reçoit notifications Orion-LD ✅
|
||||||
5. **CrateDB-Orion** (5432) → Persistance dans `quantumleap.etairqualityobserved` ✅
|
90|5. **CrateDB-Orion** (5432) → Persistance dans `quantumleap.etairqualityobserved` ✅
|
||||||
- Données vérifiées : `sensor005` (NO2=72.1, temp=31.5°C, humidité=92%)
|
91| - Données vérifiées : `sensor005` (NO2=72.1, temp=31.5°C, humidité=92%)
|
||||||
6. **Grafana** ← Visualise données CrateDB ✅
|
92|6. **Grafana** ← Visualise données CrateDB ✅
|
||||||
|
93|
|
||||||
### Pipeline 2 : Stellio 🔄 (À finaliser)
|
94|### Pipeline 2 : Stellio 🔄 (À finaliser)
|
||||||
1. **Simulateur** → Publie sur EMQX & Mosquitto ✅
|
95|1. **Simulateur** → Publie sur EMQX & Mosquitto ✅
|
||||||
2. **IoT Agents** → Transfèrent vers Stellio (à configurer) ⏳
|
96|2. **IoT Agents** → Transfèrent vers Stellio (à configurer) ⏳
|
||||||
3. **Stellio** (8080) → Reçoit les entités NGSI-LD ✅
|
97|3. **Stellio** (8080) → Reçoit les entités NGSI-LD ✅
|
||||||
4. **QuantumLeap-Stellio** → Reçoit notifications Stellio (à configurer) ⏳
|
98|4. **QuantumLeap-Stellio** → Reçoit notifications Stellio (à configurer) ⏳
|
||||||
5. **CrateDB-Stellio** → Persistance (même CrateDB?) ⏳
|
99|5. **CrateDB-Stellio** → Persistance (même CrateDB?) ⏳
|
||||||
6. **Grafana** ← Visualise données ⏳
|
100|6. **Grafana** ← Visualise données ⏳
|
||||||
|
101|
|
||||||
## États des Services (07 Mai 2026 - 21h30)
|
102|## États des Services (07 Mai 2026 - 21h30)
|
||||||
|
103|
|
||||||
| Service | Container | Ports | Statut | Notes |
|
104|| Service | Container | Ports | Statut | Notes |
|
||||||
|---------|-----------|--------|--------|-------|
|
105||---------|-----------|--------|--------|-------|
|
||||||
| **Simulateur** | `smart-city-simulator` | - | ✅ **UP** | Publie sur 2/3 brokers (EMQX ✅, Mosquitto ✅, BunkerM ❌) |
|
106|| **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/#` ✅ |
|
107|| **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 ✅ |
|
108|| **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 |
|
109|| **BunkerM Broker** | `smart-city-bunkerm` | 1900 | ❌ **Inaccessible** | `mosquitto2.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 ✅ |
|
110|| **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 ✅ |
|
111|| **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) |
|
112|| **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 ✅ |
|
113|| **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 ⏳ |
|
114|| **Stellio** | `stellio-api-gateway` | 8080 | ✅ **UP** | Prêt pour intégration IoT Agent ⏳ |
|
||||||
| **QuantumLeap** | `smart-city-quantumleap` | 8668 | ✅ **UP** | Notifications traitées ✅ |
|
115|| **QuantumLeap** | `smart-city-quantumleap` | 8668 | ✅ **UP** | Notifications traitées ✅ |
|
||||||
| **CrateDB** | `smart-city-cratedb` | 5432/4200 | ✅ **UP** | Table `quantumleap.etairqualityobserved` ✅ |
|
116|| **CrateDB** | `smart-city-cratedb` | 5432/4200 | ✅ **UP** | Table `quantumleap.etairqualityobserved` ✅ |
|
||||||
| **Grafana** | `digital-twin-grafana` | 3000 | ✅ **UP** | https://grafana.digitribe.fr ✅ |
|
117|| **Grafana** | `digital-twin-grafana` | 3000 | ✅ **UP** | https://grafana.digitribe.fr ✅ |
|
||||||
| **OpenRemote** | `openremote-manager-1` | 8080/8443 | ✅ **UP** | Pas encore connecté aux brokers MQTT ⏳ |
|
118|| **OpenRemote** | `openremote-manager-1` | 8080/8443 | ✅ **UP** | Pas encore connecté aux brokers MQTT ⏳ |
|
||||||
| **ThingsBoard** | `smart-city-thingsboard` | 8080 | ❌ **CRASH** | Manque `/config/thingsboard.conf` |
|
119|| **ThingsBoard** | `smart-city-thingsboard` | 8080 | ❌ **CRASH** | Manque `/config/thingsboard.conf` |
|
||||||
|
120|
|
||||||
## Prochaines Étapes
|
121|## Prochaines Étapes
|
||||||
|
122|
|
||||||
1. ✅ **Corriger le simulateur** pour publier sur les topics IoT Agent (FAIT)
|
123|1. ✅ **Corriger le simulateur** pour publier sur les topics IoT Agent (FAIT)
|
||||||
2. ⏳ **Configurer Stellio** pour recevoir les données des IoT Agents
|
124|2. ⏳ **Configurer Stellio** pour recevoir les données des IoT Agents
|
||||||
3. ⏳ **Finaliser QuantumLeap-Stellio** (subscriptions)
|
125|3. ⏳ **Finaliser QuantumLeap-Stellio** (subscriptions)
|
||||||
4. ⏳ **Connecter OpenRemote** aux brokers MQTT (via MQTT Client assets)
|
126|4. ⏳ **Connecter OpenRemote** aux brokers MQTT (via MQTT Client assets)
|
||||||
5. ⏳ **Réparer BunkerM** (rendre accessible depuis simulateur)
|
127|5. ⏳ **Réparer BunkerM** (rendre accessible mosquitto2lateur)
|
||||||
6. ⏳ **Finaliser Grafana** (dashboards avec données CrateDB)
|
128|6. ⏳ **Finaliser Grafana** (dashboards avec données CrateDB)
|
||||||
7. ❌ **Réparer ThingsBoard** (créer fichier configuration)
|
129|7. ❌ **Réparer ThingsBoard** (créer fichier configuration)
|
||||||
|
130|
|
||||||
## Notes Importantes
|
131|## Notes Importantes
|
||||||
|
132|
|
||||||
- **Architecture Validée** : Le flux Simulateur → Brokers MQTT → IoT Agents → Orion-LD → QuantumLeap → CrateDB est **opérationnel**.
|
133|- **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).
|
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).
|
||||||
- **Credentials** :
|
135|- **Credentials** :
|
||||||
- Orion-LD : `http://smart-city-orion-ld:1026`
|
136| - Orion-LD : `http://smart-city-orion-ld:1026`
|
||||||
- QuantumLeap : `http://smart-city-quantumleap:8668`
|
137| - QuantumLeap : `http://smart-city-quantumleap:8668`
|
||||||
- CrateDB : user `crate`, pas de mot de passe, port 5432
|
138| - CrateDB : user `crate`, pas de mot de passe, port 5432
|
||||||
- Grafana : admin / Digitribe972
|
139| - Grafana : admin / Digitribe972
|
||||||
- OpenRemote : admin / Digitribe972
|
140| - OpenRemote : admin / Digitribe972
|
||||||
- **Gitea** : https://gitea.digitribe.fr/eric/smart-city-digital-twin-martinique
|
141|- **Gitea** : https://gitea.digitribe.fr/eric/smart-city-digital-twin-martinique
|
||||||
|
142|
|
||||||
---
|
143|---
|
||||||
*Dernière mise à jour : 07 Mai 2026, 21h30 - Architecture validée Orion-LD pipeline complet*
|
144|*Dernière mise à jour : 07 Mai 2026, 21h30 - Architecture validée Orion-LD pipeline complet*
|
||||||
Reference in New Issue
Block a user