What about an EMS component?

Hello Mostapha and Chris,

I was wondering if you also think that an EMS component would be a great addition for Honeybee.

In my part of the world, all green building construction has to have an EMS system installed. It would be great for us engineers to show the predicted impact of an EMS system to the building in terms of energy consumption and indoor thermal comfort.

I understand that Energy Plus has an EMS object, although I have to admit I do not know how developed it is.

Do you think there would be space for one more item in the wishlist?

If not, I wonder if anyone in the community has some experience in using the EMS component. Specifically in adding it through the extra strings in Honeybee simulation component.

Thank you all in advance.

Kind regards,


I’m bumping this because it seems interesting.

I did some additional research into the EMS module provided in EnergyPlus.

It seems that it is a high-level control object, much like the ones we already have access too in Honeybee or Openstudio components (e.g. set point manager, availability manager, demand manager, etc.). The interesting, in my opinion, advantage of the EMS module is that it can span system boundaries effectively integrating different high-level control objects. My intuition is that this can be used to incorporate occupant thermal comfort into energy optimization routines.

A problem might be that coding is required to develop EMS modules, specifically using the EnergyPlus Runtime Language (ERL). It’s functionality is also hindered by the availability of sensor and actuator objects. Sensors are quite easy to develop (as they come from EP outputs). I am currently trying to understand what kind of actuators are available and which have been developed.

Furthermore, the way the EMS module runs it seems to me as an internal optimization or quality-check of the whole simulation. What it does is after each timestep, it goes through the EP reports the variable values, and checks them against actuator values. If required, the timestep is repeated (this might be an issue if we poorly design control strategies).

Anyways, I think I’ve said too much. I’m going over this which seems like a solid reference (http://apps1.eere.energy.gov/buildings/energyplus/pdfs/ems_applicat…). Hoping for some feedbacks on this, even if it’s bad :slight_smile:

Kind regards,


Hello Theodore,

I believe we are looking for something very similar. I would be very interested in seeing Honeybee interfacing with EnergyPlus’s EMS. There is some python code my research group and I have developed to improve parts of building energy models which we would like to connect to EnergyPlus. The best example I’ve seen thus far is Ladybug and Honeybee here. Additionally, it would be awesome to drop our code in as a component in grasshopper and link up with a ladybug+honeybee building model setup. So overall, I would be very interested in seeing a connection between Honeybee and EnergyPlus EMS.

**Side discussion you might find interesting: **

I would also like to bring to your attention the FMI standard (https://fmi-standard.org/start), which is a standard for packaging models and connect with other tools. One of those supported tools is EnergyPlus, which uses EnergyPlus’ ExternalInterface and EMS components to connect with functional mockup units (FMUs) for cosimulation.

The ExternalInterface can map to three EnergyPlus input objects (EMS) called:

FMUs are models, typically written in Modelica but can be other languages, that are packaged into C code with necessary solvers to passing results between models on a timestep basis. In other words, a model written in modelica is packaged and connected to EnergyPlus using the FMI standard and EP’s EMS. Coming from the other side of the setup, using research from LBL done by Thierry Stephane Nouidui and Machael Wetter, you can package EnergyPlus as an FMU. One example of this work can be found: http://eetd.lbl.gov/publications/functional-mock-up-unit-import-in-ene.

The reason I bring all this up is because I asked a different question on GitHub recently about how to link Python code to EnergyPlus (really the EMS). Although this question is quite different there are some similarities and the end result is nearly the same. The question can be found: http://stackoverflow.com/questions/30717611/fmu-export-of-python-co… and also here: https://unmethours.com/question/8356/fmu-export-of-python-code-or-p…

Hi guys,

Thank you for adding this discussion and the resources. This is a good discussion to be added to github so we can implement it at some point. I personally have no experience in using either EMS or FMU, but I can see how they can be really helpful for advance users.

Since we already have so much in our plate I don’t think I will find a time soon to implement them. At the same time if either of you [or anybody else on the group] is willing to take on the development I will be happy to support you during the process.




It has been a while! :slight_smile: Spawn is still under development but it will make things easier eventually.

For the time being they have provided a Python wrapper around EnergyPlus EMS which means one can use Python instead of the Erl language to use EMS. I haven’t used it myself but that should make things much easier.