Skip to Content

Dining | Getting sleepy mid-meal is not just the food

It is the carbon dioxide building up. Add people, close the windows, and the air degrades faster than you would guess.
October 3, 2025 by
Dining | Getting sleepy mid-meal is not just the food
渥屋科技股份有限公司, 系統管理者
Dining

SMART HOME BUTLER · DINING ROOM

Getting sleepy mid-meal is not just the food

It is the carbon dioxide building up. Add people, close the windows, and dining room air degrades faster than you would guess.

1000
ppm where drowsiness starts
40 min
for six people to get there
3
stages, from nudge to action

That stuffy feeling has a number attached

A group sits down to eat, the windows are shut, the air conditioning is on, the conversation is good — and then somebody yawns. Most people put it down to a full stomach. Half of it is the air.

Breathing produces carbon dioxide. One person in a closed room measurably raises the level within an hour; six people do it six times faster. By the time it feels "a bit stuffy in here", the concentration is usually already high enough to affect how clearly you think.

What makes this awkward is that CO₂ has no colour and no smell. You just feel tired, slightly headachy, less talkative — with no idea why. Put a sensor in and a vague feeling turns into a number you can see.

Numbers worth remembering

Level (ppm)How it feelsWhat the system does
400–700About the same as outdoors, freshNothing
700–1000Fine, but climbingWatches quietly
1000–1400Drowsiness sets in, focus slipsMessages you to open a window
1400–2000Clearly stuffy, mild headache possibleStarts ventilation itself
Above 2000Genuinely uncomfortable, output dropsFull ventilation and keeps reminding
stuffy, nobody notices yet ventilation running 2000 1400 1000 400 six sit down alert sent ventilation on 18:00 18:30 19:00 19:30 20:00 The climb rate scales with headcount — more people, steeper line
A dinner for six. Half an hour after sitting down it passes 1000; within the hour it is close to 1400. Only once ventilation starts does the line turn around.

What happened over those two hours

  1. 18:00

    Before anyone arrives

    Empty room, CO₂ at 480, much the same as outdoors. The system is just watching.

  2. 18:10

    Six people sit down

    The line starts climbing, faster than you would expect. Nobody feels anything is wrong yet.

  3. 18:40

    Past 1000

    A message arrives: the dining room air is getting stuffy, open a window. Your body has already noticed by now — you have just attributed it to the meal.

  4. 19:10

    Past 1400, message ignored

    Everyone is deep in conversation and nobody got up. The system stops asking and turns on the circulation fan or fresh-air unit itself.

  5. 19:30

    The line turns

    Ventilation takes effect and the level falls back under 1000. Someone might say "was it a bit close in here earlier?" — but it has already passed.

  6. 20:00

    Table cleared

    People disperse, the level settles back into the 700s on its own, and the system switches ventilation off. Nobody had to deal with any of it.

Nudge first, act second — the order is deliberate. An open window always beats running a machine, so the first stage gives you the chance to handle it yourself. Only when you are busy does it step in.

Four things it takes care of

Alertness

Post-meal drowsiness roughly halves. A good part of it was never about the food.

Hosting

Friends over for dinner still have energy at ten o'clock, and the conversation does not mysteriously flatten out.

Health

Long stretches in high concentrations bring headaches and poorer concentration. If the dining table doubles as where homework happens, it matters more.

No effort

You stop having to sense whether it is time to open a window. Something is watching the number and will tell you.

Different homes, different thresholds

Your situationAlertAuto ventilateWhy
Typical home10001400The general case — use as-is unless you have a reason not to
Dining room doubles as a study8001100Somewhere you need to concentrate deserves tighter limits
Often six or more people9001200It climbs fast, so stepping in earlier keeps up
Open-plan, joined to the living room11001500Larger volume dilutes quickly; too sensitive and it misfires
Young children or older adults8001100More sensitive to air quality, so err on the early side
If in doubt, use 1000 and 1400. Both can be changed later just by asking.

What you need to have

Home Assistant calls every device an "entity". The brand and model do not matter — what matters is the category it falls into.

What it doesCategory in the systemEssential?
Measure CO₂sensorYes
Receive alertsnotify (phone app)Yes
Circulation or fresh-air unitfan or switchNice to have
Air purifierfan or switchNice to have
Powered or vent windowcoverIdeal if present
A sensor on its own is still worth having. Simply being told when to open a window solves most of the problem. Ventilation equipment can come later without rebuilding the rules.
An air purifier does nothing for carbon dioxide. Purifiers handle particles and odours; CO₂ passes straight through the filter. Only fresh air removes it. This is a common misunderstanding, and it is why the automation reaches for ventilation rather than purification.

How the whole thing works

CO₂ sensor ppm every minute greenhouse blueprint checks two thresholds above 1400 above 1000 back to 800 Start ventilation, act directly Alert you, let you open a window Stop ventilation, back to standby
Two thresholds doing two different jobs. The first only talks, the second acts, the third stands down.

Use the ready-made blueprints

The hub ships with 22 tested automation blueprints. Think of a blueprint as a fill-in-the-blanks form: the structure is done, you supply the content. This scenario uses two — entity_state_trigger_notify for the alert and greenhouse for the ventilation.

FieldWhat it meansSuggested
Which number to watchThe dining room CO₂ sensor—
Alert aboveSends you a message1000
Act aboveStarts the fan or fresh-air unit1400
Stand down belowSwitches ventilation off800
Active hoursCan be limited to mealtimesAll day
Why is the stand-down number so much lower? Ventilation takes time. Switch off the moment it drops under 1400 and it climbs straight back a few minutes later, leaving the fan cycling. Waiting for 800 clears the room properly in one go.

Just say the word

The WOOWTECH hub ships with HA-MCP, which lets AI connect straight into your system, build the rules, and then check for itself that they really fire. All you have to do is describe the outcome you want.

YouWhen dining room CO₂ goes above 1000, message me to open a window. Above 1400, turn the circulation fan on yourself. Switch it off once it drops back to 800.
pi agentFound the CO₂ reading on "Dining air quality", currently 640. You have a dining room circulation fan, so I used that for ventilation. Both rules are built. I simulated a high reading and the alert reached your phone while the fan started. There is no fresh-air unit or powered window here, so I left that part out.
YouDon't wake me in the middle of the night
pi agentAlerts now only go out between 7am and 11pm. I left the ventilation rule running around the clock, since it makes no sound and disturbs nobody.

Prompts you can copy straight across

Every block below can be copied whole with the button on the right. Pick the one closest to what you want — you do not need all five.

The simplest versionuse this if you just want it running
Check whether there is a CO2 sensor in my dining room. If there is,
build one rule: when the reading goes above 1000, push me a
notification telling me to open a window, and put the current
reading in the message. Just that one rule for now.
The full versionthe nudge and the ventilation together
Build me two separate dining room air quality rules — keep them
apart rather than rolling them into one. The first is the nudge:
CO2 above 1000 pushes a notification to my phone with the current
reading in it, only between 7am and 11pm so it never wakes me.
The second acts on its own: above 1400 it starts the circulation
fan or fresh-air unit and keeps it running until the level falls
back to 800, active all day and with no notification at all.
If there is a powered or vent window, open that too and let real
fresh air in first. Use the ready-made blueprints on the hub
rather than writing your own from scratch. When it is built, test
it yourself, confirm it really fires, and tell me which devices
you used.
Tuned to your homewhen the dining table is also the desk
Our dining table doubles as a desk — the kids do homework there and
I work there during the day, so we need to stay sharp. Tighten the
thresholds: nudge me above 800, start ventilating above 1100, and
still stand down once it falls under 800. Make the alert window
7am to 10pm and leave everything else as it is.
Changing it lateradjust a number in one sentence
The alerts come too often. Move the nudge threshold from 1000 to
1200, and only notify me once per episode instead of every few
minutes. Do not touch the ventilation rule at all. Tell me what
all three numbers are once you have changed them.
When something goes wrongre-tune the numbers from a week of data
I picked these thresholds off the top of my head and I want to know
whether they actually suit this house. Line up the past seven days
of dining room CO2 and compare them: what time of day the air
usually starts going stale, how high it peaks, how long it stays up
there. If the real pattern does not line up with 1000 / 1400 / 800,
propose a set that fits our routine instead, and say which days led
you there. Hold off on changing anything until I say go.
One caution: the HA-MCP connection URL is the key to your home. Do not post it publicly, and do not give it to services you do not trust.

Common questions

Where should the sensor go?
Near the table, roughly at seated head height, so it measures the air you are actually breathing. Avoid doorways and windows, where incoming air dilutes the reading and makes it look permanently good. Keep it out of the air conditioning airflow too.
The reading is high even with nobody in the room
First check whether the whole home has been sealed up for a long time — if nothing has been ventilated in a while, the baseline is genuinely high. Some sensors also need periodic calibration in outdoor air; leaving one on the balcony for a few hours usually restores a sensible baseline.
The circulation fan does not seem to help
A circulation fan only stirs the air already in the room. Without fresh air entering, the total amount of CO₂ does not change. What works is ventilation: open a window, run a fresh-air unit, or point the fan at an open window. That is exactly why the "open a window" nudge comes before automatic ventilation.
The alerts are too frequent
Raise the alert threshold from 1000 to 1100 or 1200, or restrict notifications to mealtimes. You can also have it alert once per episode rather than repeating every few minutes.
I do not want to open windows in winter
A short wide opening beats a long narrow one. Three to five minutes fully open clears most of the CO₂, while walls and furniture barely lose heat, so the room warms back quickly once shut. A permanently cracked window is both colder and less effective.
Do I have to rebuild it to change the thresholds?
No. Just say "the alerts are noisy, make it 1200" and the assistant will find that rule and edit it.
one month later

A month from now

Friends over for dinner are still lively at ten, and homework at the dining table goes better than it used to.

And you have learned that the stuffiness you could never quite name had a number behind it all along.

Share this post