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

Revision history [back]

On OpenStudio Application / EMS support ... too many characters for a follow-up comment.

The OpenStudio Application doesn't provide support for all OpenStudio API features, notably EMS objects (e.g. sensors, actuators). CTRL-F "EMS" and "EnergyManagementSystem" in the SDK classes. This is discussed here and here. As a solution, the first link provides an example of OpenStudio API/Ruby scripting (towards adding an EMS program). Another example here.

There is no issue moving from/to:

  • OpenStudio Application > .osm file
  • .osm file > (e.g. Ruby or Python) script, adding EMS
  • EMS script > altered .osm file
  • altered .osm file > OpenStudio Application

... new EMS parameters will be preserved - simply not visible when using the OpenStudio Application.

There's a mention that the OpenStudio Application supports the creation of EMS programs. One does find code commits to that effect, but I'm unsure if/when these are/were available (I'm hoping that someone can clear that up).

On OpenStudio Application / EMS support ... too many characters for a follow-up comment.

The OpenStudio Application doesn't provide support for all OpenStudio API features, notably EMS objects (e.g. sensors, actuators). CTRL-F "EMS" and "EnergyManagementSystem" in the SDK classes. This is discussed here and here. As a solution, the first link provides an example of OpenStudio API/Ruby scripting (towards adding an EMS program). Another example here.

There is no issue moving from/to:

  • OpenStudio Application > .osm file
  • .osm file > (e.g. Ruby or Python) script, adding EMS
  • EMS script > altered .osm file
  • altered .osm file > OpenStudio Application

... new EMS parameters will be preserved - simply not visible when using the OpenStudio Application.

There's a mention that the OpenStudio Application supports the creation of EMS programs. One does find code commits to that effect, but I'm unsure if/when these are/were available (I'm hoping that someone can clear that up).


EDIT: Here is a fairly straightforward OpenStudio-based EMS program predicting/resetting GSHP loop outlet temperatures (distributed as part of OpenStudio-Standards, mentioned here). The single EMS sensor (loop inlet temperature) is set here, while the EMS actuator (resulting outlet temperature) is set here. The EMS program is only 3-lines long, with the actual EMS equation developed here in a single line. The EMS program is added here. That's about the simplest (and well documented) example I can find of using the OpenStudio API to set up an EMS program (holding an equation).

I suggest you email the paper authors to see if they'd be willing to share the actual IDF. That would be of great help to you, IMO.

On OpenStudio Application / EMS support ... too many characters for a follow-up comment.

The OpenStudio Application doesn't provide support for all OpenStudio API features, notably EMS objects (e.g. sensors, actuators). CTRL-F "EMS" and "EnergyManagementSystem" in the SDK classes. This is discussed here and here. As a solution, the first link provides an example of OpenStudio API/Ruby scripting (towards adding an EMS program). Another example here.

There is no issue moving from/to:

  • OpenStudio Application > .osm file
  • .osm file > (e.g. Ruby or Python) script, adding EMS
  • EMS script > altered .osm file
  • altered .osm file > OpenStudio Application

... new EMS parameters will be preserved - simply not visible when using the OpenStudio Application.

There's a mention that the OpenStudio Application supports the creation of EMS programs. One does find code commits to that effect, but I'm unsure if/when these are/were available (I'm hoping that someone can clear that up).


EDIT: Here (line 1037) is a fairly straightforward OpenStudio-based EMS program predicting/resetting GSHP loop outlet temperatures (distributed as part of OpenStudio-Standards, mentioned here). The single EMS sensor (loop inlet temperature) is set here, (line 1024), while the EMS actuator (resulting outlet temperature) is set here. (line 1030). The EMS program is only 3-lines long, with the actual EMS equation developed here (line 1041) in a single line. The EMS program is added here. (line 1047). That's about the simplest (and well documented) example I can find of using the OpenStudio API to set up an EMS program (holding an equation).

I suggest you email the paper authors to see if they'd be willing to share the actual IDF. That would be of great help to you, IMO.