Energy Balance component used to graph EnergyPlus run outside of Honeybee - making sense of the graphs

Hi All

I am piecing together what I can from these posts to try to use Honeybee/Ladybug to analyse EnergyPlus files run outside of HB. This is because they were created in OpenStudio and I want merely to use the power of HB/LB analysis.

I have streamed the output from the ‘HB_Generate EP Output’ object to a text file and copy/pasted these lines into the existing “pre-preprocess.idf” files found in the run directories of the OpenStudio operations. Then I have group run the E+ files. However, when I run the ‘HB_Construct Energy Balance’ object pointing the resultFileAddress at the appropriate .csv file, I get an energy balance that does not include the surface heat losses. Picking apart the many, many columns in the csv file, the data does seem to be there. Graphing the output from the ‘HB_Read EP Surface Result’ object, there are many, many surfaces with data available…

I feel like I am failing some completely obvious and simple intelligence test, as it seems the answer is probably in some overlooked corner of what i am specifying.

I am providing the following files for those who wish to look into this: - a slimmed down version of Chris Mackey’s Hydra Energy Balance script that does no simulation, just opens the appropriate files.
The pre-preprocess.idf input file
The pre-preprocess.csv output file
The pre-preprocess.eio with the surface information
The problem graphs look like this:

The basic test file is very simple:

Thanks in anticipation of your assistance.

The .csv file can be downloaded here:

The E+ file: pre-preprocess.idf (148.3 KB)
The .eio file: Mpre-preprocess.eio (31.7 KB) The GH script: (544.9 KB)

Still struggling to see why the HB_Construct_EnergyBalance works for a file created by HB but not for a file created elsewhere and imported using the HB_Re-Run_IDF.


I have parsed the output.csv file of one of the 32 models i need to report on. This is currently a laborious manual task, likely to be fraught with major Quality Assurance risks, as I am amalgamating multiple different columns for each file. The data is clearly in the file as this output for one of the files shows (not scaled by normalising as energy use per sq m in my Excel file, hence number differences):

I am wondering whether there is something more than the HBZone data pulled in by the .idf file link to the energy balance file? That has to be done via the [WIP] HB_ImportIDF component where the readme report states:

I understood the surface definitions came from the HB_ReadEPSrfResult, not this ImportIDF file?

ANY thoughts on what we can do to solve this issue gratefully received…


A month in, and I am still puzzling over this issue. ANY HELP WOULD BE GREATLY APPRECIATED!

I have downloaded Chris Mackey’s excellent Energy Balance example file from,0

I have updated all the components.

It runs perfectly well.

I have a set of 32 open Studio files created outside of HB/LB.

I wish to run an energy balance for these.

I have imported the output variable list from Chris’s example file into the 32 files and these enable me manually to construct in Excel an energy balance following the same procedure as is behind the Energy Balance HB Component, but this is laborious, and fraught with potential for error with many, many, opaque surface components to be linked.

But, I cannot just point the HB Read EP Result file to the .csv files my Energy Plus runs have produced and get the energy balance to work…

A very odd issue.


Looks like there are two problems here.

First your windows and door are not being interpreted in the importIdf component, as you can see in the image below. So the readEPSrfResult component, which is reading from your csv, is interpreting 19 more surfaces then are in your HBZone model. Not sure what the problem here is since HB looks for FenestrationDetailed surfaces, which is how you’re modeling your windows.

Secondly, the naming convention in your csv doesn’t match the HBZone names (see image below, also note missing windows). I don’t remember all the string parsing HB does before matching surface names to results, but I believe the main problem here is that lack of an underscore.

The solution for the naming convention might be an easy fix: change your EP modeling to be consistent with HB conventions (i.e renaming surfaces with underscores vs spaces).

For the missing windows, the only thing that occurs to me is to go into the importIdf component and start debugging it to figure out why it’s missing windows. I would suggest starting a git issue about it here:, and some coder might be able to fix it for you.




I will look at the renaming issue first.

Great suggestions.


FYI it might be easier to just add the underscores in the output from the ReadEPResults/ReadSrfEPResults components before trying to rerun all your EP models.



Thank you SO much. It is a really easy fix (which I am somewhat embarrassed not to have sorted out myself): surface names altered as you suggested, and I have the results I was looking for!


@MichaelDonn, did that also work to bring in your glazing conduction loss? Since your HB model doesn’t have windows, I think it still might be missing?



Thanks, yes it did. The issue was that in that example file I was using the WIP object for importing IDF files. With the type of window definitions that I was using, the IDF importer did not bring in the windows, hence they did not show up in your previews. All that I was using that input for, as far as I could see, was to bring in the zone information.

What I have done is export a gbXML file from OpenStudio and import the HB Zones from that. This certainly can preview the windows as well as the walls …

Thanks again for your help.


That’s a good solution, gbXML is a more robust export format then idf. Glad you got it working!