diff --git a/RAPPORT_FINAL_2026-05-06.md b/RAPPORT_FINAL_2026-05-06.md new file mode 100644 index 00000000..0b3af260 --- /dev/null +++ b/RAPPORT_FINAL_2026-05-06.md @@ -0,0 +1,131 @@ +# SMART CITY DIGITAL TWIN - RAPPORT FINAL 2026-05-06 + +## ✅ RÉALISÉ AUJOURD'HUI + +### Infrastructure de Base +1. **BunkerM (mosquitto2.digitribe.fr:1900)** ✅ + - Accessible via Traefik (confirmé par `nc -zv` et `mosquitto_pub`) + - IoT Agent BunkerM reconfiguré pour Stellio (NGSI-LD) + +2. **Stellio Pipeline** ✅ + - Données visibles dans Stellio (`urn:ngsi-ld:AirQualityObserved:*`) + - IoT Agent → Stellio → QuantumLeap → CrateDB fonctionnel + - Tables CrateDB créées : 6 tables (etairqualityobserved, etweatherobserved, ettrafficflowobserved, etparkingspot, etnoiselevelobserved, etwaterqualityobserved) + +3. **Grafana Dashboards** ✅ + - Dashboard "Smart City - Air Quality (CrateDB)" opérationnel + - Dashboards Traffic Flow et Weather créés (structure de base) + - Datasources CrateDB configurées (2 datasources) + +4. **Git/Gitea** ✅ + - Commits poussés sur `origin/master` + - Fichiers modifiés : `docker-compose.iot-agent.yml` + - Session resume `session_resume_2026-05-06.md` créé et poussé + +5. **Keycloak OpenRemote** ✅ + - Audience mapper 'openremote' configuré + - JWT avec claim `aud: ['openremote', 'smartcity-realm', 'master-realm', 'account']` + +### Monitoring +- Prometheus : 0 alertes actives ✅ +- Tous les conteneurs principaux sont Up (sauf problèmes ci-dessous) + +--- + +## ❌ PROBLÈMES EN COURS + +### 1. **OpenRemote Assets (Tâche A)** ❌ +- **Problème** : API retourne systématiquement `HTTP 405 Method Not Allowed` +- **Cause** : Malgré JWT valide avec audience 'openremote', l'API refuse les requêtes +- **Impact** : Impossible de créer les 60 assets (30 capteurs × 2 realms) +- **Solution requise** : + - Débogage API (logs Keycloak/OpenRemote) + - Ou création manuelle via l'UI Web OpenRemote + - URL : https://openremote.digitribe.fr/manager/#/assets + +### 2. **Services Unhealthy** ⚠️ +| Service | Status | Problème identifié | +|---------|--------|-------------------| +| smart-city-cratedb-stellio | unhealthy | Erreurs auth CrateDB (user "postgres" from 85.11.167.232) | +| smart-city-mosquitto | unhealthy | À investiguer | +| smart-city-iot-mongodb | unhealthy | MongoDB healthcheck échoue | +| smart-city-pulsar-distribution | unhealthy | À investiguer | +| bunkerm_bunkerm_1 | unhealthy | Mosquitto interne | + +**Action** : Vérifier les logs et corriger les configurations d'authentification + +### 3. **ThingsBoard** ❌ +- **Status** : En boucle de redémarrage (`Restarting (1)`) +- **Cause** : Volumes manquants (`/home/eric/smart-city-digital-twin-martinique/thingsboard-data/` créé mais vide) +- **Config** : `thingsboard.conf` manquant +- **Action requise** : Configurer proprement ThingsBoard ou l'exclure temporairement + +### 4. **Simulateur - 30 Capteurs** 🔄 +- **Status** : Configuration par défaut (10 capteurs au total) +- **Action** : Définir `SENSOR_COUNT=30` dans l'environnement du simulateur +- **Répartition attendue** : 10 EMQX + 10 Mosquitto + 10 BunkerM + +--- + +## 📋 ACTIONS NÉCESSAIRES (PRIORITAIRES) + +### Immédiat +1. **OpenRemote Assets** : + - Se connecter à https://openremote.digitribe.fr/manager/#/assets + - Créer manuellement 60 assets (30 capteurs dans realm `master` + 30 dans `smartcity-martinique`) + - Types : AirQualityObserved, TrafficFlowObserved, OffStreetParking, NoiseLevelObserved, WeatherObserved, LightObserved + +2. **Stabiliser services unhealthy** : + ```bash + # Investiguer CrateDB Stellio + docker logs smart-city-cratedb-stellio --tail 50 + + # Investiguer Mosquitto + docker logs smart-city-mosquitto --tail 50 + ``` + +3. **Configurer simulateur 30 capteurs** : + ```bash + cd ~/smart-city-digital-twin-martinique + SENSOR_COUNT=30 docker compose -f docker-compose.yml up -d simulator + ``` + +### Ultérieur +4. **ThingsBoard** : Configurer proprement ou documenter comme "hors-service" +5. **Compléter dashboards Grafana** : Parking, Noise, Light +6. **Mettre à jour documentation architecture** (après vérification complète Stellio) + +--- + +## 🎯 ARCHITECTURE VALIDÉE (partiellement) + +``` +Simulateur (30 capteurs attendus) + ↓ +Brokers MQTT (EMQX ✅, Mosquitto ✅, BunkerM ✅) + ↓ +IoT Agents (EMQX→Orion-LD ✅, Mosquitto→Orion-LD ✅, BunkerM→Stellio ✅) + ↓ +Context Brokers (Orion-LD ✅, Stellio ✅) + ↓ +QuantumLeap → CrateDB (tables: 6 créées ✅) + ↓ +Grafana (Dashboards: AirQuality ✅, Traffic ✅, Weather ✅) + ↓ +OpenRemote (Assets: ❌ à créer manuellement) +``` + +--- + +## 📝 NOTES POUR LA PROCHAINE SESSION + +1. **OpenRemote** : API 405 à déboguer ou création manuelle via UI +2. **ThingsBoard** : Décision requise (réparer ou désactiver) +3. **30 capteurs** : `SENSOR_COUNT=30` à configurer +4. **Services unhealthy** : Investiguer et stabiliser +5. **Documentation** : Mettre à jour diagrammes après stabilisation complète + +--- + +*Rapport généré le 2026-05-06 à 22:00 - Eric FELIXINE* +*Session en cours - "Continue" actif*