Customized bldgProgram & zoneProgram lists

energyplus
hbzones
openstudio
energy
#1

Hi folks,

I’m working my way through adding some custom building and zone programs beyond the options provided in Honeybee. I’ve done so with reasonable success, I’m just encountering one last issue I’d like to ask for help with.

I’ve edited the Honeybee_honeybee and Honeybee_ListZonePrograms components as well as the OpenStudio_Standards.json, and OpenStudioMasterTemplate.idf

All seems to be going well until I use theRunEnergySimulation to write the .idf file. I get the following error message:

  1. Solution exception:‘EPZone’ object has no attribute ‘isSchedulesAssigned’

I find isSchedulesAssigned in Honeybee_Honeybee after the schedules are assigned via calling the corresponding variables from the .JSON file (around line 5000). My .JSON file doesn’t seem to have any errors, so I’m curious as to what’s happening. Any ideas on how I could fix this?

Many thanks,
M’Beth

#2

@schoenfeld.mbeth ,

Honeybee Legacy does not support the creation of custom building program objects and the route you are using to add them here is prone to errors like the one you are experiencing. While we might be able to figure out what is wrong with your specific case, it is likely going to be difficult to ensure that it works into the future. The best I can offer for honeybee legacy is to add your custom schedules to the userCustomLibrary.idf file in the ladybug default folder and just assign those schedules and loads to Honeybee zones with the two components that do so. We will have much more robust workflows for creating custom building programs with Honeybee[+] and, if you do the work now of assembling the schedules and loads that you want for different programs into the userCustomLibrary.idf, it will be possible to convert them to a much more maintainable format when we have the building programs objects in Honeybee[+] fully developed.

#3

Hi Chris,

Thanks for the advice, it works decently well. It would be much nicer to be able to customize the program list, but for now I entered the info in panels, and then assign it using the setEPZoneLoads etc. components. If anyone else is thinking about doing this, you can clean up the code by just clustering that part of your program.

Cheers,
M’Beth