Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ __Features__

__Bugfixes__
- **Breaking change**: Prevent possible error if HPWH in confined space with very small containment volume; minimum allowed volume now 32 ft3.
- **Breaking change**: HPWH `EnergyFactor`/`UniformEnergyFactor` must now be >= 2 (previously > 1).
- **Breaking change**: HPWH `EnergyFactor`/`UniformEnergyFactor` must now be >= 1.45 (previously > 1).
- Fixes ERV supply outlet enthalpy calculation used to calculate latent effectiveness.
- Removes duplicated ceiling/floor internal mass surfaces between conditioned stories.

Expand Down
8 changes: 4 additions & 4 deletions HPXMLtoOpenStudio/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>hpxml_to_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>33bfdc9e-84c0-409d-bc66-ca2781e23cf0</version_id>
<version_modified>2026-07-15T22:44:01Z</version_modified>
<version_id>b5a80774-bddd-4161-b29c-68607900018d</version_id>
<version_modified>2026-07-16T19:57:35Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLToOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -421,7 +421,7 @@
<filename>hpxml_schematron/EPvalidator.sch</filename>
<filetype>sch</filetype>
<usage_type>resource</usage_type>
<checksum>423C115C</checksum>
<checksum>277C72EB</checksum>
</file>
<file>
<filename>hpxml_schematron/iso-schematron.xsd</filename>
Expand Down Expand Up @@ -829,7 +829,7 @@
<filename>test_validation.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>F7D696DC</checksum>
<checksum>9ABBBD64</checksum>
</file>
<file>
<filename>test_vehicle.rb</filename>
Expand Down
5 changes: 3 additions & 2 deletions HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.sch
Original file line number Diff line number Diff line change
Expand Up @@ -2139,8 +2139,9 @@
<sch:assert role='ERROR' test='count(h:FractionDHWLoadServed) = 1'>Expected FractionDHWLoadServed</sch:assert>
<sch:assert role='ERROR' test='number(h:HeatingCapacity) &gt; 0 or not(h:HeatingCapacity)'>Expected HeatingCapacity to be greater than 0.</sch:assert>
<sch:assert role='ERROR' test='count(h:UniformEnergyFactor) + count(h:EnergyFactor) = 1'>Expected UniformEnergyFactor or EnergyFactor but not both</sch:assert>
<sch:assert role='ERROR' test='number(h:UniformEnergyFactor) &gt;= 2 or not(h:UniformEnergyFactor)'>Expected UniformEnergyFactor to be greater than or equal to 2</sch:assert>
<sch:assert role='ERROR' test='number(h:EnergyFactor) &gt;= 2 or not(h:EnergyFactor)'>Expected EnergyFactor to be greater than or equal to 2</sch:assert>
<!-- Note: We need to allow modeling HPWHs w/ EF/UEF around 1.5 for ENERGY STAR and DOE Efficient New Home ERI targets -->
<sch:assert role='ERROR' test='number(h:UniformEnergyFactor) &gt;= 1.45 or not(h:UniformEnergyFactor)'>Expected UniformEnergyFactor to be greater than or equal to 1.45</sch:assert>
<sch:assert role='ERROR' test='number(h:EnergyFactor) &gt;= 1.45 or not(h:EnergyFactor)'>Expected EnergyFactor to be greater than or equal to 1.45</sch:assert>
<sch:assert role='ERROR' test='h:HPWHOperatingMode[text()="hybrid/auto" or text()="heat pump only"] or not(h:HPWHOperatingMode)'>Expected HPWHOperatingMode to be 'hybrid/auto' or 'heat pump only'</sch:assert>
<sch:assert role='ERROR' test='count(h:extension/h:HPWHInConfinedSpaceWithoutMitigation) &lt;= 1'>Expected at most one extension/HPWHInConfinedSpaceWithoutMitigation</sch:assert>
<sch:assert role='ERROR' test='h:extension/h:HPWHInConfinedSpaceWithoutMitigation[text()="true" or text()="false"] or not(h:extension/h:HPWHInConfinedSpaceWithoutMitigation)'>Expected extension/HPWHInConfinedSpaceWithoutMitigation to be 'true' or 'false'</sch:assert>
Expand Down
4 changes: 2 additions & 2 deletions HPXMLtoOpenStudio/tests/test_validation.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def test_schema_schematron_error_messages
'dehumidifier-fraction-served' => ['Expected sum(FractionDehumidificationLoadServed) to be less than or equal to 1 [context: /HPXML/Building/BuildingDetails, id: "MyBuilding"]'],
'dhw-frac-load-served' => ['Expected sum(FractionDHWLoadServed) to be 1 [context: /HPXML/Building/BuildingDetails, id: "MyBuilding"]'],
'dhw-invalid-ef-tank' => ['Expected EnergyFactor to be less than 1 [context: /HPXML/Building/BuildingDetails/Systems/WaterHeating/WaterHeatingSystem[WaterHeaterType="storage water heater"], id: "WaterHeatingSystem1"]'],
'dhw-invalid-uef-tank-heat-pump' => ['Expected UniformEnergyFactor to be greater than or equal to 2 [context: /HPXML/Building/BuildingDetails/Systems/WaterHeating/WaterHeatingSystem[WaterHeaterType="heat pump water heater"], id: "WaterHeatingSystem1"]'],
'dhw-invalid-uef-tank-heat-pump' => ['Expected UniformEnergyFactor to be greater than or equal to 1.45 [context: /HPXML/Building/BuildingDetails/Systems/WaterHeating/WaterHeatingSystem[WaterHeaterType="heat pump water heater"], id: "WaterHeatingSystem1"]'],
'dishwasher-location' => ['A location is specified as "garage" but no surfaces were found adjacent to this space type.'],
'duct-leakage-cfm25' => ["The value '-2.0' is less than the minimum value allowed",
"The value '-3.0' is less than the minimum value allowed"],
Expand Down Expand Up @@ -326,7 +326,7 @@ def test_schema_schematron_error_messages
hpxml_bldg.water_heating_systems[0].recovery_efficiency = nil
when 'dhw-invalid-uef-tank-heat-pump'
hpxml, hpxml_bldg = _create_hpxml('base-dhw-tank-heat-pump.xml')
hpxml_bldg.water_heating_systems[0].uniform_energy_factor = 1.5
hpxml_bldg.water_heating_systems[0].uniform_energy_factor = 1.4
Comment thread
shorowit marked this conversation as resolved.
when 'dishwasher-location'
hpxml, hpxml_bldg = _create_hpxml('base.xml')
hpxml_bldg.dishwashers[0].location = HPXML::LocationGarage
Expand Down
2 changes: 1 addition & 1 deletion docs/source/workflow_inputs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4241,7 +4241,7 @@ Each heat pump water heater is entered as a ``/HPXML/Building/BuildingDetails/Sy
``FractionDHWLoadServed`` double frac >= 0, <= 1 [#]_ Yes Fraction of hot water load served [#]_
``HeatingCapacity`` double Btu/hr > 0 No See [#]_ Heating input capacity
``BackupHeatingCapacity`` double Btu/hr >= 0 No 15355 (4.5 kW) Heating capacity of the electric resistance backup
``UniformEnergyFactor`` or ``EnergyFactor`` double frac >= 2, <= 5 Yes EnergyGuide label rated efficiency
``UniformEnergyFactor`` or ``EnergyFactor`` double frac >= 1.45, <= 5 Yes EnergyGuide label rated efficiency
``HPWHDucting/ExhaustAirTermination`` string See [#]_ No <none> The location where HPWH exhaust air is ducted to
``HPWHOperatingMode`` string See [#]_ No hybrid/auto Operating mode [#]_
``UsageBin`` or ``FirstHourRating`` string or double str or gal/hr See [#]_ or > 0 No See [#]_ EnergyGuide label usage bin/first hour rating
Expand Down