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

Revision history [back]

AvailabilityManager:DifferentialThermostat is already implemented in OpenStudio and has been for quite a while, but it isn't available in the OS App though, so you need to use the API via a measure (or load the ruby bindings in a terminal, whatever). Here's some dummy code to give you an example of how the avm works:

m = OpenStudio::Model::Model.new
p = OpenStudio::Model::PlantLoop.new(m)
p2 = OpenStudio::Model::PlantLoop.new(m)

s = OpenStudio::Model::SolarCollectorFlatPlateWater.new(m)
p.addSupplyBranchForComponent(s)

wh = OpenStudio::Model::WaterHeaterMixed.new(m)
p.addDemandBranchForComponent(wh)
p2.addSupplyBranchForComponent(wh)


avm = OpenStudio::Model::AvailabilityManagerDifferentialThermostat.new(m)
avm.setHotNode(p.supplyOutletNode)
avm.setColdNode(wh.supplyInletModelObject.get.to_Node.get)

avm.setTemperatureDifferenceOnLimit(10)
avm.setTemperatureDifferenceOffLimit(2)

FYI, you might be interested in this Pull Request I have made #2844, where I added every missing availability managers to openstudio, as well as the ability to add several (currently one only is allowed) AVMs for a given plant loop. This will allow to properly control Solar collector loops (and many more).

It got merged in develop so should be available in the upcoming new release of OpenStudio.

If you are tight on time constraints, I would propose your use an E+ measure.

AvailabilityManager:DifferentialThermostat is already implemented in OpenStudio and has been for quite a while, but it isn't available in the OS App though, so you need to use the API via a measure (or load the ruby bindings in a terminal, whatever). Here's some dummy code to give you an example of how the avm works:

m = OpenStudio::Model::Model.new
p = OpenStudio::Model::PlantLoop.new(m)
p2 = OpenStudio::Model::PlantLoop.new(m)

s = OpenStudio::Model::SolarCollectorFlatPlateWater.new(m)
p.addSupplyBranchForComponent(s)

wh = OpenStudio::Model::WaterHeaterMixed.new(m)
p.addDemandBranchForComponent(wh)
p2.addSupplyBranchForComponent(wh)


avm = OpenStudio::Model::AvailabilityManagerDifferentialThermostat.new(m)
avm.setHotNode(p.supplyOutletNode)
avm.setColdNode(wh.supplyInletModelObject.get.to_Node.get)

avm.setTemperatureDifferenceOnLimit(10)
avm.setTemperatureDifferenceOffLimit(2)

FYI, you might be interested in this Pull Request I have made #2844, where I added every missing availability managers to openstudio, as well as the ability to add several (currently one only is allowed) AVMs for a given plant loop. This will allow to properly control Solar collector loops (and many more).

It got merged in develop so should be available in the upcoming new release of OpenStudio.

If you are tight on time constraints, I would propose your use an E+ measure.