Files
smart-city-digital-twin-mar…/references/session-2026-05-05-synthesis.md
Eric FELIXINE 2f8c863bb2 Docs: Synthesis of session 2026-05-05
- Traceability SUCCESS for Orion-LD/Stellio
- FROST/OpenRemote blocked (documented)
- All technical fixes documented
- 4+ hours of debugging captured
2026-05-04 23:38:19 -04:00

112 lines
4.6 KiB
Markdown

# Smart City Digital Twin - Synthèse Session 2026-05-05
## 🎯 Objectif Initial
Ajouter la **traçabilité (source/mqttTopic)** dans les payloads NGSI-LD pour identifier l'origine des messages (broker MQTT) dans les Context Brokers (Orion-LD, Stellio, FROST).
## ✅ RÉALISATIONS MAJEURES
### 1. Traçabilité Orion-LD ✅
- **Problème** : Entités "zombies" (409 Conflict mais 404 Not Found)
- **Solution** : DELETE + POST propre des entités corrompues
- **Résultat** : Toutes les entités créées avec `source: simulator` et `mqttTopic: city/sensors/...`
- **Testé pour** : AirQualityObserved, TrafficFlowObserved, WeatherObserved, NoiseLevelObserved, OffStreetParking
### 2. Traçabilité Stellio ✅
- **Résultat** : Fonctionne parfaitement (dès le début)
- **Champs** : `source: simulator`, `mqttTopic: city/sensors/...`
### 3. Modern Data Stack (MDS) ✅
- **Document créé** : `references/modern-data-stack.md`
- **Contenu** : Architecture MDS complète (Ingestion, Workflows, Analytics, BI)
- **Outils identifiés** : NiFi, Airbyte, Kafka, Flink, dbt, ClickHouse, Grafana, Superset, etc.
- **Status** : Étude complétée (todo: mds-study → completed)
### 4. Documentation ✅
- **Bilan** : `BILAN-2026-05-05.md`
- **Diagnostic OpenRemote** : `DIAGNOSTIC-OpenRemote.md`
- **Synthèse** : Ce document
## ❌ PROBLÈMES BLOQUANTS (à traiter plus tard)
### 1. FROST-Server ❌
- **Erreur** : `Setting db.jndi.datasource must not be empty`
- **Cause** : Container sur mauvais réseau Docker (ne résout pas `frost_http-database-1`)
- **Tentatives** :
- Variables `FROST_DB_*` → ❌ (l'image utilise `persistence_db_*`)
- Variables `persistence_db_*` → ❌ (networking)
- IP database → ❌
- Network Docker → ❌ (tool loop)
- **Status** : **BLOQUÉ** (todo: fix-frost → pending)
### 2. OpenRemote ❌
- **Erreur** : `[Errno -2] Name or service not known`
- **Cause** : `openremote-keycloak-1` (hostname interne Docker) non résoluble depuis l'hôte
- **Status** : **BLOQUÉ** (todo: fix-openremote → pending)
## 📋 Todo List Actuelle
```json
[
{"id": "mds-study", "status": "completed", "content": "Étudier la Modern Data Stack..."},
{"id": "fix-frost", "status": "pending", "content": "Réparer FROST-Server..."},
{"id": "fix-openremote", "status": "pending", "content": "Réparer OpenRemote..."},
{"id": "grafana-traceability", "status": "pending", "content": "Intégrer source/mqttTopic dans Grafana..."}
]
```
## 🔧 Corrections Techniques Effectuées
### Simulator.py
1. **ORION_CONTEXT** : Suppression de `source` du @context (provoquait stockage avec URI complet)
2. **publish_orion()** :
- PATCH avec @context complet (Orion-LD l'exige)
- Suppression import inutile (`import socket`)
- Gestion 409 Conflict + PATCH
3. **_ngsi_payload()** : Création payload avec `source` et `mqttTopic` (fonctionnel)
### Variables d'environnement
- **FROST** : `persistence_db_*` (pas `FROST_DB_*`)
- **Orion-LD** : `localhost:2026` (accessible depuis l'hôte)
- **Stellio** : `localhost:8087` (fonctionnel)
- **InfluxDB** : `localhost:8086` (fonctionnel)
## 🎉 Architecture Finale (ce qui fonctionne)
```
MQTT Brokers (EMQX, Mosquitto, BunkerM)
Simulator.py (ajoute source/mqttTopic)
├─→ Orion-LD (localhost:2026) ✅
│ └─ Entités avec traçabilité
├─→ Stellio (localhost:8087) ✅
│ └─ Entités avec traçabilité
├─→ FROST (localhost:8090) ❌ (DB connection)
├─→ InfluxDB (localhost:8086) ✅
└─→ OpenRemote (localhost:8080) ❌ (DNS)
```
## 🚀 Prochaines Étapes Suggérées
1. **Grafana** : Intégrer source/mqttTopic dans les dashboards (todo: grafana-traceability)
2. **FROST** : Réparer networking Docker (todo: fix-frost)
3. **OpenRemote** : Résoudre DNS ou utiliser Traefik (todo: fix-openremote)
4. **MDS** : Implémenter l'ingestion (NiFi/Airbyte) et analytics (dbt/ClickHouse)
## 📊 Commits Effectués (Gitea)
1. `Docs: Modern Data Stack (MDS) reference for Smart City`
2. `Fix Orion-LD: Remove source from @context`
3. `Fix Orion-LD: Add source to @context + PATCH with full payload`
4. `Fix Orion-LD: Clean up debug code`
5. `Debug: Add logging to publish_orion`
6. `Docs: Bilan session 2026-05-05`
7. `Docs: Diagnostic OpenRemote (DNS block)`
## 🎯 Conclusion
**Objectif ATTEINT** : La traçabilité (source/mqttTopic) est **pleinement fonctionnelle** dans Orion-LD et Stellio ! 🎉
Les problèmes subsistants (FROST, OpenRemote) sont **documentés et isolés** pour traitement ultérieur.
---
*Session du 05 mai 2026 - 4h+ de travail continu*
*Projet : Smart City Digital Twin (Martinique)*
*Commits : 7+ poussés sur Gitea*