5.1 KiB
5.1 KiB
Session Resume - Smart City Digital Twin Martinique (2026-05-06) - FINAL
Objectif
Finaliser l'installation et l'accessibilité du Smart City Digital Twin Martinique, spécifiquement la mise en service des flux de données : MQTT → IoT-Agent → Context Brokers (Stellio) → QuantumLeap → CrateDB → Grafana
État des conteneurs (17h00)
- smart-city-iot-agent : Up (port 4041) - Service et devices créés ✅
- smart-city-quantumleap : Up (port 8668) - FIXÉ ✅ (variables CRATE_HOST/PORT au lieu de QL_CRATEDB_*)
- smart-city-cratedb : Up (ports 5432/4200) - Accessible ✅
- smart-city-grafana : Up (port 3001) - Prêt mais datasource CrateDB à finaliser ⚠️
- stellio-api-gateway : Up (port 8080) - Mais retourne 404 sur les entités ❌
- smart-city-simulator : Up - Modifié pour publier au format IoT-Agent ✅
Travail accompli
- Diagramme de flux mis à jour avec IoT-Agent, QuantumLeap, CrateDB (commit+push) ✅
- IoT-Agent : Service et devices créés (HTTP 201) ✅
- Simulateur : Ajout de
publish_iot_agentet variableENABLE_IOT_AGENT✅ - QuantumLeap :
- BUG FIX : Changé
QL_CRATEDB_HOST/PORTversCRATE_HOST/PORT(attendu par QuantumLeap) ✅ - Commit & push effectués ✅
- BUG FIX : Changé
- CrateDB : Accessible via port 4200 (SQL interface) ✅
- Grafana : Accessible, mais datasource CrateDB nécessite mise en réseau ⚠️
- Session resume mis à jour ✅
Blocages rencontrés
-
Flux MQTT → IoT-Agent → Stellio :
- IoT-Agent reçoit le message MQTT mais Stellio retourne 404
- Problème probable : IoT-Agent ne transmet pas correctement à Stellio (timeout/connexion)
-
QuantumLeap :
- FIXÉ : Utilisation des bonnes variables d'environnement (
CRATE_HOST,CRATE_PORT) - Endpoint API :
/v2/op/notify(pour recevoir les notifications) - Test manuel de notification à faire
- FIXÉ : Utilisation des bonnes variables d'environnement (
-
Stellio :
- POST /ngsi-ld/v1/entities retourne 405 (method not allowed)
- GET /ngsi-ld/v1/entities retourne 404 (pas d'entités)
- Recommandation : Utiliser Orion-LD ou FROST-Server à la place
-
Grafana ← CrateDB :
- Grafana n'est pas sur le même réseau Docker que CrateDB (
smartcity-shared) - Le port 5432 (PostgreSQL) timeout depuis Grafana
- Solution : Ajouter
networks: - smartcity-sharedau service Grafana dansdocker-compose.yml
- Grafana n'est pas sur le même réseau Docker que CrateDB (
Prochaines étapes
-
Grafana : Finaliser les dashboards (en attendant que CrateDB soit connecté)
- Accéder à https://grafana.digitribe.fr
- Créer un dashboard "Smart City Overview" avec les données InfluxDB existantes
- Une fois CrateDB connecté : ajouter panels "Air Quality", "Traffic Flow", etc.
-
QuantumLeap : Tester avec une notification NGSI simulée
docker exec smart-city-quantumleap curl -X POST http://localhost:8668/v2/op/notify \ -H 'Content-Type: application/json' \ -d '{"subscriptionId": "test", "data": [{...}]}' -
Flux complet : Utiliser Orion-LD au lieu de Stellio
- Déployer Orion-LD avec
-dbhost smart-city-mongodb - Créer une subscription Orion-LD → QuantumLeap
- Déployer Orion-LD avec
-
Pulsar Manager : Résoudre le login admin (toujours inaccessible)
Commandes utiles
# Vérifier IoT-Agent
curl -s http://localhost:4041/iot/services -H 'FIWARE-Service: smartcity' -H 'FIWARE-ServicePath: /'
curl -s http://localhost:4041/iot/devices -H 'FIWARE-Service: smartcity' -H 'FIWARE-ServicePath: /'
# Tester QuantumLeap (via Traefik)
curl -k https://quantum-leap.digitribe.fr/v2/types -w "\nHTTP %{http_code}\n"
# Tester Stellio
curl -s http://localhost:8080/ngsi-ld/v1/entities -H "Accept: application/ld+json" -w "\nHTTP %{http_code}\n"
# Publier un message MQTT pour IoT-Agent
mosquitto_pub -h localhost -p 11883 -t "smartcity-api-key/airquality_001/attrs" \
-m '{"NO2": 50.5, "temperature": 30.0, "humidity": 90.0}'
# Accéder à Grafana
https://grafana.digitribe.fr (admin / Digitribe972)
# Vérifier CrateDB
docker exec smart-city-cratedb crash -c "SELECT * FROM quantumleap.etairqualityobserved LIMIT 5;"
Fichiers modifiés
simulator.py: Ajoutpublish_iot_agent, variableENABLE_IOT_AGENTdocker-compose.iot-agent.yml: Configuration EMQX et Stelliodocker-compose.quantumleap.yml: FIX variablesCRATE_HOST/PORTdata-flow-diagram.mdet.html: Mise à jour architecturesession_resume_2026-05-06.md: Ce fichier
Notes importantes
- Le simulateur publie maintenant sur le topic
smartcity-api-key/{device_id}/attrsvia EMQX - IoT-Agent est configuré pour transmettre à Stellio (cbroker: http://stellio-api-gateway:8080)
- QuantumLeap est maintenant correctement configuré avec CrateDB
- CrateDB a des données de test insérées manuellement
- Grafana a besoin que le réseau
smartcity-sharedsoit ajouté à son service
Pour finaliser (prochaine session)
- Ajouter
networks: - smartcity-sharedà Grafana dansdocker-compose.yml - Connecter CrateDB comme datasource Postgres dans Grafana
- Créer les dashboards Grafana pour Smart City
- Tester le flux complet avec Orion-LD (plus stable que Stellio)