Natural ventilation based on CO2 sensors

Hi everybody,

Does anyone know if there is a way to model natural ventilation in a zone based on CO2 levels and not air temperature?

And bonus question;
In a scenario where you have 2 windows in a thermal zone, is there a way to apply different profiles/controls to each one of them? For example, have one modelled as completely shut and the other one to open based on CO2.

Apologies if this has been discussed before - I wasn’t able to find any reference.



I‘m having the exact same issue. Many thanks beforehand!

Have you already found a solution?

@StefanosPapathanasopoulos and @adriancasadecampo ,
There are many built in workflows for adjusting mechanical ventilation based on CO2. For natural ventilation, there isn’t anything that I know of for the single zone objects that are built by default into honeybee. There may be some controls on the airflow network and I would recommend checking the Energyplus input output reference to see if this is the case.

For a quick estimate, I might just recommend d using a schedule on the natural ventilation that mirrors the occupancy schedule. I should ask more speficifally what information are you trying to obtain from this simulation? Is it zone temperatures or energy use?

1 Like

Chris, thank you so much for your reply!
I personally am trying to optimize the energy use via galapagos by using different parameters. So for me there’s no option to use the result file outputs.

In my case, I am going through an exercise where I want to determine the degree of opening that the glazing needs to achieve in order for the CO2 concentration to remain under 1,000ppm at all times. It’s essentially modelling the windows to operate based on CO2 and not air temperature.

@StefanosPapathanasopoulos and @adriancasadecampo ,
I checked the input / output reference and I think your best route forward would be to add some ZoneContaminantSourceAndSink:CarbonDioxide objects using additionalStrings. It looks like you would be able to get some outputs of ppm of CO2 after doing this

Here is the link to the CO2 objects in the Input / Output reference and you will see that they provide a sample object that you can add to your model using additionalStrings:

1 Like

Thanks for your help!

As you already know, I want to use CO2 sensors to control natural ventilation. The “Set EP Air Flow” component does this using indoor temperature sensors, right? (see upload)

If I’m understanding it right, it kind of works iteratively like this: open window, when temperature gets over x°C - temperature falls. close window when temperature gets below y°C - temperature rises.
—> I need this using CO2 sensors according: open window, when CO2 amount gets over xppm - CO2 amount falls. close window when CO2 gets below yppm - CO2 amount rises.

I’m using the “totalThermalLoad” output as fitness function for galapagos. So if I used the CO2 output as you describe, I would get a loop, wouldn’t I? Is it then even possible to optimize via galapagos?

Again: Thank you very much!

@adriancasadecampo ,

You will have to write an OpenStudio measure if you need to automatically assign the CO2 source and sink objects with each parametric simulation. You may also need to use the EMS if you need to dynamically change the simulation based on the CO2 value.

So it’s definitely possible but you have some work cut out for you if you want to pull it off.

1 Like


Thanks for your quick respond!
Unfortunately this is bad news for me, as I don’t have time to really get into writing my own OS components. Moreover, the whole script is working with EP components (I dont know how to use or mix with OS).

Thank you so much for the help though! :slight_smile:

Have a good week!