Parameters & units

Every reading you send must use the canonical unit for its parameter, and its value must fall within the permitted range. A different unit rejects the batch (unit-mismatch); a value outside the range rejects it (value-out-of-range).

These are the built-in parameters seeded by the platform. (Operators of an instance may add extension parameters with their own canonical unit and range; ask your platform administrator if you need one that isn't listed.)

Parameter codeQuantityCanonical unitPermitted range
co2Carbon dioxideppm0 – 50 000
eco2Equivalent CO₂ppm0 – 65 000
coCarbon monoxideppm0 – 2 000
o3Ozoneµg/m³0 – 500
no2Nitrogen dioxideµg/m³0 – 500
so2Sulphur dioxideµg/m³0 – 500
vocVolatile organic compoundsppb0 – 60 000
pm1Particulate matter ≤ 1 µmµg/m³0 – 500
pm2_5Particulate matter ≤ 2.5 µmµg/m³0 – 500
pm4Particulate matter ≤ 4 µmµg/m³0 – 1 000
pm10Particulate matter ≤ 10 µmµg/m³0 – 1 000
temperatureAir temperature°C−40 – 85
humidityRelative humidity%0 – 100
air_velocityAir velocitym/s0 – 10
pressureAtmospheric pressurePa85 000 – 110 000
illuminanceIlluminancelx0 – 100 000
cctCorrelated colour temperatureK1 000 – 20 000
laeqA-weighted equivalent sound leveldB(A)0 – 140

Notes

  • The unit string must match exactly, including the casing and the symbols (µg/m³, dB(A), °C). Send the unit string from the table verbatim.
  • A sensor may only report parameters it declared at registration. Declaring co2 and temperature, then sending humidity, rejects the batch (parameter-not-declared) — add the parameter to the sensor first.
  • Ranges are inclusive sanity bounds, not calibration limits. They exist to catch obviously broken readings (a stuck probe, a wrong unit), not to grade air quality.

The authoritative, machine-readable list for a running instance is the ieq.parameter_ranges table; the table above is the seeded default.