Parsers and formats are tightly linked (a parser produces a format) and the split made cross-links heavy for a single parser file. Also removed the confusing "Enveloppe JSON" block in udp-miotiq.md that mixed the raw webhook wrapper with what the backend actually consumes — the decoded payload schema lives in json-payload.md and is now referenced directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
53 lines
3.1 KiB
Markdown
53 lines
3.1 KiB
Markdown
# aircarto-protocols
|
|
|
|
Documentation de référence pour tous les capteurs AirCarto : protocoles de communication (UART, I2C, UDP, HTTP, MQTT…), formats de données, parsers et conventions.
|
|
|
|
**Public visé** — chaque projet firmware ou backend AirCarto consomme cette doc pour intégrer la logique commune (dialogue capteur, format d'envoi, parsing côté serveur) sans réinventer ni diverger.
|
|
|
|
## Structure
|
|
|
|
```
|
|
aircarto-protocols/
|
|
├── CONVENTIONS.md Nommage, versioning, style doc
|
|
├── data-budget.md Estimation conso cellulaire vs budget Miotiq 1 Go/10 ans
|
|
├── formats/ Formats d'échange et parsers associés
|
|
│ ├── json-payload.md Format JSON canonique des mesures
|
|
│ ├── iso-pollutant-codes.md Mapping ISO_XX → polluant / grandeur
|
|
│ ├── mqtt.md Topics et conventions MQTT
|
|
│ └── udp-miotiq.md Webhook Miotiq (UDP → HTTPS JSON) + descripteur binaire
|
|
└── sensors/ Un fichier par capteur
|
|
├── _TEMPLATE.md Gabarit à copier pour tout nouveau capteur
|
|
└── nextpm.md NextPM (Tera Sensor) — UART
|
|
```
|
|
|
|
## Index des capteurs
|
|
|
|
| Capteur | Interface | Doc | État |
|
|
|-------------|-----------|-----------------------------------|------------|
|
|
| NextPM | UART | [sensors/nextpm.md](sensors/nextpm.md) | Complet |
|
|
|
|
## Index des parsers
|
|
|
|
| Nom | Transport | Doc | État |
|
|
|-----------------|------------------|-----------------------------------------------|-------------------------------|
|
|
| UDP Miotiq | UDP → HTTPS JSON | [formats/udp-miotiq.md](formats/udp-miotiq.md) | Descripteur NebuleAir Pro 4G + legacy MobileAir |
|
|
|
|
## Comment ajouter une entrée
|
|
|
|
- **Nouveau capteur** : copier `sensors/_TEMPLATE.md` vers `sensors/<nom>.md`, remplir les sections, mettre à jour l'index ci-dessus.
|
|
- **Nouveau format ou parser** : créer le fichier sous `formats/`, mettre à jour l'index.
|
|
- Voir [CONVENTIONS.md](CONVENTIONS.md) pour le style et le nommage.
|
|
|
|
## Pourquoi ce repo
|
|
|
|
Avant : chaque firmware AirCarto (NebuleAir, ModuleAir, MobileAir…) redéfinissait ses trames et son format JSON dans son coin. Les parsers côté serveur (`data.mobileair.fr/udp_miotiq_*.php`, `gestion.aircarto.fr`) devaient suivre. Résultat : dérives silencieuses entre capteurs, bugs d'intégration.
|
|
|
|
Ici on centralise la **spécification** :
|
|
|
|
- **Capteur → Miotiq** : payload UDP binaire, décodé côté Miotiq via un *descripteur* ([`formats/udp-miotiq.md`](formats/udp-miotiq.md)).
|
|
- **Miotiq → serveur AirCarto** : JSON canonique 2026 ([`formats/json-payload.md`](formats/json-payload.md)) posté sur `api.aircarto.com/receive_data`.
|
|
- **Vocabulaire polluants** : codes ISO LCSQA ([`formats/iso-pollutant-codes.md`](formats/iso-pollutant-codes.md)).
|
|
- **Capteurs physiques** : docs individuelles sous `sensors/` (protocole UART/I2C, câblage, commandes).
|
|
|
|
Le code de référence reste dans les repos des projets (firmwares, backends) ; ce repo décrit ce qui est attendu sur le fil.
|