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

4.6 KiB

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

[
  {"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