# 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 ├── formats/ Formats d'échange de données │ ├── json-payload.md Format JSON canonique des mesures │ ├── iso-pollutant-codes.md Mapping ISO_XX → polluant / grandeur │ └── mqtt.md Topics et conventions MQTT ├── sensors/ Un fichier par capteur │ ├── _TEMPLATE.md Gabarit à copier pour tout nouveau capteur │ └── nextpm.md NextPM (Tera Sensor) — UART └── parsers/ Parsers côté serveur / passerelle └── udp-miotiq.md Webhook Miotiq (UDP → HTTPS JSON) ``` ## 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 | [parsers/udp-miotiq.md](parsers/udp-miotiq.md) | Descripteur NebuleAir Pro 4G + legacy MobileAir | ## Comment ajouter une entrée - **Nouveau capteur** : copier `sensors/_TEMPLATE.md` vers `sensors/.md`, remplir les sections, mettre à jour l'index ci-dessus. - **Nouveau format / parser** : créer le fichier sous `formats/` ou `parsers/`, 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, ses topics 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**. 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.