Eric FELIXINE
89a821a364
chore: update TODO.md — ODK progress, ChirpStack pw reset, Smart App City arch
2026-05-26 19:06:07 -04:00
Eric FELIXINE
94f74f2dfc
feat: add smart-app-city sub-project architecture
...
- Architecture globale (React Native + NestJS + FastAPI)
- Beckn Protocol (OTN-DPI) integration docs
- AI layer: RAG pipeline + AI Agents (LocalAI + Qdrant)
- i18n: FR/EN/ES/DE support
- Docker Compose for backend services
- Project structure with frontend, backend, ai, beckn directories
2026-05-26 18:47:02 -04:00
Eric FELIXINE
f1e1b98519
chore: session backup 2026-05-28 — TODO update + snapshot
2026-05-26 17:20:04 -04:00
Eric FELIXINE
e4c558c296
Dashboard v7: valeurs temps réel dans panneau stat + dropdown capteur
...
- Panneau Stat en haut: 7 métriques temps réel (temp, humidité, NO2, O3, CO, batterie, PM2.5)
- Dropdown avec includeAll + allValue '.*'
- Regex dans toutes les queries Flux
- historique: 7j pour NO2 et PM2.5
- Refresh: 5s
2026-05-26 14:20:00 -04:00
Eric FELIXINE
65e2d42f63
Dashboard v5: variable capteur + tooltip details + coordonnees Sainte-Anne
...
- Ajout variable pour filtrage par topic InfluxDB
- Tous les panels filtres par capteur selectionne
- Tooltip markersGeomap en mode details
- Coordonnees Sainte-Anne corrigees (deplacement ~300m sur terre)
- 1001 topics disponibles dans InfluxDB
2026-05-26 14:05:33 -04:00
Eric FELIXINE
a7716102fd
Fix GeoMap dashboard v3 - temperature_celsius + Geomap layer config
...
Fixes:
- Temperature field: temperature_c (wrong) -> temperature_celsius (correct)
- Geomap panel: added explicit location config with lat/lon field mapping
- Added PM2.5 timeseries panel
- Dashboard UID: geomap-test-v1
2026-05-26 13:52:25 -04:00
Eric FELIXINE
7643d88ffb
Add GeoMap dashboard + ChirpStack REST API config
...
- Grafana GeoMap dashboard (PostGIS + InfluxDB) for real-time sensor visualization
- Dashboard accessible at: https://grafana.digitribe.fr/d/geosmart-city-2026/smart-city-geomap-temps-reel
- PostGIS datasource added (user: grafana, network: smartcity-shared)
- InfluxDB-SmartCity-Correct datasource configured
- ChirpStack REST API: added --cors-origins flag
2026-05-26 13:14:01 -04:00
Eric FELIXINE
7df2f6798f
feat: deploy Superset and Metabase behind Traefik
...
- Superset: docker-compose.superset.yml (app + postgres + redis)
URL: https://superset.digitribe.fr
Port: 8088 (internal), Traefik routes Host(superset.digitribe.fr)
- Metabase: docker-compose.metabase.yml (app + postgres)
URL: https://metabase.digitribe.fr
Port: 3000 (internal), Traefik routes Host(metabase.digitribe.fr)
- Traefik configs: 31-superset.yml, 32-metabase.yml
- Both services use smartcity-shared and traefik-public networks
- Both use letsencrypt TLS certificates
Verified:
- Superset: UP healthy, accessible via https://superset.digitribe.fr
- Metabase: UP healthy, accessible via https://metabase.digitribe.fr
2026-05-25 22:59:25 -04:00
Eric FELIXINE
943836f8fb
feat: activate BunkerM MQTT broker + fix Telegraf
...
- BunkerM: recreated with port 1883 (external) -> 1900 (internal)
- BunkerM: disabled dynsec plugin, using password_file auth (bunker/bunker)
- Simulator: ENABLE_BUNKER=1, BUNKERM_PORT=1900
- Telegraf: reactivated BunkerM consumer on port 1900
- Telegraf: recreated container (3 MQTT consumers connected)
- Grafana: dashboard v4 with corrected Flux queries
- Grafana: datasource fixed (bucket=smartcity, token=my-super-token)
Verified:
- Simulator publishes to EMQX ✅ , Mosquitto ✅ , BunkerM ✅
- Telegraf receives from all 3 brokers ✅
- InfluxDB has data from all brokers ✅
- Grafana dashboard displays data ✅
2026-05-25 20:03:55 -04:00
Eric FELIXINE
5bbd5a6e5d
fix: Grafana dashboard 'no data' — datasource + Flux queries
...
- 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
2026-05-25 16:39:50 -04:00
Eric FELIXINE
6d1d9c8620
fix: telegraf containers names + openremote pg image + session snapshot 2026-05-25
...
- telegraf.conf: fix Mosquitto/BunkerM container names (hyphens not underscores)
- tegraf.conf: comment out BunkerM consumer (auth fails, simulator not sending)
- openremote/docker-compose.yml: switch PG image to timescaledb-ha:pg15 (fixes timescaledb_toolkit crash)
- Add session_resume + architecture snapshot 2026-05-25
- Update TODO.md with current status
2026-05-25 14:13:39 -04:00
Eric FELIXINE
eb97f2a7dd
Fix: Traefik dynamic config, Ditto things startup crash, and OpenRemote sensor coordinates
2026-05-20 18:18:21 -04:00
Eric FELIXINE
45f3ab8a3d
docs: session resume 2026-05-20 - stabilization and platforms deployment
2026-05-20 13:19:29 -04:00
Eric FELIXINE
98f0bcb021
Session 2026-05-20: Contexus MQTT devices, OpenRemote agent, 60 capteurs configures
2026-05-20 00:58:48 -04:00
Eric FELIXINE
a4e05f557c
Session 2026-05-20: Contexus deploye, OpenRemote assets corriges, Traefik config fix
2026-05-19 21:48:38 -04:00
Eric FELIXINE
5ddbf7de93
Add map screenshot with assets
2026-05-19 20:54:26 -04:00
Eric FELIXINE
805986e3f6
Add Playwright screenshots 2026-05-19: Manager login + map page
2026-05-19 19:01:40 -04:00
Eric FELIXINE
d4605ee072
Add session resume 2026-05-19
2026-05-19 16:36:08 -04:00
Eric FELIXINE
2377bc07fd
Session 2026-05-19: OpenRemote map display investigation, cleanup, fresh install
...
- Investigated map display issues (agentLink, GeoJSON coords, realm config)
- Cleaned up all dashboards and containers
- Fresh Manager installation (PostgreSQL in recovery)
- Updated TODO.md with current status
- GeoJSON proxy: fixed coordinate order (lon/lat)
- Session resume saved
2026-05-19 16:22:26 -04:00
Eric FELIXINE
d1e6bdb685
docs: add skills inventory to TODO.md (epicollect5, odk, kobo, superset, metabase, contexus)
2026-05-19 15:48:46 -04:00
Eric FELIXINE
47746b584c
fix: OpenRemote PUT 403/409, MQTTv5 callback, geojson-proxy API REST
...
- simulator.py: Fix MQTTv5 callback crash (5th arg *args)
- simulator.py: Fix _or_put() - GET version+realm before PUT, inject version in payload
- simulator.py: Fix token TTL (min 30s cache)
- simulator.py: Round-robin OR updates (~5 assets/iteration instead of 60)
- geojson-proxy: Rewrite using REST API instead of psycopg2 (PG auth issue)
- geojson-proxy: Add sensorType + attributes in properties for map styling
- docker-compose.yml: Add openremote_default network + DB vars for proxy
- docker-compose.yml: Add OR_REALM=master for geojson-proxy
Resolves: OpenRemote 403 (wrong realm in payload), 409 (missing version),
MQTTv5 callback crash, geojson-proxy DB connection failure
2026-05-18 10:04:12 -04:00
Eric FELIXINE
7937e2bb43
Session resume 2026-05-17: sauvegarde finale
2026-05-17 20:05:42 -04:00
Eric FELIXINE
55fabea16a
Documentation géospatiale: GeoServer, PostGIS, MapStore
2026-05-17 19:55:40 -04:00
Eric FELIXINE
7477410813
Session 2026-05-17: GeoServer, PostGIS dédié, MapStore, ChirpStack
...
- GeoServer: workspace Digitribe + Data Store PostGIS dédié
- PostGIS dédié: conteneur postgis-smartcity (PostGIS 3.4)
- Couche sensors: 55 capteurs IoT importés depuis OpenRemote
- MapStore: GeoServer WMS ajouté au CORS
- ChirpStack: credentials réinitialisés (admin/admin1234)
- BunkerM: DNS corrigé (underscores → hyphens)
- Ditto: config MongoDB et auth devops
- Documentation: session_resume + TODO.md
2026-05-17 19:18:24 -04:00
Eric FELIXINE
1006df137d
Session 2026-05-13: Nettoyage infra, BunkerM+Traefik, agentLink→REST, ChirpStack
...
- Nettoyage: suppression conteneurs TTS, anciens Chirpstack, exited/excess
- BunkerM recréé et ajouté à traefik-public (mosquitto2.digitribe.fr)
- Config Traefik mise à jour: 3 fichiers → bunkerm-bunkerm-1
- AgentLink MQTT désactivé sur 25 assets (master+smartcity)
- REST OpenRemote activé dans simulateur (location GeoJSONPoint incluse)
- ChirpStack: nouveau docker-compose dans submodule
2026-05-13 08:05:20 -04:00
Eric FELIXINE
15e9851b9f
Session 2026-05-13: Nettoyage infra, BunkerM+Traefik, agentLink→REST, ChirpStack
...
- Nettoyage: suppression conteneurs TTS, anciens Chirpstack, exited/excess
- BunkerM recréé et ajouté à traefik-public (mosquitto2.digitribe.fr)
- Config Traefik mise à jour: 3 fichiers mosquitto2 → bunkerm-bunkerm-1
- AgentLink MQTT désactivé sur 25 assets (master+smartcity)
- REST OpenRemote activé dans simulateur (location GeoJSONPoint incluse)
- ChirpStack: nouveau docker-compose (postgres, redis, mosquitto, chirpstack)
- Session state documenté dans SESSION_STATE_2026-05-13.md
2026-05-13 08:03:27 -04:00
Eric FELIXINE
5fde1a2c8d
feat(lorawan): démarrage ChirpStack et The Things Stack
...
- ChirpStack opérationnel (port 8080/8090, gateway bridge UDP 1700)
- The Things Stack opérationnel (port 1885/1884, gateway UDP 1701)
- Fichages de configuration créés
- Docker-compose corrigés (réseaux smartcity-shared)
- Désactivation agentLink sur 35 assets du simulateur
- Correction _or_put: suppression If-Match header (403)
- realm smartcity identifié pour les assets du simulateur
2026-05-12 17:34:53 -04:00
Eric FELIXINE
a05e13c30c
feat(lorawan): ajout ChirpStack et The Things Stack
...
- Skills créés: chirpstack-lorawan, the-things-stack-lorawan
- docker-compose.chirpstack.yml: ChirpStack derrière Traefik
- docker-compose.the-things-stack.yml: TTS derrière Traefik
- data-flow-diagram.md: mise à jour avec LoRaWAN
- DOCKER-ARCHITECTURE: ajout conteneurs LoRaWAN
- Subdomaines Traefik: chirpstack, tts
Skills créés dans ~/.hermes/skills/iot/:
- chirpstack-lorawan
- the-things-stack-lorawan
2026-05-12 11:29:30 -04:00
Eric FELIXINE
dbf8b7f5ca
docs: état des lieux localisation capteurs OpenRemote
...
- Documentation des découvertes et corrections appliquées
- Problèmes restants identifiés (connexion MQTT, topics, déconnexion)
- Prochaines étapes recommandées
2026-05-12 08:18:32 -04:00
Eric FELIXINE
7331dbc90b
fix(simulator): corrections finales - topics MQTT, ASSET_MAP, location REST
...
Corrections:
- Topics MQTT: index basé sur position du capteur (pas compteur global itération)
- ASSET_MAP: mise à jour avec bons asset IDs (agentLink + location)
- Payload REST: ajout attribut location (GeoJSONPoint)
- Désactivation PUT REST sur assets avec agentLink (403 Forbidden)
- MQTT OpenRemote: tentative connexion anonyme (rc=5 persistant)
- Keepalive augmenté à 120s pour stabilité
Note: connexion MQTT au broker Artemis d'OpenRemote échoue (rc=5 Not Authorized)
Le broker nécessite une authentification spécifique non documentée.
Les agents MQTT d'OpenRemote ne reçoivent donc pas les données du simulateur.
La location est déjà correctement définie dans les assets en BDD.
2026-05-12 08:07:44 -04:00
Eric FELIXINE
4afed8ff2b
fix(simulator): connexion MQTT OpenRemote sans auth, location dans payload REST, ASSET_MAP corrigé
...
- MQTT OpenRemote: connexion anonyme (pas de credentials) au broker Artemis
- Payload REST: ajout attribut location (GeoJSONPoint) pour chaque capteur
- ASSET_MAP: mise à jour avec les bons asset IDs (ceux avec agentLink + location)
- Topics MQTT: index basé sur position du capteur (pas compteur global)
- Désactivation PUT REST sur assets avec agentLink (403 Forbidden)
- keepalive augmenté à 60s pour stabilité connexion Artemis
2026-05-12 07:34:29 -04:00
Eric FELIXINE
8b87d95ca5
fix: OpenRemote REST - gestion version If-Match pour PUT assets
...
- Récupère la version actuelle de l'asset avant PUT
- Ajoute la version au payload pour éviter HTTP 409 Conflict
- OpenRemote: ✅ les assets sont mis à jour en temps réel
- MQTT OK: 3/4 (EMQX, Mosquitto, BunkerM)
2026-05-11 14:56:27 -04:00
Eric FELIXINE
918c03dffa
fix: Simulateur MQTT 3/4 + OpenRemote master + Mapsettings
...
- MQTT OK: 3/4 (EMQX, Mosquitto, BunkerM)
- OpenRemote: utilise realm master (token fonctionnel)
- Realm smartcity recréé dans Keycloak
- Assets IOTSensor créés dans master (30) et smartcity (30)
- Mapsettings: layers iot-sensors + labels pour master et smartcity
- INTERVAL=5s, réseau openremote_default ajouté
- Dockerfile: --no-cache rebuild
2026-05-11 14:19:53 -04:00
Eric FELIXINE
ae153c4e5e
fix: Traefik routing OpenRemote/Ditto + QuantumLeap config (2026-05-08)
2026-05-08 03:11:13 -04:00
Eric FELIXINE
dfaa240d5a
fix: Stabilisation complète Smart City Digital Twin Martinique
...
- Correction simulateur: nettoyage code FIWARE (erreurs syntaxe)
- Grafana: dashboard complet 10 panneaux sur grafana.digitribe.fr
- InfluxDB: datasource corrigée (bucket smartcity, org digitribe)
- Nettoyage: suppression services FIWARE (Orion-LD, Stellio, QuantumLeap)
- Pipeline validé: Simulator → 3 MQTT brokers → Telegraf → InfluxDB → Grafana
- Dashboard URL: https://grafana.digitribe.fr/d/smartcity-martinique-complete/
Architecture simplifiée:
- 3 MQTT brokers (EMQX, Mosquitto, BunkerM)
- Telegraf pour agrégation
- InfluxDB pour stockage time-series
- Grafana pour visualisation (Traefik: grafana.digitribe.fr)
2026-05-08 01:10:30 -04:00
Eric FELIXINE
552dba20d6
Fix: Grafana dashboard (validated data) + MapStore backend + Stellio docs
...
- ✅ Grafana: Data confirmed in CrateDB (time_index in ms)
- ✅ MapStore: Backend fixed (PostgreSQL config corrected, tables created)
- ✅ Stellio: Documented as future work (NGSI-LD vs NGSI-v2 format mismatch)
- 📊 Dashboard available: https://grafana.digitribe.fr/d/smartcity-fixed-2026
2026-05-07 18:58:47 -04:00
Eric FELIXINE
9187ddfca6
Fix: Grafana dashboard Orion-LD + Stellio persistence investigation
...
- ✅ Grafana dashboard updated with proper time filters
- ✅ Orion-LD pipeline validated (6 tables, 5+ rows in CrateDB)
- ❌ Stellio pipeline blocked: QuantumLeap /v2/notify doesn't support NGSI-LD native format (TypeError: argument of type 'float' is not iterable)
- 📝 QuantumLeap expects NGSI-v2 format ({"value": X, "type": "Number"}) but receives NGSI-LD (direct values)
Next steps:
- Focus on Orion-LD pipeline (working)
- Consider Stellio as experimental / future work
2026-05-07 18:35:47 -04:00
Eric FELIXINE
56fb3f3c50
ADD: Updated architecture with Stellio pipeline diagram
2026-05-07 16:57:12 -04:00
Eric FELIXINE
be13c9a2d7
FIX: Mosquitto healthcheck - replace bash with nc
2026-05-07 15:14:51 -04:00
Eric FELIXINE
5a5234f868
FIX: Pulsar Manager credentials + MapStore static files + CrateDB tables + QuantumLeap persistence
2026-05-07 15:07:10 -04:00
Eric FELIXINE
66a22a2421
Fix: InfluxDB token + bucket iot_data créé
...
- Token InfluxDB corrigé dans simulator.py (my-super-token)
- Bucket iot_data créé dans InfluxDB
- CrateDB-Stellio ports sécurisés (suppression exposition publique)
- Healthchecks MongoDB/Mosquitto corrigés
- Nettoyage container digital-twin-grafana
2026-05-07 10:41:16 -04:00
Eric FELIXINE
007e7eb2ff
Fix: Sécurisation CrateDB-Stellio + healthchecks MongoDB/Mosquitto
...
- Suppression exposition publique ports CrateDB-Stellio (sécurité)
- Ajout service iot-mongodb avec healthcheck fonctionnel (mongo ping)
- Correction healthcheck Mosquitto (port check au lieu de topic)
- Nettoyage container digital-twin-grafana en conflit
2026-05-07 10:35:52 -04:00
Eric FELIXINE
227a799e94
Résumé final session 2026-05-06 - 60 assets MQTT créés
2026-05-06 22:48:46 -04:00
Eric FELIXINE
67ac37545e
Mise à jour resume session - Assets OpenRemote finalisés
2026-05-06 22:39:21 -04:00
Eric FELIXINE
6162cf0b13
Rapport final 2026-05-06 - Infrastructure Smart City
...
- BunkerM accessible, Stellio pipeline actif
- 6 tables CrateDB, dashboards Grafana (AirQuality, Traffic, Weather)
- OpenRemote: API 405 à résoudre (assets à créer via UI)
- Services unhealthy identifiés (CrateDB Stellio, Mosquitto, MongoDB)
- ThingsBoard en boucle redémarrage
- 30 capteurs attendus (SENSOR_COUNT=30)
2026-05-06 21:59:23 -04:00
Eric FELIXINE
41f39a3faa
Session resume 2026-05-06 - État infrastructure Smart City
...
- BunkerM accessible, Stellio pipeline actif
- 6 tables CrateDB créées, Grafana AirQuality OK
- OpenRemote API 405 à résoudre (assets à créer)
- 30 capteurs attendus (10 par broker)
2026-05-06 21:55:41 -04:00
Eric FELIXINE
0c787b154a
IoT Agents: suppression healthcheck + BunkerM configuré pour Stellio (NGSI-LD)
...
- Suppression healthcheck (curl/nc indisponibles dans les conteneurs)
- IoT Agent BunkerM reconfiguré: IOTA_CB_HOST=stellio-api-gateway, IOTA_CB_NGSI_VERSION=ld
- En attente vérification pipeline Stellio
2026-05-06 21:32:33 -04:00
Eric FELIXINE
b6c627a639
Correction BunkerM domaine: mosquitto2.digitribe.fr
2026-05-06 21:27:10 -04:00
Eric FELIXINE
362a9d1f6b
Architecture mise à jour (07 Mai 2026)
...
- Correction flux : Simulateur → MQTT Brokers → IoT Agents → Orion-LD/Stellio → QuantumLeap → CrateDB
- IoT Agents fonctionnels (EMQX:4041, Mosquitto:4042, BunkerM:4043)
- Pipeline Orion-LD validé (CrateDB: quantumleap.etairqualityobserved)
- BunkerM domaine corrigé : mosquitto2.digitribe.fr:1900
- Simulateur publie sur topics smartcity-api-key/{sid}/attrs
2026-05-06 21:26:21 -04:00
Eric FELIXINE
1ac8cf7117
fix: CrateDB-Stellio + table quantumleap_stellio
2026-05-06 20:22:53 -04:00