diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml
index 5431067704..904671ef23 100644
--- a/HPXMLtoOpenStudio/measure.xml
+++ b/HPXMLtoOpenStudio/measure.xml
@@ -3,8 +3,8 @@
3.1
hpxm_lto_openstudio
b1543b30-9465-45ff-ba04-1d1f85e763bc
- 15c39750-5947-45ef-887d-47606442ed57
- 2026-04-02T19:46:00Z
+ bf9d7070-c3d0-4251-ad9d-e45da9629d51
+ 2026-04-09T03:47:56Z
D8922A73
HPXMLtoOpenStudio
HPXML to OpenStudio Translator
@@ -499,7 +499,7 @@
output.rb
rb
resource
- 7F8E008D
+ 2712B090
psychrometrics.rb
diff --git a/HPXMLtoOpenStudio/resources/output.rb b/HPXMLtoOpenStudio/resources/output.rb
index f79913da87..b3fa98fa76 100644
--- a/HPXMLtoOpenStudio/resources/output.rb
+++ b/HPXMLtoOpenStudio/resources/output.rb
@@ -128,6 +128,9 @@ def self.apply_unmet_hours_ems_program(model, hpxml_osm_map, hpxml_header)
htg_avail_sensor = model.getEnergyManagementSystemSensors.find { |s| s.additionalProperties.getFeatureAsString('ObjectType').to_s == Constants::ObjectTypeHeatingAvailabilitySensor }
clg_avail_sensor = model.getEnergyManagementSystemSensors.find { |s| s.additionalProperties.getFeatureAsString('ObjectType').to_s == Constants::ObjectTypeCoolingAvailabilitySensor }
+ htg_tol = model.getOutputControlReportingTolerances.toleranceforTimeHeatingSetpointNotMet
+ clg_tol = model.getOutputControlReportingTolerances.toleranceforTimeCoolingSetpointNotMet
+
# EMS program
clg_hrs = 'clg_unmet_hours'
htg_hrs = 'htg_unmet_hours'
@@ -151,7 +154,7 @@ def self.apply_unmet_hours_ems_program(model, hpxml_osm_map, hpxml_header)
line += " && (#{htg_avail_sensor.name} == 1)" if not htg_avail_sensor.nil?
program.addLine(line)
if zone_air_temp_sensors.keys.include? unit # on off deadband
- program.addLine(" If #{zone_air_temp_sensors[unit].name} < (#{htg_spt_sensors[unit].name} - #{UnitConversions.convert(onoff_deadbands, 'deltaF', 'deltaC')})")
+ program.addLine(" If #{zone_air_temp_sensors[unit].name} < (#{htg_spt_sensors[unit].name} - #{htg_tol})")
program.addLine(" Set #{unit_htg_hrs} = #{unit_htg_hrs} + #{htg_sensors[unit].name}")
program.addLine(' EndIf')
else
@@ -173,7 +176,7 @@ def self.apply_unmet_hours_ems_program(model, hpxml_osm_map, hpxml_header)
line += " && (#{clg_avail_sensor.name} == 1)" if not clg_avail_sensor.nil?
program.addLine(line)
if zone_air_temp_sensors.keys.include? unit # on off deadband
- program.addLine(" If #{zone_air_temp_sensors[unit].name} > (#{clg_spt_sensors[unit].name} + #{UnitConversions.convert(onoff_deadbands, 'deltaF', 'deltaC')})")
+ program.addLine(" If #{zone_air_temp_sensors[unit].name} > (#{clg_spt_sensors[unit].name} + #{clg_tol})")
program.addLine(" Set #{unit_clg_hrs} = #{unit_clg_hrs} + #{clg_sensors[unit].name}")
program.addLine(' EndIf')
else
diff --git a/workflow/tests/base_results/results_simulations_misc.csv b/workflow/tests/base_results/results_simulations_misc.csv
index ad6f534372..3526934def 100644
--- a/workflow/tests/base_results/results_simulations_misc.csv
+++ b/workflow/tests/base_results/results_simulations_misc.csv
@@ -215,11 +215,11 @@ base-hvac-air-to-air-heat-pump-1-speed-detailed-performance.xml,0.0,0.0,0.0,1286
base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,9035.1,4233.1,9035.1,9035.1,4233.1,9035.1,31072.0,24785.0,0.0
base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml,0.0,0.0,0.0,1286.4,890.5,11468.6,3942.3,9046.3,1887.6,9046.3,9046.3,1887.6,9046.3,31055.0,0.0,0.0
base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml,148.0,0.0,0.0,1286.4,890.5,11468.6,3942.3,15409.2,4217.6,15409.2,15409.2,4217.6,15409.2,51750.0,24621.0,0.0
-base-hvac-air-to-air-heat-pump-1-speed-research-features.xml,250.567,0.0,0.0,1286.4,890.5,12241.8,4208.1,20808.8,9769.5,20808.8,20808.8,9769.5,20808.8,63178.0,33162.0,0.0
+base-hvac-air-to-air-heat-pump-1-speed-research-features.xml,412.433,0.0,0.0,1286.4,890.5,12241.8,4208.1,20808.8,9769.5,20808.8,20808.8,9769.5,20808.8,63178.0,33162.0,0.0
base-hvac-air-to-air-heat-pump-1-speed-seer-hspf.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,9099.4,4416.8,9099.4,9099.4,4416.8,9099.4,31054.0,24785.0,0.0
base-hvac-air-to-air-heat-pump-1-speed.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,9063.9,4233.1,9063.9,9063.9,4233.1,9063.9,31054.0,24785.0,0.0
base-hvac-air-to-air-heat-pump-2-speed-detailed-performance.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,8970.5,4139.6,8970.5,8970.5,4139.6,8970.5,31065.0,26551.0,0.0
-base-hvac-air-to-air-heat-pump-2-speed-research-features.xml,113.483,0.0,0.0,1286.4,890.5,12241.8,4208.1,20428.5,8271.9,20428.5,20428.5,8271.9,20428.5,61169.0,24149.0,0.0
+base-hvac-air-to-air-heat-pump-2-speed-research-features.xml,371.3,0.0,0.0,1286.4,890.5,12241.8,4208.1,20428.5,8271.9,20428.5,20428.5,8271.9,20428.5,61169.0,24149.0,0.0
base-hvac-air-to-air-heat-pump-2-speed.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,9006.7,3885.5,9006.7,9006.7,3885.5,9006.7,31037.0,26784.0,0.0
base-hvac-air-to-air-heat-pump-var-speed-autosize-maxload.xml,0.0,0.0,0.0,1286.4,890.5,11468.5,3942.3,6255.1,3407.2,6255.1,6255.1,3407.2,6255.1,29024.0,24805.0,0.0
base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml,3.0,460.0,0.0,1286.4,890.5,11468.6,3942.3,3285.6,3239.0,3285.6,3285.6,3239.0,3285.6,26537.0,18943.0,0.0