Skip to content

Change HPWH HeatingCapacity to be input capacity#2231

Open
shorowit wants to merge 3 commits into
masterfrom
hpwh_input_capacity
Open

Change HPWH HeatingCapacity to be input capacity#2231
shorowit wants to merge 3 commits into
masterfrom
hpwh_input_capacity

Conversation

@shorowit

@shorowit shorowit commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Pull Request Description

For heat pump water heaters, HeatingCapacity is now input rather than output capacity, similar to other water heater types. This information is also more readily available on product listings (example).

Checklist

Not all may apply:

  • Schematron validator (EPvalidator.sch) has been updated
  • Sample files have been added/updated (openstudio tasks.rb update_hpxmls)
  • Tests have been added/updated (e.g., HPXMLtoOpenStudio/tests/test*.rb and/or workflow/tests/test*.rb)
  • Documentation has been updated
  • Changelog has been updated
  • openstudio tasks.rb update_measures has been run
  • No unexpected changes to simulation results of sample files

Comment on lines -7105 to 7106
watts += [UnitConversions.convert(Waterheater.get_heating_input_capacity(water_heating_system.heating_capacity, water_heating_system.additional_properties.cop), 'btu/hr', 'w'),
watts += [UnitConversions.convert(water_heating_system.heating_capacity, 'btu/hr', 'w'),
UnitConversions.convert(water_heating_system.backup_heating_capacity, 'btu/hr', 'w')].max

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI @joseph-robertson, this changes the electric panel defaulting code for a HPWH (and removes the Waterheater.get_heating_input_capacity method). I assume that's not a problem but just wanted to point it out.

@shorowit shorowit changed the title HPWH HeatingCapacity Change HPWH HeatingCapacity to be input capacity Jun 29, 2026
base-dhw-tank-gas-outside.xml,1814.47,144.0,1093.67,0.0,1237.67,144.0,432.8,576.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
base-dhw-tank-gas.xml,1809.49,144.0,1100.83,0.0,1244.83,144.0,420.66,564.66,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
base-dhw-tank-heat-pump-capacities.xml,1807.85,144.0,1185.24,0.0,1329.24,144.0,334.61,478.61,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
base-dhw-tank-heat-pump-capacities.xml,1807.17,144.0,1188.62,0.0,1332.62,144.0,330.55,474.55,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the only file that really changed. Now the 3000 Btu/hr (879 W) heating capacity in the HPXML file is (correctly) treated as an input capacity rather than an output capacity.

Some other files show very minor changes due to rounding.


if water_heating_system.heating_capacity.nil?
water_heating_system.heating_capacity = (UnitConversions.convert(0.5, 'kW', 'Btu/hr') * water_heating_system.additional_properties.cop).round
water_heating_system.heating_capacity = UnitConversions.convert(0.5, 'kW', 'Btu/hr').round

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No longer include the COP in the defaulting. Docs updated accordingly.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Heat Pump Water Heater (HPWH) interpretation of HeatingCapacity so it is treated as input capacity (instead of output), aligning HPWH behavior with other water heater types and updating tests/docs/baselines accordingly.

Changes:

  • Reinterpret HPWH HeatingCapacity as input capacity and update translation logic accordingly.
  • Update unit tests and workflow baseline result CSVs to reflect the new interpretation.
  • Update documentation and changelog to record the breaking change.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
workflow/tests/base_results/results_simulations_misc.csv Updates expected simulation outputs for impacted HPWH cases.
workflow/tests/base_results/results_simulations_loads.csv Updates expected load outputs for impacted HPWH cases.
workflow/tests/base_results/results_simulations_energy.csv Updates expected energy outputs for impacted HPWH cases.
workflow/tests/base_results/results_simulations_bills.csv Updates expected bill outputs for impacted HPWH cases.
HPXMLtoOpenStudio/tests/test_water_heater.rb Updates HPWH capacity expectation to convert from input capacity to output using COP.
HPXMLtoOpenStudio/tests/test_electric_panel.rb Updates expected service feeder power for HPWH input-capacity sizing.
HPXMLtoOpenStudio/tests/test_defaults.rb Updates default HPWH HeatingCapacity expectation to input capacity (0.5 kW equivalent).
HPXMLtoOpenStudio/resources/waterheater.rb Converts HPWH input capacity to coil output capacity using COP; removes now-unused helper.
HPXMLtoOpenStudio/resources/hvac.rb Clarifies method documentation wording/units.
HPXMLtoOpenStudio/resources/defaults.rb Updates default HPWH HeatingCapacity to be input capacity; updates service feeder sizing logic for HPWH.
HPXMLtoOpenStudio/measure.xml Bumps measure metadata and checksums for updated resources/tests.
docs/source/workflow_inputs.rst Updates documentation to state HPWH HeatingCapacity is input capacity and adjusts default description.
Changelog.md Records breaking change for HPWH HeatingCapacity semantics.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread HPXMLtoOpenStudio/resources/waterheater.rb
@shorowit shorowit requested a review from jmaguire1 June 29, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

2 participants