CO₂ is one of the most practical indoor air signals to automate. It responds directly to occupancy, it rises clearly in under-ventilated rooms and it maps neatly to actions people already understand: open a window, use a trickle vent, run MVHR boost or simply stop heating a sealed room without fresh air.
Why CO₂ is a strong automation signal
CO₂ is not the whole story of indoor air, but it is an excellent ventilation proxy. If CO₂ is climbing, the room is not exchanging enough air for the number of people in it. That makes it ideal for threshold-based automations because the action is obvious and explainable.
A simple ladder works well:
- Below 800 ppm: well ventilated
- 800–1,000 ppm: keep an eye on it
- Above 1,000 ppm: prompt for ventilation
- Above 1,500 ppm: urgent action
Step 1: Expose HomeEaze Air in Home Assistant
HomeEaze can reach Home Assistant through MQTT auto-discovery. Once discovery is enabled, Home Assistant creates entities such as:
sensor.homeeaze_bedroom_co2sensor.homeeaze_bedroom_iaqssensor.homeeaze_bedroom_alert_state
Step 2: Decide the room-specific threshold
A bedroom, living room and office often deserve different thresholds:
- Bedroom: 1,000 ppm warning, 1,500 ppm urgent
- Office: lower warnings can help concentration and comfort
- Living room: 900 or 1,000 ppm when several people are present
Step 3: Write the Home Assistant automation
A basic bedroom ventilation automation:
- id: homeeaze_bedroom_co2_warning
alias: HomeEaze Bedroom CO₂ Ventilation Prompt
trigger:
- platform: numeric_state
entity_id: sensor.homeeaze_bedroom_co2
above: 1000
action:
- service: notify.notify
data:
title: HomeEaze air alert
message: Open bedroom window. Bedroom CO₂ is above 1000 ppm.
Add escalation and recovery:
- id: homeeaze_bedroom_co2_urgent
alias: HomeEaze Bedroom CO₂ Urgent Alert
trigger:
- platform: numeric_state
entity_id: sensor.homeeaze_bedroom_co2
above: 1500
action:
- service: notify.notify
data:
title: HomeEaze urgent CO₂ alert
message: Bedroom CO₂ is above 1500 ppm. Ventilate now.
- id: homeeaze_bedroom_co2_recovered
alias: HomeEaze Bedroom CO₂ Recovery Message
trigger:
- platform: numeric_state
entity_id: sensor.homeeaze_bedroom_co2
below: 800
action:
- service: notify.notify
data:
title: HomeEaze air update
message: Air quality restored. Bedroom CO₂ is back below 800 ppm.
The recovery message matters. It tells the household that opening the window worked.
Step 4: Add MQTT awareness if needed
Minimal MQTT sensor example:
mqtt:
sensor:
- name: Bedroom CO₂
unique_id: homeeaze_bedroom_co2
state_topic: homeeaze/heaq-bedroom-01/sensor/co2
device_class: carbon_dioxide
unit_of_measurement: ppm
Step 5: Integrate smart vents or trickle vents carefully
The safest first automation is a notification. Once that is working, some homes will want a physical action:
- open a motorised trickle vent
- boost MVHR
- lower heating demand until fresh air is introduced
Keep this conservative — a simple notification is often better than a brittle actuator rule.
Final advice
Start with one room, one sensor and one clear threshold. Watch the behaviour for a week. Then add escalation, recovery and optional physical controls. In UK and EU homes, where there is no central HVAC smoothing everything out, room-by-room CO₂ automation is often the fastest way to make indoor air monitoring genuinely useful.