formats/json-payload.md: full rewrite around the actual server-side template
(endpoint api.aircarto.com/receive_data?device_type=<model>, flat schema,
_unit suffix companions, -1 and 255 sentinel semantics, full bitfield
tables for error_flags/npm_status/device_status, misc context codes).
formats/iso-pollutant-codes.md: fill in the LCSQA mapping. Fixes my earlier
inversion — ISO_39=PM2.5 and ISO_24=PM10 (not the other way). Add gases:
ISO_03=NO2, ISO_04=CO, ISO_05=H2S, ISO_08=O3, ISO_21=NH3.
parsers/udp-miotiq.md:
- string base function outputs hex (not ASCII) — update description and
generic Python parser accordingly.
- Fix ISO_39/ISO_24 labels in NebuleAir Pro 4G byte layout.
- Name the 5 gases by offset, cross-link bitfield docs and JSON canonical.
- New TODO: origin of latitude/longitude/misc in final JSON (not in 83B
descriptor).
README.md: reflect the new file layout and data flow summary.
3.2 KiB
3.2 KiB
Codes polluants ISO — convention AirCarto
Les descripteurs Miotiq (voir parsers/udp-miotiq.md) et le JSON canonique (voir 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_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 :
- Chercher son code dans la nomenclature LCSQA / ISO 7168.
- S'il existe, ajouter la ligne ici avec l'unité de référence et l'équation standard.
- 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 utilisentISO_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.