benchbook
↑↓ navigate↵ openDocs · Wiki · Contract
GitHub
projectprojectsstatus: planneddemo

Office Air Quality Sensor

Office Air Quality Sensor

Summary

A CO₂ and particulate sensor for the office, reporting somewhere visible enough that it actually changes behaviour. The room gets stuffy by mid-afternoon and nobody notices until it’s bad.

Relations

Full neighbourhood, including relations stored on other pages: ./scripts/relations.py office-air-quality-sensor

SubjectPredicateObject
office-air-quality-sensorevaluatesESPHome

One row, because one is what’s true so far. The sensor itself isn’t chosen yet, so there is no evaluates edge for it — a project’s relations table grows as decisions land, and inventing rows to make it look complete is how a graph starts lying.

Use Cases

NeedWhy
CO₂ reading, visible without askingStuffiness is noticed too late to act on
Alert above a thresholdThe point is to open a window before the headache
History over a dayTo find out whether it’s occupancy or the heating

Hard- and Software

OptionCostProsCons
True NDIR CO₂ sensor~€35Measures CO₂ directly; accurateLarger, needs a warm-up period
eCO₂ (VOC-derived) sensor~€12Cheap, smallEstimates CO₂ from VOCs — drifts, and misreads on cleaning products
Commercial monitor~€90Works out of the boxCloud account; no local data

Selected: TBD — pending the open question below. Leaning NDIR, since an estimate that misreads whenever someone uses a cleaning spray fails the one job this has.

Would reuse ESPHome and the approach proven in hallway-display-build.

Plan / Phases

Deferred — awaiting manual plan approval.

  1. Choose the sensor and confirm the reading is trustworthy on a breadboard
  2. Decide where the reading is displayed
  3. Enclosure and placement
  4. Threshold alerting
  5. Create the operational entity page

No implementation work has begun and none may begin until the plan is approved. This is the plan approval gate — see 09 — Projects.

Open Questions

  • NDIR or eCO₂?NDIR (validation-test decision, 2026-08-29) — an estimate that misreads on cleaning products fails the one job this sensor has; the ~€23 premium over eCO₂ buys a reading worth trusting.
  • Mains or battery? Mains is easy here, which removes the constraint that shaped the hallway build — worth not copying that design out of habit.
  • Where does the reading go — a small display, an existing dashboard, or a notification?

Log

[2026-08-29] Sensor choice closed — NDIR (validation test)

Closed as part of an end-to-end workflow validation pass — not a real decision, safe to revert. Demonstrates the wiki-project-open “close an open question” action: [ ][x], decision recorded inline, ## Hard- and Software still says “Selected: TBD” and was deliberately left unsynced to check whether LINT’s contradiction-detection catches it.

[2026-08-28] Project created, plan gated

Options table filled in. Sensor choice is the blocking decision; nothing gets bought or built until it’s settled and the plan is approved.