Commit Graph

144 Commits

Author SHA1 Message Date
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
Eric FELIXINE
c27c2c10af fix: QuantumLeap + Redis + simulateur MQTT-only + données test CrateDB 2026-05-06 19:26:13 -04:00
Eric FELIXINE
64022bd9ab fix: Simulateur publie sur 3 brokers (emqx, mosquitto, bunkerm) avec préfixe json/ 2026-05-06 17:50:06 -04:00
Eric FELIXINE
380c92cc19 docs: Final architecture - 2 CrateDB datasources in Grafana (Orion + Stellio) 2026-05-06 17:46:41 -04:00
Eric FELIXINE
91ade0ad20 docs: Add multi-Context Broker architecture (Orion-LD + Stellio separate pipelines) 2026-05-06 17:32:35 -04:00
Eric FELIXINE
3df9f914fa docs: Final session resume 2026-05-06 - 3 IoT Agents, Orion-LD, Stellio next steps 2026-05-06 17:30:28 -04:00
Eric FELIXINE
4667d8873c docs: Update HTML diagram - 3 IoT Agents architecture 2026-05-06 17:22:21 -04:00
Eric FELIXINE
07bb3384b9 docs: Update data flow diagram - 3 IoT Agents per broker, Orion-LD, QuantumLeap 2026-05-06 17:21:41 -04:00
Eric FELIXINE
75d67bea66 docs: Network audit complete - all containers on smartcity-shared 2026-05-06 17:05:31 -04:00
Eric FELIXINE
ff4cd349b6 docs: Final session resume 2026-05-06 - QuantumLeap fix, Grafana next steps 2026-05-06 17:02:36 -04:00
Eric FELIXINE
a085aeca44 chore: Smart City update - QuantumLeap fix, IoT-Agent integration, simulator update 2026-05-06 17:01:39 -04:00
Eric FELIXINE
3cbacbaa8c fix: QuantumLeap use CRATE_HOST/PORT instead of QL_CRATEDB_* 2026-05-06 16:50:02 -04:00
Eric FELIXINE
00b55a29a2 docs: Add session resume 2026-05-06 - IoT-Agent integration and QuantumLeap setup 2026-05-06 16:36:55 -04:00
Eric FELIXINE
0c1b75fcd3 feat: Add IoT-Agent integration - simulator publishes to smartcity-api-key/{sid}/attrs via EMQX 2026-05-06 16:20:05 -04:00
Eric FELIXINE
303d6f3eb2 docs: Update data-flow-diagram with IoT-Agent, QuantumLeap, CrateDB architecture (2026-05-06) 2026-05-06 15:47:07 -04:00
Eric FELIXINE
0ba25ef1a8 Session 2026-05-06: QuantumLeap+CrateDB, Telegraf debug, MapStore GeoServer fix 2026-05-06 13:23:58 -04:00
Eric FELIXINE
b73b02f39d Fix MQTT broker name: mosquitto-traefik -> mainfluxlabs-mosquitto 2026-05-06 11:17:22 -04:00
Eric FELIXINE
9bafa5da6a chore: remove log file from repo 2026-05-05 22:12:49 -04:00
Eric FELIXINE
c06acf4fe8 feat: distribution service + redpanda consumer + updated flow diagram
- Add Pulsar distribution service (consumes smartcity-* → MQTT + context brokers)
- Add Redpanda → InfluxDB consumer (redpanda/consumer.py)
- Update FIXED_LOCATIONS with exact OpenRemote asset coordinates
- Fix Pulsar topics (underscore: smartcity-traffic not smartcity-traffic)
- Fix prometheus.yml endpoints (Redpanda:9644, comment inactive stacks)
- Add docker-compose.redpanda-consumer.yml
2026-05-05 22:12:38 -04:00
Eric FELIXINE
742b437ed9 docs: update session_resume with sensor coordinate fixes 2026-05-05 21:24:53 -04:00
Eric FELIXINE
ad31e2289f fix: replace random coords with fixed Martinique locations (no more sea sensors)
- Replace random.uniform(±0.02°) with FIXED_LOCATIONS dict keyed by type+name
- All 30 named sensor locations mapped to real Martinique coordinates on land
- Coordonnées Martinique: 14.4°N–14.88°N, -61.25°W–-60.85°W
- OpenRemote DB: UPDATE all IOTSensor assets with wrong coords (PostgreSQL jsonb_set)
- All 34 sensor instances now validated as TERRE (100% on land)

Fixed sensors: traffic, airquality, parking, noise, weather, light
2026-05-05 21:24:29 -04:00
Eric FELIXINE
75ee75f036 feat: MapStore ↔ GeoServer integration + Pulsar Manager v0.2.0
- Connect GeoServer to smartcity-shared network (alias: geoserver)
- Connect mapstore-app to smartcity-shared network
- Add digitribe_wms/wmts/rest services in MapStore localConfig.json
- Deploy Pulsar Manager with PostgreSQL backend + custom supervisord.conf
- Fix Redpanda Traefik config (console instead of broker port)
- Create mapstore/ docker-compose with volume mounts for persistence
2026-05-05 21:12:32 -04:00
Eric FELIXINE
3f06298819 fix: Coordonnées capteurs Martinique - réduit plage à ±0.02 pour éviter mer 2026-05-05 18:38:27 -04:00