Skip to content

Only accept matched SEER/EER pairs - #2271

Merged
shorowit merged 2 commits into
NatLabRockies:masterfrom
pivotal-energy-solutions:require-matched-seer-eer-pairs
Sep 28, 2026
Merged

shorowit merged 2 commits into
NatLabRockies:masterfrom
pivotal-energy-solutions:require-matched-seer-eer-pairs

Conversation

@rh0dium

@rh0dium rh0dium commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Closes #2270.

Pull Request Description

EPvalidator checks EER < SEER and EER2 ≤ SEER2, but a mixed pair — SEER with EER2, or SEER2 with EER — is compared by neither, so an impossible combination validates. On a variable-speed system the SEER2/EER2 ratio can then fall below the start of the Addendum 82 table; the extrapolated minimum-speed capacity comes out above nominal and EnergyPlus terminates (SizeDXCoil: … Speed 1 Rated Air Flow Rate must be less than or equal to Speed 2 …).

Cooling efficiencies must now be SEER2 with EER2, or SEER with EER, for central ACs, mini-split ACs, and air-to-air and mini-split heat pumps. With that, the existing comparisons cover every input. Per review, air-to-air and mini-split heat pumps must also pair HSPF with SEER, and HSPF2 with SEER2.

base-hvac-mini-split-heat-pump-ductless.xml with SEER 14.0 and EER2 21.27 now fails validation:

Error: Expected SEER to be paired with EER, or SEER2 with EER2. [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACPlant/HeatPump[HeatPumpType="mini-split"], id: "HeatPump1"]

No sample files are affected — none of the HPXML files in the repo mixes SEER/EER or SEER/HSPF generations, and BuildResidentialHPXML only ever writes one cooling efficiency per system.

The same change for OpenStudio-ERI's 301validator is in NatLabRockies/OpenStudio-ERI#820.

Checklist

Not all may apply:

  • Schematron validator (EPvalidator.sch) has been updated
  • Sample files have been added/updated (openstudio tasks.rb update_hpxmls) — not needed; no sample file mixes generations
  • Tests have been added/updated — test_validation.rb: SEER + EER2 on an air-to-air heat pump, SEER2 + EER on a central AC, SEER + HSPF2 on an air-to-air heat pump, SEER2 + HSPF on a mini-split heat pump. The validation tests pass with OpenStudio 3.11.0
  • Documentation has been updated — not needed; EER2 ≤ SEER2 already implies the pairing
  • Changelog has been updated
  • openstudio tasks.rb update_measures has been run — equivalent for this change: openstudio measure -u HPXMLtoOpenStudio (checksums for the changed files), and rubocop reports no offenses in the changed test file
  • No unexpected changes to simulation results of sample files — validation only; no sample file inputs change

🤖 Generated with Claude Code

EPvalidator checked EER < SEER and EER2 <= SEER2, but a mixed pair (SEER
with EER2, or SEER2 with EER) was compared by neither check, so an impossible
combination validated. On a variable-speed system the SEER2/EER2 ratio can then
fall below the start of the Addendum 82 table, the extrapolated minimum-speed
capacity comes out above nominal, and EnergyPlus terminates.

Cooling efficiencies must now be SEER2 with EER2, or SEER with EER, for central
ACs, mini-split ACs, and air-to-air and mini-split heat pumps. The existing
comparisons then cover every input.

Closes NatLabRockies#2270

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@shorowit shorowit 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.

@rh0dium Thanks for the contribution! I agree that these are good checks to include. Just a couple comments below and then this can merge in.

Comment thread docs/source/workflow_inputs.rst Outdated
Comment thread HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.sch
Comment thread HPXMLtoOpenStudio/tests/test_validation.rb
Per review: heat pumps must also pair HSPF with SEER and HSPF2 with SEER2,
for air-to-air and mini-split heat pumps. The existing heat pump SEER/EER2
test case now also uses HSPF so it reports only its own error.

The workflow_inputs.rst changes are reverted; EER2 <= SEER2 already implies
the pairing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@shorowit shorowit 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.

LGTM. Will merge when the CI comes back clean.

@shorowit
shorowit merged commit 7dde0e1 into NatLabRockies:master Sep 28, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Only accept matched SEER/EER pairs (SEER2 with EER2, or SEER with EER)

2 participants