1.9 KiB
1.9 KiB
EMQX Rule Engine Configuration
Objectif: Forward MQTT messages from all brokers to Fiware brokers
Architecture cible
- Simulator → MQTT → EMQX, Mosquitto, BunkerM
- EMQX Rule Engine → HTTP POST → Orion-LD, Stellio, FROST-Server
- Mosquitto Bridge → EMQX (qui fait le forwarding)
- BunkerM Bridge → EMQX (qui fait le forwarding)
Configuration EMQX (via Dashboard: http://localhost:18081)
1. Créer une Règle (Rule) pour forwarder vers Orion-LD
- SQL:
SELECT * FROM "city/sensors/#" - Action: HTTP Server (Webhook)
- URL:
http://localhost:2026/ngsi-ld/v1/entities - Headers:
Content-Type: application/ld+jsonNGSILD-Tenant: smartcity
- Body: Transformez le payload MQTT en NGSI-LD
- URL:
2. Créer une Règle pour forwarder vers Stellio
- SQL:
SELECT * FROM "city/sensors/#" - Action: HTTP Server
- URL:
http://localhost:8080/ngsi-ld/v1/entities - Headers: Similar to Orion-LD
- URL:
3. Créer une Règle pour forwarder vers FROST-Server
- SQL:
SELECT * FROM "city/sensors/#" - Action: HTTP Server
- URL:
http://localhost:8086/FROST-Server/v1.1/... - Body: Format SensorThings API
- URL:
Alternative: Utiliser Mosquitto Bridge
Dans /mosquitto/config/mosquitto.conf:
# Bridge vers EMQX (déjà configuré)
connection emqx_bridge
address emqx_emqx_1:1883
topic city/sensors/# out 2
# Forward vers HTTP (nécessite un plugin ou script externe)
# Mosquitto ne supporte pas nativement MQTT-to-HTTP
Solution recommandée
- Configurer EMQX Rule Engine via Dashboard (http://localhost:18081)
- Mosquitto et BunkerM : Bridge vers EMQX (qui fait le forwarding)
- Vérifier que Orion-LD, Stellio, FROST reçoivent les données
Test manuel
# Publier un message sur EMQX
mosquitto_pub -h localhost -p 11883 -t "city/sensors/test" -m '{"id":"test"}'
# Vérifier Orion-LD
curl http://localhost:2026/ngsi-ld/v1/entities/test