3.5 KiB
3.5 KiB
Résumé Final - Smart City Digital Twin (06 Mai 2026 - 19h30)
✅ Ce qui fonctionne
- MQTT Brokers : EMQX (11883), Mosquitto (1883), BunkerM (1900) - OK
- IoT-Agents : Reçoivent les données MQTT et mettent à jour Orion-LD - OK
- Orion-LD : Contient les entités (vérifier via
curl http://localhost:1026/v2/entities) - CrateDB : Fonctionne parfaitement (INSERT manuel OK)
- Grafana : Datasources CrateDB configurées (IDs 23, 24)
- Redis : Installé et accessible par QuantumLeap
❌ Problème bloquant : QuantumLeap → CrateDB
Symptômes :
- QuantumLeap reçoit les notifications (
/v2/notify→ "Notification successfully processed") - Aucune donnée insérée dans CrateDB (
quantumleap.etairqualityobserved) - La queue Redis reste vide (
rq:queue:defaultn'existe pas) WQ_OFFLOAD_WORK=Trueest activé mais les tâches ne sont pas ajoutées à la queue
Investigation :
offload_to_work_queue()retourneTrue✅redis_connection()utiliseREDIS_HOST=smart-city-redisetREDIS_PORT=6379✅- Worker RQ lancé et connecté ✅
- Mais
InsertAction.enqueue()n'ajoute rien à la queue Redis
Hypothèses :
InsertActionn'est pas picklable (échec silencieux deq.enqueue())- Problème de connexion Redis dans
enqueue() - La méthode
trans.insert()échoue silencieusement - Bug dans le module
wqde QuantumLeap
🛠️ Solution temporaire (pour Grafana)
Des données de test ont été insérées manuellement dans CrateDB :
INSERT INTO quantumleap.etairqualityobserved (entity_id, time_index, no2, temperature, humidity) VALUES
('urn:ngsi-ld:AirQualityObserved:sensor001', 1778112000000, 45.5, 28.0, 85.0),
...
Dashboards Grafana configurés :
- Dashboard Orion-LD (ID: 21)
- Dashboard Stellio (ID: 22)
- Datasource CrateDB-SmartCity (ID: 23, port 5432)
- Datasource CrateDB-Stellio (ID: 24, port 5433)
📋 Actions pour finaliser
-
Stellio Pipeline :
- Corriger
docker-compose.quantumleap-stellio.yml(CRATE_PORT=4200) - Créer subscription Stellio → QuantumLeap-Stellio
- Vérifier
CrateDB-Stellio
- Corriger
-
QuantumLeap Debug (à faire ultérieurement) :
- Vérifier si
InsertActionest picklable - Ajouter des logs dans
wq/core/task.py(enqueue()) - Tester
trans.insert()manuellement avec un payload simple - Consulter la documentation QuantumLeap / issues GitHub
- Vérifier si
-
Simulateur :
simulator.pycorrigé pour n'utiliser que MQTT (Orion/Stellio désactivés)- MQTT OK, IoT-Agent OK, mais QuantumLeap ne traite pas les notifications
🔧 Commandes utiles
# Vérifier CrateDB
docker exec smart-city-cratedb crash -c "SELECT * FROM quantumleap.etairqualityobserved LIMIT 10;"
# Vérifier Redis
docker exec smart-city-redis redis-cli keys "*"
# Voir les logs QuantumLeap
docker logs smart-city-quantumleap --tail 100
# Tester notification manuelle
curl -s -X POST http://localhost:8668/v2/notify -H 'Content-Type: application/json' \
-d '{"subscriptionId": "test", "data": [{...}]}'
📊 Fichiers modifiés
docker-compose.quantumleap.yml: +Redis, +healthcheck CrateDB, +variables environnementsimulator.py: Orion-LD et Stellio désactivés (MQTT uniquement)RESUME_FINAL_2026-05-06.md: Ce fichier
Prochaine étape : Configurer la pipeline Stellio et finaliser les dashboards Grafana avec les données de test.
Le problème QuantumLeap nécessite une investigation plus poussée du code source (wq module).