Commit Graph

150 Commits

Author SHA1 Message Date
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
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