Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Thermostat Schedule Set

asked 2015-03-30 14:05:40 -0500

nadish21's avatar

updated 2015-07-28 12:59:26 -0500


I am trying to simulate a small house in the OpenStudio Template of "Midrise Apartment". I am having troubles in ascertaining how the Thermostat behaves according to the provided Temperature values and the selected schedule set. I do not know what schedule set do I need to select in order for My HVAC System to Keep on heating the thermal zone till a particular set temperature say T is reached and as soon as T is reached the HVAC turns off. When the Temperature drops to T-1 deg F the HVAC should turn on automatically. Further, is such a setting possible in OpenStudio, if so can I get a detailed documentation of the Thermostat schedule sets of OpenStudio, if Not can anyone guide me how to realize this appropriately using Energy+ as I am referring to Energy+ documentation now.

Any help will be greatly appreciated.

Thank You.

The Following Part is for my pre-latest questions on the data which the EMS program generates when the IDF is ran through Energy Plus.(@Ivan Korolija)

The Following is the link to the Excel Results File file:

Excel Results File-pre Latest

The Following is the Link to the IDF file:

IDF File

The following are the Latest files (@Ivan).

Latest Excel Results File:

Excel File_Latest

Latest IDF File:


edit retag flag offensive close merge delete



Could you please elaborate further the type of HVAC system. Zone thermostats often control certain parameters of HVAC system as well (for example dumper position in VAV system, or flow rates through reheating coils) in order to maintain desired setpoint by modulating system capacity. However, if you have a system with a constant capacity (such as electric baseboard heater) you might end up with having a lot of cycling (on/off operation). I got a feeling that you would like to have a cycling system with a thermostat deadband of 1C. This might be done in EMS (and it shouldn't be complex).

Ivan Korolija's avatar Ivan Korolija  ( 2015-03-30 15:26:41 -0500 )edit

I am unable to understand the Temperature 25, Temperature 18 mentioned in the "Schedule Type Limits Name" in the OpenStudio Inspector of SketchUp. I want to set the Lower and Upper bounds of Temperature for the Thermostat which will Turn the HVAC on/ off in a Heating Scenario. Also I do not need a dual set point for the Thermostat, i.e When set to heating the HVAC System will only turn on when the lower limit for Zone air Temperature is reached and will not start cooling when the higher limit of zone Air temperature is reached. I am using a PTHP system for my HVAC.

nadish21's avatar nadish21  ( 2015-03-30 17:02:11 -0500 )edit

I'm not that familiar with OpenStudio, however I can guess that Temperature 25 and Temperature 18 are cooling and heating setpoints in a dual setpoint thermostat. PTHP operates in the following way: From the zone balance calculation heating (or cooling) demand is calculated to met setpoint temperature. If heating (or cooling) is required, the PTHP starts cycling heating (or cooling) coil. Since PTHP cycles coil on and off to meet the load, the coil is actually operated for a fraction of a timestep. Someone should correct me if I'm wrong. However, your desired control doesn't fit this logic...

Ivan Korolija's avatar Ivan Korolija  ( 2015-03-30 18:20:52 -0500 )edit

...I'm not aware there is a thermostat control in E+ which supports your desired PTHP operation. However, you might be able to create your control by using EMS. Cooling can be excluded by setting the DX coil availability to 0 all the time so this isn't an issue. However, you'll have to play with fan and heating coil availability by switching it on and off based on your desired temperature differences. For example, you can set up heating setpoint to 21C. As soon as your zone temp. reaches 21C you can overwrite availability schedule by EMS and keep it off until zone temp. drops to below 20.

Ivan Korolija's avatar Ivan Korolija  ( 2015-03-30 18:27:58 -0500 )edit

Hello Ivan,

Thank you for your comments, but I am afraid I have a few more questions. First: if I am using Packaged Rooftop Air Conditioner with an electric heating coil and a closed Air circuit, i.e. no External Air Supply and exhaust plenum, will the working be different than that of PTHP? Secondly, When I see the data of the heating energy supplied by the HVAC system, I never see them shutting off, I have 12 time steps in an hour which means 5 mins time step, and the system does not shut off at any point the whole day, which is abnormal. What is driving these performance characteristics?

nadish21's avatar nadish21  ( 2015-04-01 10:53:15 -0500 )edit

4 Answers

Sort by » oldest newest most voted

answered 2015-06-22 12:03:13 -0500

Ivan Korolija's avatar

updated 2015-07-30 19:16:14 -0500

Hi Nadish,

Let’s summarise the question. You would like to cycle your system ON and OFF in both cooling and heating mode. The operation in the heating mode should be:

  1. Keep the system running until the zone air temperature reaches the heating setpoint
  2. Switch off the system and keep it off until the zone air temperature drops below the heating setpoint by Toffset
  3. Switch on the system again.

Similarly, the operation in the cooling mode should be:

  1. Keep the system running until the zone air temperature reaches the cooling setpoint
  2. Switch off the system and keep it off until the zone air temperature rises above the cooling setpoint by Toffset.
  3. Switch on the system again.

We can identify three control zones in the attached diagram.

  • The crosshatched control zone (between heating setpoint and cooling setpoint) is a zone when the system is always OFF.
  • The grey-shaded control zones (below (heating setpoint – Toffset) line and above (cooling setpoint + Toffset) line) are zones when the system is always ON.
  • Control zones within Toffset from either heating setpoint or cooling setpoint are zones where system can be either ON or OFF depending on the previous operation. For example, if the heating setpoint is 21C and Toffset is 0.5C. When the zone air temperature reaches 21C the system should be stopped. The temperature in the zone starts dropping and in the next timestep it might be 20.7. It is still within the Toffset boundary and the system should remain OFF. If in the following timestep the zone air temperature drops below (heating setpoing – Toffset) the system will switch ON. Naturally, the zone air temperature will start rising, however it might not reash the heating setpoint within one timestep. This means that the system should remain ON. The behaviour is similar in the cooling mode.

image description

The task is to apply this control login within EnergyPlus by using EMS. The crude way of achieving this is to override the system availability schedule (AvailabilityManager:Scheduled > Packaged Rooftop Air Conditioner Availability Manager).

In your example the system availability schedule (Always On Discrete) is used by many other objects. You need to create new schedule:constant (let’s name it Cycle) and apply it to the Packaged Rooftop Air Conditioner Availability Manager.

Schedule:Constant,Cycle,OnOff,1; ! New schedule object

AvailabilityManager:Scheduled, ! Updated Availability Manager
  Packaged Rooftop Air Conditioner Availability Manager, 

To be able to create desired control logic you need to have three EMS sensors: Zone Mean Air Temperature, Zone Thermostat Heating Setpoint Temperature, and Zone Thermostat Cooling Setpoint Temperature.

  Thermal Zone 1,
  Zone Mean Air Temperature;

  Thermal Zone 1,
  Zone Thermostat Heating Setpoint Temperature;

  Thermal Zone 1,
  Zone Thermostat Cooling Setpoint Temperature;

In addition to EMS sensors you need an EMS Actuator which will overwrite the “Cycle” schedule (basically switches system ON and OFF)

  Schedule Value;

The EMS Program Calling Manager specifies when the ERL program is executed ... (more)

edit flag offensive delete link more


Hello Ivan,

Thank you for such elaborate reply. It is a godsend. My program is working now without any errors and also I learnt the proper syntax for writing an EMS code. Thank you again for your help.

nadish21's avatar nadish21  ( 2015-06-25 23:19:40 -0500 )edit

Hello Ivan,

I have been running the above EMS code and has got very substantial success in controlling the behavior of the HVAC system. But there are certain discrepancies in my data. For Example if this EMS works correctly our AptTemp variable should Oscillate b/w The hSP-Toffset and cSP+Toffset and should be Ideally b/w cSP and hSP for most of the time after the HVAC operation. But in the data I am getting from running the IDF the Zone Air Temperature drops significantly below the hSP-Toffset value even if the HVAC is on, although sometimes there is not Heat addition by the Heating Coil

nadish21's avatar nadish21  ( 2015-07-19 15:18:48 -0500 )edit

What could be the Possible reason for the Above? I will attach the latest IDF and Excel results file and would be extremely grateful if you could go over them. I am very grateful for your help as it has helped me a lot in understanding EnergyPlus. Thank you again.

PS: I am editing my Original Question to Include the IDF file and Excel Results file.

nadish21's avatar nadish21  ( 2015-07-19 15:22:11 -0500 )edit

Hi Nadish, unlikely the EMS causes this issue. It is related to the outdoor air temperature and a heating coil capacity. In your Coil:Heating:DX:SingleSpeed object you specified -8C in the Minimum Outdoor Dry-Bulb Temperature for Compressor Operation field which means that your compressor is switched off whenever the outdoor temp is bellow this value (check xls file). However, even if you change it to -20C, the coil heating output is related to outdoor temp, as defined by curves, and the output decreases with the drop in outdoor temperature. On the other hand, the heating demand increases.

Ivan Korolija's avatar Ivan Korolija  ( 2015-07-24 07:14:06 -0500 )edit

Hello Ivan,

Thank you for clearing that up. I was way off on this. I wonder how would a single Electric Heater function instead of a heating coil, since there is no such Outdoor Air Temperature dependence on the Electric heater? Or do I need to oversize my heating coil by either changing the multiplier or by providing very low temperature for the HVAC sizing calculation days in EPlus?

nadish21's avatar nadish21  ( 2015-07-24 13:29:08 -0500 )edit

answered 2015-03-31 00:03:14 -0500

To answer part of your question OpenStudio does require both a heating and cooling stepping, even if you system is heating only or cooling only. While the thermostat won't be used for anything, you do have to make sure that the set points for the cooling schedule are hotter than the heating schedule. If not you will hit issues because there is no deadband. I'll let someone else address strategies for the control strategy you are looking for.

edit flag offensive delete link more


Hello David,

Thank your for your response, I greatly appreciate it. I also want to know what does "Temperature 25", "Temperature 18", "Temperature 40" etc. mean while selecting the setpoint temperature for the HVAC System?

nadish21's avatar nadish21  ( 2015-03-31 11:15:32 -0500 )edit

The ThermostatSetpointDualSetpoint object refers to two schedule objects. What you see named "Temperature 25" is schedule object that describes the setpoint value for every hour of the year. It maybe be a static 25C or maybe has a setback for certain hours or days of the week. The name is just descriptive. To change the setpoint you would want to alter the schedule in the schedules tab of the OpenStudio application.

You can view documentation on OpenStudio schedules here.

David Goldwasser's avatar David Goldwasser  ( 2015-03-31 11:56:42 -0500 )edit

Hello David,

Thank You for your answer, it helped me get rid of the unwanted schedules. Another followup question though: What is the effect of the "OutputControl:ReportingTolerances" - "Field: Tolerance for Time Heating Setpoint Not Met" has on the HVAC on-off schedule? I mean to say that will the tolerance limit given here set the HVAC on-off according to the Heating set point temperature mentioned in the Schedules section? Thank You once again for your support.

nadish21's avatar nadish21  ( 2015-03-31 13:08:09 -0500 )edit

May I answer instead of David :). "OutputControl:ReportingTolerances" - "Field: Tolerance for Time Heating Setpoint Not Met" has no effect on any schedule. It is only for reporting purposes and works as a counter. I think the default value is 0.2C which means that any time the zone temperature is less than "Thermostat Temp - 0.2" it will record the timestep as Heating Setpoint Not Met. This is actually to help you to validate that your system can meet a demand during the most of operating hours.

Ivan Korolija's avatar Ivan Korolija  ( 2015-03-31 18:55:44 -0500 )edit

answered 2015-06-15 12:24:28 -0500

nadish21's avatar

updated 2015-06-18 01:01:07 -0500

Hello Ivan,

I am Posting the text of my EMS code here along with the error file. I would be very grateful for any feedback that you can provide me with.


image description


The following Image is of the Top portion of the Error File.

image description

The Next Image contains the bottom few lines of the Error file which were left out in the previous Image.

image description

OpenStudio HVAC System Setup for a Small House

This following image shows the components of a closed loop PTAC system that I am trying to model for a small house. It does not have any external Supply and return plenum and the Air mass of the conditioned zone i.e. Thermal Zone 1 serves as the Source of Supply and Return Air, which is the case of small houses. Also The components include an Electric Heater (Shown in red), Single Speed Cooling Coil and a Fan which I think Summarizes a small HVAC unit used to Centrally Condition a small House. Also the Blue node is where all the temperature sensing is occurring. This is the node temperature that I am referring to in my EMS Code.

image description

Thank You,

Nadish Anand

edit flag offensive delete link more


I was not able to attache the Text files here, so I had to take screen Shots. Also when I am pasting the Text inside the Answer, I am not getting a properly formatted answer as it can be seen in this text File. Hence in the End I had to revert to the screen shots in order to post my code.

nadish21's avatar nadish21  ( 2015-06-15 12:28:20 -0500 )edit

You haven't closed any of EMS objects with comma (lines starting with EnergyManagementSystem:...). Sensors are also incorrectly defined. The EMS definition of temperature sensor should be: EnergyManagementSystem:Sensos, Apt_NodeTemp, "This is user defined sensor name which is going to be used in EMS program" XXX, "here you should specify zone name for which you temperature value" Zone Mean Air Temperature; "I think the dry-bulb air temperature variable is this one; you can check in RDD file"

Ivan Korolija's avatar Ivan Korolija  ( 2015-06-15 12:29:59 -0500 )edit

Hello Ivan,

I edited the code as you asked me to. When I ran this on EPlus, I did not get any severe Errors but all the Result Spreadsheets are empty. Am I wrong in the Logic? Also I have pasted the Screenshot of the Edited EMS code in my original answer.

I appreciate your help. Your suggestions are quite invaluable.

Thank You

nadish21's avatar nadish21  ( 2015-06-15 13:28:37 -0500 )edit

@nadish21 in the future please do not post comments or updates to your question in the answers section. Instead edit your original question to add updates, files, images, code, etc.

MatthewSteen's avatar MatthewSteen  ( 2015-06-15 16:44:04 -0500 )edit

Hello Matthew.

Yes will definitely do that from next time.

nadish21's avatar nadish21  ( 2015-06-15 20:39:55 -0500 )edit

answered 2015-07-19 20:45:17 -0500

updated 2015-07-19 20:45:43 -0500

For a quick and easy way to model residential buildings try BEopt. It uses EnergyPlus and will create an IDF for you.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops


Question Tools



Asked: 2015-03-30 14:05:40 -0500

Seen: 5,150 times

Last updated: Jul 30 '15