1

References for OpenStudio Schedule objects

Can anyone suggest a good reference for learning about OpenStudio Schedule objects? I find the SDK documentation confusing and the E+ input/output guide doesn't include objects exclusive to openstudio.

I want to use the OS_SDK python bindings to write a script to modify some models, but I think I'm missing a couple fundamental concepts. For example:

  • What are the differences (and connections) between OS:Schedule:Ruleset, OS:Schedule:Rule, OS:DefaultScheduleSet objects?
  • How does (should) thehoursofOperationSchedule (found in the DefaultScheduleSet) get used? Can it affect other schedules?
  • Do OS:Schedule:Rule objects always connect to a OS:Schedule:Day Day Schedule? Can (should) I use other schedule types? (e.g. ScheduleCompact, ScheduleConstant, etc)
  • Are there other considerations I should think about when when I set up schedules when I use EMS objects to model BAS controls measures?
James_BC's avatar
51
James_BC
asked 2024-06-06 17:55:21 -0500
Aaron Boranian's avatar
14.1k
Aaron Boranian
updated 2024-06-12 15:16:21 -0500
edit flag offensive 0 remove flag close merge delete

Comments

add a comment see more comments

1 Answer

3

ScheduleRuleset is an OpenStudio specific object provided for convenience.

It has:

  • A default ScheduleDay
  • Potential special days ScheduleDays (Summer / Winter Design Day, Holiday, CustomDay1 & 2)
  • 0 to many ScheduleRules

A ScheduleRule has a ScheduleDay, and fields means to express when the rule applies: * Apply Sunday, Monday...Saturday * A start date & end date

ScheduleRuleset has the logic needed to translate to EnergyPlus IDF objects, because it knows when rules are meant to apply (and if no rules apply, the defaultDay is used). It will translate to an E+ Schedule:Year object (alongside as many Schedule:Week:Daily objects needed to represent it and Schedule:Day:Interval).

The DefaultScheduleSet is an abstraction provided for convenience, and with a concept that is dear to OpenStudio which is Inheritance(same as for SpaceType and co, cf https://nrel.github.io/OpenStudio-use...). Basically you can use a DefaultScheduleSet and apply to your Building, BuildingStory, SpaceType or Space. And that would allow you to not specifically assign a schedule to some of your loads, such as Lights, as it would use the one from the DefaultScheduleSet.

Note that the "Hours Of Operation" one is not being used anywhere though.

If you're going to fully control your schedule via EMS, it's probably easier to just use a Schedule:Constant, but any would work, as I think the actuator is still going to be "Schedule Value" for all Schedule:XXX objects in E+.

You can find lots of example of usage for pretty much all OpenStudio ModelObjects in the OpenStudio-resources repository (that's our integration tests which serve as an API demonstration as well). While it has historically been ruby only, I recently ported all examples to python as well. Go check out https://github.com/NREL/OpenStudio-re..., and for eg schedule_ruleset_2012_LeapYear.py

I created a jupyter notebook to show you how to use it and with explanation, see it at ScheduleRuleset_Demo.ipynb

Julien Marrec's avatar
29.7k
Julien Marrec
answered 2024-06-07 02:21:13 -0500, updated 2024-06-07 02:34:26 -0500
edit flag offensive 0 remove flag delete link

Comments

Amazing. Just what I needed. Thank you Julien!

James_BC's avatar James_BC (2024-06-07 10:36:17 -0500) edit
add a comment see more comments