Indoor climate
CO₂, RH for schools, offices, museums, wine cellars
Indoor air monitoring covers four sub-cases that share infrastructure (CO₂ NDIR sensor + T/RH probe) but have wildly different thresholds:
- Schools and offices — CO₂ as a ventilation proxy.
- Museums and instrument storage — RH stability.
- Wine cellars — both, on long time-scales.
- Indoor cannabis / greenhouses (not regulated, included because we get the question).
Schools and offices — CO₂
CO₂ levels in occupied rooms are the simplest proxy for ventilation adequacy. Outdoor air is ~420 ppm in 2026; comfortable indoor air is < 1000 ppm; > 1400 ppm causes measurable cognitive impairment;
2000 ppm is a sign the room is functionally unventilated.
OpenSense defaults for a climate site labelled school or office:
Recommended sensor: Sensirion SCD41 NDIR-based CO₂ + T/RH on an ESP32 (see DIY ESP32). Commercial alternatives: Aranet4 (BLE, needs a gateway), Airthings (proprietary cloud, contact us).
Museums — relative humidity stability
For museum collections and musical instruments, the rate of change of RH matters more than the absolute value. Pianos, wooden furniture, parchment and oil paintings all warp at different rates when humidity swings.
Standard targets (Bizot Group / Smithsonian / V&A guidance):
| Object class | Target RH | Drift tolerance |
|---|---|---|
| Oil on canvas | 45–55 % | ± 5 % per month |
| Wooden furniture | 45–55 % | ± 7 % per month |
| Paper, parchment, books | 30–50 % | ± 5 % per month |
| Photographs (acetate) | 30–40 % | ± 5 % per month |
| Musical instruments (wood) | 40–55 % | ± 3 % per week |
| Iron / steel artefacts | < 40 % | dryer is better |
OpenSense supports a derived_drift channel: max(|RH_now − RH_avg_7d|).
Alarms fire when the drift exceeds the configured tolerance, not when
the absolute reading is out of range. This is the inverted view museums
care about.
Wine cellars
Industry consensus for table-wine cellaring:
| Variable | Target | Acceptable | Why |
|---|---|---|---|
| Temperature | 12 °C | 10–15 °C | Slow, even ageing |
| RH | 70 % | 60–80 % | Cork stays sealed; labels survive |
| Temp swing | < 2 °C / week | < 5 °C / week | Cork breathes, oxygen ingress |
| Light | dark | dim, no UV | (Not measured by OpenSense yet) |
For investment-grade cellaring the constraints tighten by ~30 %; the defaults above are the operational compromise that lets you store cases without sleeve-by-sleeve obsession.
Greenhouse / grow-room
Not regulated. Pure ops:
- CO₂ enriched to 800–1200 ppm during photoperiod for accelerated growth.
- RH 50–70 % vegetative, 40–55 % flowering.
- VPD (vapour pressure deficit) is the modern variable; OpenSense derives
VPD from T + RH if you flag a channel as
grow_room.
A note on indoor air quality beyond CO₂
We deliberately do not currently support:
- PM 2.5 / PM 10: there are cheap sensors (Plantower PMS5003 etc.) but the public-health interpretation is tricky and varies by jurisdiction. We will add it once we ship a calibration story.
- VOC: SGP30/SGP40 sensors are noisy; the calibration drift is too high to alarm on. We can ingest the channel but do not run rules on it.
- Radon: long-term integration, weeks of measurement, not real-time. Different product category.