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

Revision history [back]

I have done this before using an EnergyPlus Measure that I scripted that created an AvailabilityManagerAssignmentList object and AvailabilityManager:LowTemperatureTurnOff object. The AvailabilityManagerAssignmentList object references the AvailabilityManager:LowTemperatureTurnOff object where you specify a node (outside air node in this case) and the temperature at which the system turns off. I also had to modify the the Chilled Water Loop object to reference the correct Availability Manager list. I know creating your own measures isn't ideal but if you are new at this, I recommend looking at the OpenStudio Measure Writing Guide. Of course this can all be done outside of OpenStudio as well.

I have done this before using an EnergyPlus Measure that I scripted that created an AvailabilityManagerAssignmentList object and AvailabilityManager:LowTemperatureTurnOff object. The AvailabilityManagerAssignmentList object references the AvailabilityManager:LowTemperatureTurnOff object where you specify a node (outside air node in this case) and the temperature at which the system turns off. I also had to modify the the Chilled Water Loop object to reference the correct Availability Manager list. I know creating your own measures isn't ideal but if you are new at this, I recommend looking at the OpenStudio Measure Writing Guide. Of course this can all be done outside of OpenStudio as well.

Based on a comment request, here is a snippet of an example to apply the measure.

First I create the two Availability Manager objects I need for the measure:

new_plant_loop_availabilitymanagerlist_string = "
  AvailabilityManagerAssignmentList,
    Plant Loop Availability Manager List, !- Name
    AvailabilityManager:LowTemperatureTurnOff,          !- Availability Manager Object Type 1
    Plant Loop Availability Manager;             !- Availability Manager Name 1
    "

#make new object from string
idfObject = OpenStudio::IdfObject::load(new_plant_loop_availabilitymanager_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_plant_loop_availabilitymanager = wsObject.get

new_plant_loop_availabilitymanager_string = "
  AvailabilityManager:LowTemperatureTurnOff,
   Plant Loop Availability Manager, !- Name
    Plant Systems OA Node,          !- Sensor Node Name
    40;             !- Temperature (C)
    "

#make new object from string
idfObject = OpenStudio::IdfObject::load(new_plant_loop_availabilitymanagerlist_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_plant_loop_availabilitymanagerlist = wsObject.get

Second I get the Plant Loop I want to apply the measure to, in this case, Plant Loop. I then get that Plant Loop object and change the string for the 19th input, which is the input for the Availability Manager List Name, to my new Availability Manager List that I had created above:

#get Plant Loops in model
plant_loops = workspace.getObjectsByName("Plant Loop")

plant_loops.each do |plant_loop|
  plant_loop.setString(19,"Plant Loop Availability Manager List") # Availability Manager List Name
end

Hopefully I didn't leave anything out but this should get you an idea of how you can apply it to your model.

I have done this before using an EnergyPlus Measure that I scripted that created an AvailabilityManagerAssignmentList object and AvailabilityManager:LowTemperatureTurnOff object. The AvailabilityManagerAssignmentList object references the AvailabilityManager:LowTemperatureTurnOff object where you specify a node (outside air node in this case) and the temperature at which the system turns off. I also had to modify the the Chilled Water Loop object to reference the correct Availability Manager list. I know creating your own measures isn't ideal but if you are new at this, I recommend looking at the OpenStudio Measure Writing Guide. Of course this can all be done outside of OpenStudio as well.

Based on a comment request, here is a snippet of an example to apply the measure.

First I create the two Availability Manager objects I need for the measure:

new_plant_loop_availabilitymanagerlist_string = "
  AvailabilityManagerAssignmentList,
    Plant Loop Availability Manager List, !- Name
    AvailabilityManager:LowTemperatureTurnOff,          !- Availability Manager Object Type 1
    Plant Loop Availability Manager;             !- Availability Manager Name 1
    "

#make new object from string
idfObject = OpenStudio::IdfObject::load(new_plant_loop_availabilitymanager_string)
OpenStudio::IdfObject::load(new_plant_loop_availabilitymanagerlist_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_plant_loop_availabilitymanager new_plant_loop_availabilitymanagerlist = wsObject.get

new_plant_loop_availabilitymanager_string = "
  AvailabilityManager:LowTemperatureTurnOff,
   Plant Loop Availability Manager, !- Name
    Plant Systems OA Node,          !- Sensor Node Name
    40;             !- Temperature (C)
    "

#make new object from string
idfObject = OpenStudio::IdfObject::load(new_plant_loop_availabilitymanagerlist_string)
OpenStudio::IdfObject::load(new_plant_loop_availabilitymanager_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_plant_loop_availabilitymanagerlist new_plant_loop_availabilitymanager = wsObject.get

Second I get the Plant Loop I want to apply the measure to, in this case, Plant Loop. I then get that Plant Loop object and change the string for the 19th input, which is the input for the Availability Manager List Name, to my new Availability Manager List that I had created above:

#get Plant Loops in model
plant_loops = workspace.getObjectsByName("Plant Loop")

plant_loops.each do |plant_loop|
  plant_loop.setString(19,"Plant Loop Availability Manager List") # Availability Manager List Name
end

Hopefully I didn't leave anything out but this should get you an idea of how you can apply it to your model.