HB SHW System / HB ServiceHotWater Small Tank Size

Hello all,

I am creating a Honeybee model for a commercial project but I’m having trouble getting accurate hot water usage estimates. Using the HB SHW System and assigning hot water loads to two restrooms and a utility closet with the HB ServiceHotWater component is yielding a water heater with a very small (0.0016 m³) tank within the EnergyPlus simulation (I can see this in the .idf file).

From the warnings in the HB ModelToOSM report I can see this results in inaccurate hot water calculations and presumably the EUI related to hot water is inaccurate. Here are the main warnings:

Warning: CalcEquipmentFlowRates: “SERVICEHOTWATER_FF9DE2C5…RESTROOMS_2_B271762E” - Hot water temperature is less than the cold water temperature by (8.82 C)
Environment=RUN PERIOD 1, at Simulation time=01/01 00:00 - 01:00
…hot water temperature = 2.46 C
…cold water temperature = 11.28 C
…Hot water temperature should be greater than or equal to the cold water temperature. Verify temperature setpoints and schedules.

Warning: WaterHeater:Mixed = SHW WATERHEATER: Heater is cycling on and off more than once per second.
Try increasing Deadband Temperature Difference or Tank Volume
Environment=RUN PERIOD 1, at Simulation time=01/01 00:00 - 01:00

I’m not sure if this is a bug in Honeybee or if my inputs are wrong somehow, but either way I’m looking for any tips on how to get an accurate water heater tank size in the EnergyPlus sim since it cannot be manually specified with Honeybee components.

I appreciate the help

2 Likes

I have this problem very frequently and the only solution I’ve found is fixing tank sizes via OpenStudio GUI, but I then lose the workflow in Honeybee since I have to simulate via OpenStudio.

To debug this, I tried with a small model and got this error right away, with both a Gas Water Heater and an Electric Water Heater:

Thermal Zoning.gh (135.2 KB)

@chris any idea what can be happening at Honeybee level?

Ah, thank you for bringing this to my attention, @mateobarbero and @loganmacb .

This was a bug that was introduced a few months ago when we switched the plugin from using a Ruby translator to OSM over to a Python one. It turns out that, when I translated the Ruby to Python, I forgot to convert m3/s of hot water flow to m3/hour when sizing the tank. So the tank is sized 3600 times smaller than what it is supposed to be. I just fixed this here:

… and you can now get the fix via the LB Versioner component.

After that, you get a more reasonable tank size, which is designed to meet peak demand across the rooms for a full hour. And I see that the hot water energy of your sample more-than-doubles, indicating that we are correctly accounting for losses from the tank now.

However, for your very small sample .gh file, this correctly-autosized tank is still just 7 liters, which I realize is smaller than any real water heater on the market. So I also added some logic to make the tank at least 100 liters in the case that the total peak hot water demand summed across the input rooms is just really small:

That fix should be available via the LB Versioner in a few more minutes.

1 Like