39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
# MQTT — conventions
|
|
|
|
> **Statut** : squelette. À compléter au premier déploiement MQTT AirCarto.
|
|
|
|
## Broker
|
|
|
|
- À définir : URL, port (1883 / 8883 TLS), credentials.
|
|
|
|
## Topics
|
|
|
|
Convention proposée :
|
|
|
|
```
|
|
aircarto/<projet>/<token>/<canal>
|
|
```
|
|
|
|
- `projet` : `nebuleair`, `moduleair`, `mobileair`, …
|
|
- `token` : identifiant unique du capteur.
|
|
- `canal` :
|
|
- `telemetry` : mesures périodiques (publish capteur → broker), payload JSON conforme à [`json-payload.md`](json-payload.md).
|
|
- `status` : en ligne / hors ligne, version firmware (retain, LWT).
|
|
- `cmd` : commandes broker → capteur (ex. reboot, changer la fréquence).
|
|
- `ack` : accusés capteur → broker.
|
|
|
|
Exemple : `aircarto/nebuleair/001/telemetry`.
|
|
|
|
## QoS et retain
|
|
|
|
- `telemetry` : **QoS 0** (fire-and-forget, InfluxDB tolère les pertes occasionnelles).
|
|
- `status` : **QoS 1** + **retain = true** + LWT pour détecter les déconnexions.
|
|
- `cmd` : **QoS 1**, pas de retain.
|
|
|
|
## À faire
|
|
|
|
- [ ] Nommer le broker de référence (Mosquitto ? HiveMQ ? EMQX ?).
|
|
- [ ] Documenter l'authentification (username+password, certificats ?).
|
|
- [ ] Schéma exact des payloads `status` et `cmd`.
|
|
- [ ] Exemple de wildcard subscription côté backend.
|