Docs: EMQX Rule Engine configuration for Fiware brokers forwarding
This commit is contained in:
57
emqx-rule-configuration.md
Normal file
57
emqx-rule-configuration.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# 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+json`
|
||||||
|
- `NGSILD-Tenant: smartcity`
|
||||||
|
- **Body**: Transformez le payload MQTT en NGSI-LD
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
## Alternative: Utiliser Mosquitto Bridge
|
||||||
|
Dans `/mosquitto/config/mosquitto.conf`:
|
||||||
|
```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
|
||||||
|
1. **Configurer EMQX Rule Engine** via Dashboard (http://localhost:18081)
|
||||||
|
2. **Mosquitto** et **BunkerM** : Bridge vers EMQX (qui fait le forwarding)
|
||||||
|
3. **Vérifier** que Orion-LD, Stellio, FROST reçoivent les données
|
||||||
|
|
||||||
|
## Test manuel
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user