5.5 KiB
5.5 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 du flux complet : Simulator → 3 IoT-Agents → Orion-LD → QuantumLeap → CrateDB → Grafana.
État d'avancement (17h30)
✅ Réalisé
- 3 IoT-Agents déployés : Un par broker MQTT (EMQX:4041, Mosquitto:4042, BunkerM:4043)
- Orion-LD opérationnel : Port 1026, connecté à MongoDB existant
- QuantumLeap corrigé : Variables CRATE_HOST/PORT (plus de QL_CRATEDB_*)
- CrateDB ↔ Grafana : Datasource "CrateDB-SmartCity" (ID: 23) ajoutée
- Flux validé (logs) : IoT-Agent → Orion-LD (message "Value updated successfully")
- Diagrammes mis à jour : data-flow-diagram.md & .html (3 IoT-Agents architecture)
- Git commit & push : Tous les changements sur Gitea
❌ Problèmes en cours
- Orion-LD vide :
curl http://localhost:1026/v2/entitiesretourne[]malgré les logs IoT-Agent positifs- Cause probable : Problème de résolution de nom (logs montrent
orion-ldau lieu desmart-city-orion-ld) - Action : Corriger les aliases réseau dans docker-compose.orion-ld.yml (FAIT)
- Cause probable : Problème de résolution de nom (logs montrent
- Stellio : Pas encore de flux de données (abonnement Orion-LD → Stellio à configurer)
- Simulateur : Doit publier sur le topic avec préfixe
json/(ex:json/smartcity-api-key/airquality_001/attrs)
Architecture finale (3 IoT-Agents)
Simulateur (Python)
↓ (publie sur 3 brokers avec format IoT-Agent)
┌─────────────┬─────────────┬─────────────┐
│ EMQX │ Mosquitto │ BunkerM │
│ port 11883 │ port 1883 │ port 1900 │
└──────┬──────┴──────┬──────┴──────┬──────┘
↓ ↓ ↓
┌─────────────┬─────────────┬─────────────┐
│iot-agent-emqx│iot-agent- │iot-agent- │
│(port 4041) │mosquitto │bunkerm │
│ │(port 4042) │(port 4043) │
└──────┬──────┴──────┬──────┴──────┬──────┘
└──────────────┴──────────────┘
↓
Orion-LD (port 1026)
(http://smart-city-orion-ld:1026)
↓
Subscription (ID: 69fbb09af55b82cad2a38008)
Forward to QuantumLeap
↓
QuantumLeap (port 8668)
↓
CrateDB (ports 5432/4200)
↓
Grafana (port 3001)
Configuration des IoT-Agents
Services enregistrés (pour chaque IoT-Agent)
{
"apikey": "smartcity-api-key",
"cbroker": "http://smart-city-orion-ld:1026",
"resource": "/",
"type": "AirQualityObserved",
"service": "smartcity",
"subservice": "/"
}
Devices enregistrés
- Device ID : airquality_001
- Entity Name : urn:ngsi-ld:AirQualityObserved:airquality_001
- Attributes : NO2 (Number), temperature (Number), humidity (Number)
Sous-domaines (Traefik)
iot-agent-emqx.digitribe.fr→ Port 4041iot-agent-mosquitto.digitribe.fr→ Port 4042iot-agent-bunkerm.digitribe.fr→ Port 4043orion-ld.digitribe.fr→ Port 1026quantum-leap.digitribe.fr→ Port 8668grafana.digitribe.fr→ Port 3001
Fichiers modifiés et commités
docker-compose.iot-agent.yml: 3 instances IoT-Agentdocker-compose.orion-ld.yml: Orion-LD avec MongoDBdocker-compose.quantumleap.yml: Variables CRATE_HOST/PORTsimulator.py: Publication sur 3 brokersdata-flow-diagram.md: Diagramme Mermaid mis à jourdata-flow-diagram.html: Version HTML pour Giteasession_resume_2026-05-06.md: Ce fichier
Commandes utiles pour debug
Vérifier IoT-Agent
curl -s http://localhost:4041/iot/devices -H 'FIWARE-Service: smartcity'
docker logs smart-city-iot-agent-emqx --tail 50 | grep -i "update\|orion\|error"
Vérifier Orion-LD
curl -s http://localhost:1026/v2/entities?type=AirQualityObserved
docker logs smart-city-orion-ld --tail 50
Tester le flux complet
# Publication MQTT (avec préfixe json/)
mosquitto_pub -h localhost -p 11883 \
-t "json/smartcity-api-key/airquality_001/attrs" \
-m '{"NO2": 70.5, "temperature": 31.0, "humidity": 88.0}'
# Attendre 10s puis vérifier Orion-LD
sleep 10 && curl -s http://localhost:1026/v2/entities
Prochaines étapes
- Valider le flux : Vérifier qu'Orion-LD reçoit les entités (corriger le nom d'hôte)
- Configurer Stellio : Abonnement Orion-LD → Stellio (port 8080)
- Créer les dashboards Grafana : Utiliser la datasource CrateDB-SmartCity
- Mettre à jour le simulateur : S'assurer qu'il publie sur le bon topic (
json/...) - Tester avec les 3 brokers : Valider EMQX, Mosquitto et BunkerM
Notes importantes
- L'IoT-Agent écoute les topics avec préfixe
json/(ex:$share/json//+/+/attrs/+) - Le simulateur doit publier sur
json/smartcity-api-key/{device_id}/attrs - Pour Stellio, utiliser l'URL :
http://stellio-api-gateway:8080/ngsi-ld/v1/entityOperations/upsert - QuantumLeap utilise CrateDB avec le schéma
quantumleap
Dernière mise à jour : 06 Mai 2026, 17h30