Runtime error: 'hb_airDetail' object has no attribute 'heatRecovery'

Hi everyone,

I’m a recent user of the Honeybee plugin for Grasshopper and am currently trying to run an EnergyPlus simulation for a small, simple case study. As of now, the simulation is not fully running (nor producing any IDF file output) and, from my understanding, the analysis stops when it reaches the air systems part.

I noticed that the ‘Honeybee_HVAC Air Details’ component was recently updated, and the ‘heatRecovery’ input was replaced by ‘sensibeHeatRecovery’ and ‘latentHeatRecovery’. And although this component is returning all the correct information, when I connect the air details to the ‘HB_Assign HVAC System’ I get a null read out of that component.

Apologies if the image is not clear enough. The error message from the EP simulation component is the following:

[7 of 8] Writing loads and ideal air system…
Runtime error (MissingMemberException): ‘hb_airDetail’ object has no attribute ‘heatRecovery’
line 556, in EPIdealAirSystem, “”
line 2277, in main, “”
line 2402, in script

I’ve tried using ‘Ladybug_Update File’, as well as the previous version of the ‘Honeybee_HVAC Air Details’ and none of the attempts has been successful. I do know that if I don’t include the HVAC description on the simulation, the IDF file is written with no issues.

Thanks for your attention!

Best regards,

Please attach a minimal version of your file with geometries internalized if possible. (563.2 KB)

Here it is.

Hi Helena,

I had the same problem as you last week, so I hope the solution I went for is correct.

Instead of using the ´HB_RunEnergySimulation, use the ´HB_ExportToOpeneStudio, I was told, that the run energy simulation component is phased out and for the complexity of the energy simulation with ventilation and so on, you have to use the export to open studio one. In general, it works the same way as the other one and for me it worked with your geometry.

I also noticed, that your script was not fully updated so I added an update_HB component to it, you will have to replace one component manually, then recompute.
I think it makes it easier for everybody if you internalise your data much further. To not being asked for the weather file I added another component where you simply set the weather file with the URL from the energy plus website. I left the script a bit messy but I´m sure you´ll figure it out.

Let me know if it works for you or if you experience any errors.

Jonas (636.8 KB)

Hello Jonas,
Thank you for your reply!

Unfortunately what I need is to be able to write an IDF file out of this workflow, so using the´HB_RunEnergySimulation component is essential. I will apply your advice on the internalization of data nonetheless :slightly_smiling_face:

Hi again,

as I said, the HB_ExportToOpenStudio component will replace the HB_RunEnergySimulation earlier or later, for me it is actually already gone. The ExportToOpenStudio component has the same outputs which includes the IDF file, see below:

Thanks for the clarification, totally missed that output!

@Jonas ,
Thanks for answering this one correctly for @lenawut and I can confirm that the recommended workflow is to use the OpenStudio component since it has many more capabilities than the IDF writer. However, I know a number of people still use the older component and, while we don’t recommend using it, we still haven’t moved it into WIP and so you should expect it to run free of bugs. I just fixed the bug here and the IDF component will work correctly now for this case:

Thanks again to both of you.

Hello Chris, I am using the component export to Open Studio and I am still getting the same error ‘hb_airDetail’ object has no attribute ‘heatRecovery’ when I use Ideal loads for HVAC. However I have a previous file that works, What can I do to solve this ?
Thank you so much

Kind Regards,


I have the exact same problem now. Did you find a way to solve it?


I am now also randomly getting the same error about the air details. I would gladly switch over to the export to openstudio component but the problem seems that if you connect anything to the additional string input, this component doesn’t add it to the IDF. For instance, in my work I often change the reflectance values of HB context elements and if I don’t use the E+ component, I get a message saying openstudio can’t find the surfaces or doesn’t recognize the names (despite them being fed as context and the names coming from the HBobject get name component).
So currently, I’m not sure how to get around this…
Any insight?

Thanks a lot