Files
aircarto-protocols/formats/iso-pollutant-codes.md
Your Name ace447c933 docs(co2): ajouter ISO_17 (CO2, ppm) au protocole NebuleAir Pro 4G
- iso-pollutant-codes.md: code ISO_17 = CO2 (ppm), sentinelle 0xFFFF
- udp-miotiq.md: ISO_17 consomme les 2 octets reserved (offset 81),
  trame inchangee a 83 octets, retrocompat (0 = anciens fw)
- json-payload.md: tableau polluants, note sentinelle, exemple

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:44:25 +02:00

39 lines
3.4 KiB
Markdown

# Codes polluants ISO — convention AirCarto
Les descripteurs Miotiq (voir [`udp-miotiq.md`](udp-miotiq.md)) et le JSON canonique (voir [`json-payload.md`](json-payload.md)) utilisent des codes `ISO_XX` pour désigner les polluants et grandeurs physiques. Ces codes suivent la nomenclature du **LCSQA** (Laboratoire Central de Surveillance de la Qualité de l'Air), basée sur la norme **ISO 7168**.
Les codes vont théoriquement de `ISO_01` à `ISO_99`. Seuls ceux effectivement mesurés par au moins un capteur AirCarto sont documentés ici.
## Mapping
| Code | Grandeur / polluant | Unité de référence | Equation descripteur Miotiq | Remarques |
|----------|---------------------|--------------------|------------------------------|------------------------------|
| `ISO_03` | NO₂ — dioxyde d'azote | ppb | | |
| `ISO_04` | CO — monoxyde de carbone | ppb | | |
| `ISO_05` | H₂S — sulfure d'hydrogène | ppb | | |
| `ISO_08` | O₃ — ozone | ppb | | |
| `ISO_17` | CO₂ — dioxyde de carbone | ppm | | En **ppm** (et non ppb comme les gaz traces). `uint16`, sentinelle `0xFFFF` = non équipé. |
| `ISO_21` | NH₃ — ammoniac | ppb | | |
| `ISO_24` | PM10 | µg/m³ | `x/10` | Particules ≤ 10 µm |
| `ISO_39` | PM2.5 | µg/m³ | `x/10` | Particules fines ≤ 2.5 µm |
| `ISO_53` | Pression | hPa | | Pression atmosphérique |
| `ISO_54` | Température | °C | `x/100` | |
| `ISO_55` | Humidité relative | % | `x/100` | |
| `ISO_68` | PM1 | µg/m³ | `x/10` | Particules ultrafines ≤ 1 µm |
## Règles
- Un code ISO est **unique** au sein de l'écosystème AirCarto : pas de redéfinition par capteur.
- Pour ajouter un polluant :
1. Chercher son code dans la nomenclature LCSQA / ISO 7168.
2. S'il existe, ajouter la ligne ici avec l'unité de référence et l'équation standard.
3. S'il n'existe pas, allouer le prochain code libre > 70 et documenter la décision en « À faire » ci-dessous.
- **Unité de référence** = unité stockée en base (après application de l'équation du descripteur). Les firmwares peuvent encoder à une précision différente, l'équation ramène à l'unité finale.
- Les grandeurs **non-polluantes** propres aux capteurs AirCarto (bruit, vent, batterie, solaire…) ne reçoivent **pas** de code ISO : elles gardent leur nom `snake_case` (`wind_speed`, `battery_voltage`, etc.). Seuls les polluants atmosphériques et paramètres ambiants standard utilisent `ISO_XX`.
## Sources
- **LCSQA** — nomenclature polluants : https://www.lcsqa.org/
- **ISO 7168-2:1999** — Air quality — Exchange of data, Part 2: Condensed data format.
- **Directive 2008/50/CE** — codes polluants européens.