Skip to content

Conversation

@joseph-robertson
Copy link
Collaborator

Pull Request Description

Closes #2149.

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

@joseph-robertson joseph-robertson changed the title Address crankcase/defrost/pan energy outside of an HVAC season or heating unavailable period Address energy outside of an HVAC season or during unavailable period Jan 22, 2026
Comment on lines 4715 to 4716
# Don't run crankcase heater during HVAC unavailable period either
temp_criteria += " && (#{hvac_avail_sensor.name} == 1)"
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Should this only run when (A) AC and cooling available, and (B) HP and either heating/cooling available?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

name: "#{clg_coil.name} crankcase program"
)
program.addLine("Set T_out = #{tout_db_sensor.name}")
temp_criteria = "If (T_out < #{max_oat_crankcase})"
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Crankcase heater only operates when the compressor is not running -- how do we incorporate that here?

Copy link
Contributor

Choose a reason for hiding this comment

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

1 minus the coil runtime fraction?

Copy link
Contributor

Choose a reason for hiding this comment

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

e.g., crankcase_power * (1 - coil_rtf)

You don't incorporate it in the criteria, you incorporate it in the energy use calculation.

base-hvac-air-to-air-heat-pump-var-speed-pan-heater-none.xml,52.657,52.657,52.657,52.657,0.0,0.0,0.0,0.0,0.0,0.0,13.275,1.067,2.3,0.011,3.764,0.458,10.77,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.074,0.0,0.0,0.284,0.347,1.436,1.529,0.0,2.116,8.384,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,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,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,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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
base-hvac-air-to-air-heat-pump-var-speed-research-features.xml,53.164,53.164,53.164,53.164,0.0,0.0,0.0,0.0,0.0,0.0,13.643,1.36,2.14,0.017,3.764,0.46,10.771,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.284,0.347,1.436,1.529,0.0,2.116,8.384,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,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,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,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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
base-hvac-air-to-air-heat-pump-var-speed.xml,53.503,53.503,53.503,53.503,0.0,0.0,0.0,0.0,0.0,0.0,14.121,1.067,2.3,0.011,3.764,0.458,10.77,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.074,0.0,0.0,0.284,0.347,1.436,1.529,0.0,2.116,8.384,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,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,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,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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
base-hvac-air-to-air-heat-pump-2-speed.xml,52.895,52.895,52.895,52.895,0.0,0.0,0.0,0.0,0.0,0.0,11.775,1.245,3.477,0.071,4.057,0.489,10.77,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.074,0.0,0.0,0.284,0.347,1.436,1.529,0.0,2.116,8.384,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,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,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,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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'm struggling to understand why the new crankcase EMS program shows agreement for 1-speed ASHP, but not multispeed ASHP. See the following, where the original crankcase output variable is reported vs the EMS power * (1 - RTF) calculation. Is there something other than RTF that E+ uses for determining whether the compressor is running or not?

Image

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This definitely looks related: NatLabRockies/EnergyPlus#10052

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The above issue is somewhat related, but not the cause of the discrepancy. This commit should bring E+ crankcase and EMS crankcase into alignment: ecdc565

@shorowit shorowit moved this from Triage to In progress in OpenStudio-HPXML Feb 3, 2026
@juice928
Copy link

juice928 commented Feb 3, 2026

👋 Hi, I'm an automated AI code review bot. I ran some checks on this PR and found 1 point that might be worth attention (could be false positives, please use your judgment):

  1. Ensure crankcase heater power is correctly scaled for multi-unit buildings
    • Location: HPXMLtoOpenStudio/resources/hvac.rb:L5175-L5196
    • Impact: For buildings using unit multipliers, the energy results might be underestimated as the EMS actuator currently uses single-unit power levels.
    • Suggestion: Consider restoring the multiplication logic for crankcase_heater_watts by the unit_multiplier within the apply_unit_multiplier method.

If you find these suggestions disruptive, you can reply "stop" , and I'll automatically skip this repository in the future.

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.

Address energy outside of an HVAC season or during unavailable period

4 participants