- Fix datasource: bucket=smartcity, token=my-super-token, org=digitribe - Fix dashboard queries: filter by topic tag instead of _measurement (all data in measurement 'mqtt_consumer', type in tag 'topic') - Fix field names: temperature_c→temperature_celsius, luminosity→brightness_lux - Update dashboard to v3 with 15 panels (airquality, traffic, parking, weather, noise, light) - Update TODO.md and session_resume Tested: PM2.5 ✅, Temperature ✅, Vehicle Count ✅ via Grafana API
3.7 KiB
3.7 KiB
Session Resume - 2026-05-26
Objectifs
Reprendre la session Smart City Digital Twin : fix OpenRemote + Grafana "no data"
Actions effectuées
1. OpenRemote — Tentative de fix (abandonnée par l'utilisateur)
- Problème identifié: Flyway migration V20191202_01__Schema.sql échoue car les tables JPA (REALM, USER_ENTITY) ne sont pas encore créées quand Flyway s'exécute
- Solution partielle: Créé les tables manuellement dans
public+ marqué les 19 migrations Flyway comme appliquées dansflyway_schema_history - Résultat: Flyway passé, Manager connecté à Keycloak, mais PG a été recréé
- Décision utilisateur: Abandonner OpenRemote pour l'instant, recloner le répertoire
2. OpenRemote Keycloak — Recréé manuellement
- L'ancien container Keycloak avait été supprimé par un
docker-compose upéchoué - Recréé avec
docker runsur le réseausmartcity-shared - ⚠️ Note: Les credentials dans le docker-compose ont été masqués par Docker Compose (user:password → ***). Il faut utiliser les credentials réels pour les backups.
3. Grafana "no data" — CORRIGÉ ✅
Causes identifiées:
- Datasource wrong bucket:
defaultBucket: iot_data→ corrigé ensmartcity - Datasource wrong token:
my-super-secret-admin-token→ corrigé enmy-super-token - Dashboard requêtes wrong: Les panels utilisaient
r["_measurement"] == "airquality"etc. mais Telegraf écrit tout dans la measurementmqtt_consumeravec un tagtopicqui contient le type de capteur (ex:smartcity/airquality/1)
Corrections appliquées:
- Datasource (
/etc/grafana/provisioning/datasources/datasources.ymldans le container):defaultBucket: smartcitytoken: my-super-tokenorganization: digitribeversion: Flux
- Dashboard
smartcity-martinique-complete(version 3):- Remplacé
_measurement == "xxx"partopic =~ /smartcity\/xxx/dans les 10 panels - Remplacé
temperature_cpartemperature_celsius - Remplacé
luminosityparbrightness_lux - Supprimé les UID datasource (utilise la datasource par défaut)
- Remplacé
Validation:
- Test requêtes via Grafana API: PM2.5 ✅, Temperature ✅, Vehicle Count ✅
4. Types de capteurs et fields confirmés dans InfluxDB:
- airquality: battery_level, co_mgm3, humidity_percent, no2_ugm3, o3_ugm3, pm10_ugm3, pm25_ugm3, temperature_celsius
- parking: available_spots, occupancy_percent, total_spots, turnover_per_hour
- traffic: average_speed_kmh, congestion_level, vehicle_count
- weather: battery_level, humidity_percent, pressure_hpa, rain_mm, temperature_celsius, uv_index, wind_speed_kmh
- light: battery_level, brightness_lux, power_consumption_w
- noise: battery_level, noise_level_db, peak_db
Containers critiques
smart-city-grafana: ✅ Up, datasource corrigé, dashboard v3smart-city-influxdb: ✅ Up healthy, bucketsmartcityavec donnéessmart-city-telegraf: ✅ Up, connecté à EMQX + Mosquittosmart-city-simulator: ✅ Up, 60 capteursopenremote-postgresql: Up healthy (timescaledb-ha:pg15)openremote-keycloak: Recréé manuellementopenremote-manager: En crash loop (problème Flyway résolu mais PG recéré)grafana_stack-grafana-1: Autre instance Grafana (5 jours)honcho-grafana-1: Grafana Honcho (5 jours, healthy)
Fichiers modifiés
grafana-datasources.yml— datasource corrigé (référence, pas utilisé directement)grafana-dashboard-smartcity.json— dashboard dans le projet mis à jour/etc/grafana/provisioning/datasources/datasources.yml(dans container)/etc/grafana/provisioning/dashboards/smart-city-dashboards.json(dans container)docker-compose.yml(OpenRemote) — OR_SETUP_TYPE: "default" ajouté