Correction BunkerM domaine: mosquitto2.digitribe.fr

This commit is contained in:
Eric FELIXINE
2026-05-06 21:27:10 -04:00
parent 362a9d1f6b
commit b6c627a639

View File

@@ -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*