From f43e85faf8c3f44a0721e32ddd93b412e42dc49a Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 27 Oct 2023 14:19:32 -0700 Subject: [PATCH 1/5] Add optional blower fan efficiency args to BuildResHPXML. --- BuildResidentialHPXML/measure.rb | 39 +++++++++++++++++++++++++++++++ BuildResidentialHPXML/measure.xml | 35 +++++++++++++++++++++++---- 2 files changed, 70 insertions(+), 4 deletions(-) diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 28de62c1f7..664eb728be 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1086,6 +1086,12 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('Frac') args << arg + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_fan_watts_per_cfm', false) + arg.setDisplayName('Heating System: Blower Fan Efficiency') + arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeFurnace}. If not provided, the OS-HPXML default is used.") + arg.setUnits('W/CFM') + args << arg + arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_type', cooling_system_type_choices, true) arg.setDisplayName('Cooling System: Type') arg.setDescription("The type of cooling system. Use 'none' if there is no cooling system or if there is a heat pump serving a cooling load.") @@ -1152,6 +1158,12 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('W') args << arg + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_fan_watts_per_cfm', false) + arg.setDisplayName('Cooling System: Blower Fan Efficiency') + arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, the OS-HPXML default is used.") + arg.setUnits('W/CFM') + args << arg + arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_integrated_heating_system_fuel', heating_system_fuel_choices, false) arg.setDisplayName('Cooling System: Integrated Heating System Fuel Type') arg.setDescription("The fuel type of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.") @@ -1347,6 +1359,12 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('W') args << arg + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_fan_watts_per_cfm', false) + arg.setDisplayName('Heat Pump: Blower Fan Efficiency') + arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, the OS-HPXML default is used.") + arg.setUnits('W/CFM') + args << arg + heating_system_2_type_choices = OpenStudio::StringVector.new heating_system_2_type_choices << 'none' heating_system_2_type_choices << HPXML::HVACTypeFurnace @@ -4680,6 +4698,12 @@ def self.set_heating_systems(hpxml, args) end end + if args[:heating_system_fan_watts_per_cfm].is_initialized + if [HPXML::HVACTypeFurnace].include?(heating_system_type) + heating_system_fan_watts_per_cfm = args[:heating_system_fan_watts_per_cfm].get + end + end + fraction_heat_load_served = args[:heating_system_fraction_heat_load_served] if heating_system_type.include?('Shared') @@ -4702,6 +4726,7 @@ def self.set_heating_systems(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, pilot_light: pilot_light, pilot_light_btuh: pilot_light_btuh, + fan_watts_per_cfm: heating_system_fan_watts_per_cfm, is_shared_system: is_shared_system, number_of_units_served: number_of_units_served, primary_system: true) @@ -4758,6 +4783,12 @@ def self.set_cooling_systems(hpxml, args) end end + if args[:cooling_system_fan_watts_per_cfm].is_initialized + if [HPXML::HVACTypeCentralAirConditioner, HPXML::HVACTypeMiniSplitAirConditioner].include?(cooling_system_type) + cooling_system_fan_watts_per_cfm = args[:cooling_system_fan_watts_per_cfm].get + end + end + if [HPXML::HVACTypePTAC, HPXML::HVACTypeRoomAirConditioner].include?(cooling_system_type) if args[:cooling_system_integrated_heating_system_fuel].is_initialized integrated_heating_system_fuel = args[:cooling_system_integrated_heating_system_fuel].get @@ -4790,6 +4821,7 @@ def self.set_cooling_systems(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, charge_defect_ratio: charge_defect_ratio, crankcase_heater_watts: cooling_system_crankcase_heater_watts, + fan_watts_per_cfm: cooling_system_fan_watts_per_cfm, primary_system: true, integrated_heating_system_fuel: integrated_heating_system_fuel, integrated_heating_system_capacity: integrated_heating_system_capacity, @@ -4897,6 +4929,12 @@ def self.set_heat_pumps(hpxml, args) end end + if args[:heat_pump_fan_watts_per_cfm].is_initialized + if [HPXML::HVACTypeHeatPumpAirToAir, HPXML::HVACTypeHeatPumpMiniSplit, HPXML::HVACTypeHeatPumpGroundToAir].include?(heat_pump_type) + heat_pump_fan_watts_per_cfm = args[:heat_pump_fan_watts_per_cfm].get + end + end + fraction_heat_load_served = args[:heat_pump_fraction_heat_load_served] fraction_cool_load_served = args[:heat_pump_fraction_cool_load_served] @@ -4941,6 +4979,7 @@ def self.set_heat_pumps(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, charge_defect_ratio: charge_defect_ratio, crankcase_heater_watts: heat_pump_crankcase_heater_watts, + fan_watts_per_cfm: heat_pump_fan_watts_per_cfm, primary_heating_system: primary_heating_system, primary_cooling_system: primary_cooling_system) end diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index c22904a2b8..9629ed2e8a 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 93c1361d-ce33-4609-ba76-21245e0ee0d7 - 2023-10-23T16:23:38Z + 5179b5b5-ee87-4c7f-aa6d-72906271c623 + 2023-10-27T20:58:09Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -2196,6 +2196,15 @@ false false + + heating_system_fan_watts_per_cfm + Heating System: Blower Fan Efficiency + The blower fan efficiency at maximum fan speed. Applies only to Furnace. If not provided, the OS-HPXML default is used. + Double + W/CFM + false + false + cooling_system_type Cooling System: Type @@ -2363,6 +2372,15 @@ false false + + cooling_system_fan_watts_per_cfm + Cooling System: Blower Fan Efficiency + The blower fan efficiency at maximum fan speed. Applies only to central air conditioner and mini-split. If not provided, the OS-HPXML default is used. + Double + W/CFM + false + false + cooling_system_integrated_heating_system_fuel Cooling System: Integrated Heating System Fuel Type @@ -2771,6 +2789,15 @@ false false + + heat_pump_fan_watts_per_cfm + Heat Pump: Blower Fan Efficiency + The blower fan efficiency at maximum fan speed. Applies only to air-to-air, mini-split, and ground-to-air. If not provided, the OS-HPXML default is used. + Double + W/CFM + false + false + heating_system_2_type Heating System 2: Type @@ -6735,7 +6762,7 @@ README.md md readme - 02398DA0 + 53483EA0 README.md.erb @@ -6752,7 +6779,7 @@ measure.rb rb script - D0F900F0 + E7ED7CC0 geometry.rb From 5af4e6167bcffd5c40a2263af15c78057d04c851 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 27 Oct 2023 14:20:06 -0700 Subject: [PATCH 2/5] Replace tasks.rb mods with hpxml_inputs.json updates. --- tasks.rb | 6 +----- workflow/hpxml_inputs.json | 33 +++++++++++++++++++++++---------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/tasks.rb b/tasks.rb index 961d5657de..67245aba29 100644 --- a/tasks.rb +++ b/tasks.rb @@ -1338,11 +1338,7 @@ def apply_hpxml_modification(hpxml_file, hpxml) end end end - if hpxml_file.include? 'install-quality' - hpxml.hvac_systems.each do |hvac_system| - hvac_system.fan_watts_per_cfm = 0.365 - end - elsif ['base-hvac-setpoints-daily-setbacks.xml'].include? hpxml_file + if ['base-hvac-setpoints-daily-setbacks.xml'].include? hpxml_file hpxml.hvac_controls[0].heating_setback_temp = 66 hpxml.hvac_controls[0].heating_setback_hours_per_week = 7 * 7 hpxml.hvac_controls[0].heating_setback_start_hour = 23 # 11pm diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index abbb7af8b0..295ad0bbbf 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -2013,54 +2013,67 @@ "sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml": { "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, - "heat_pump_charge_defect_ratio": -0.25 + "heat_pump_charge_defect_ratio": -0.25, + "heat_pump_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml": { "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, - "heat_pump_charge_defect_ratio": -0.25 + "heat_pump_charge_defect_ratio": -0.25, + "heat_pump_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml": { "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, - "heat_pump_charge_defect_ratio": -0.25 + "heat_pump_charge_defect_ratio": -0.25, + "heat_pump_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml": { "parent_hpxml": "sample_files/base.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, - "cooling_system_charge_defect_ratio": -0.25 + "cooling_system_charge_defect_ratio": -0.25, + "heating_system_fan_watts_per_cfm": 0.365, + "cooling_system_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, - "cooling_system_charge_defect_ratio": -0.25 + "cooling_system_charge_defect_ratio": -0.25, + "heating_system_fan_watts_per_cfm": 0.365, + "cooling_system_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, - "cooling_system_charge_defect_ratio": -0.25 + "cooling_system_charge_defect_ratio": -0.25, + "heating_system_fan_watts_per_cfm": 0.365, + "cooling_system_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-only.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-only.xml", - "heating_system_airflow_defect_ratio": -0.25 + "heating_system_airflow_defect_ratio": -0.25, + "heating_system_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml": { "parent_hpxml": "sample_files/base-hvac-ground-to-air-heat-pump.xml", "heat_pump_airflow_defect_ratio": -0.25, - "heat_pump_charge_defect_ratio": -0.25 + "heat_pump_charge_defect_ratio": -0.25, + "heat_pump_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml": { "parent_hpxml": "sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml", "cooling_system_airflow_defect_ratio": -0.25, - "cooling_system_charge_defect_ratio": -0.25 + "cooling_system_charge_defect_ratio": -0.25, + "cooling_system_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml": { "parent_hpxml": "sample_files/base-hvac-mini-split-heat-pump-ducted.xml", "heat_pump_airflow_defect_ratio": -0.25, - "heat_pump_charge_defect_ratio": -0.25 + "heat_pump_charge_defect_ratio": -0.25, + "heat_pump_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml": { "parent_hpxml": "sample_files/base.xml", From 41c6cee061cc482df6e5b1e53b6dc269ae650ea2 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 27 Oct 2023 14:20:28 -0700 Subject: [PATCH 3/5] Regenerate the BuildResHPXML readme file. --- BuildResidentialHPXML/README.md | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index e49e94dcbd..6ae7d7d007 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -1733,6 +1733,19 @@ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / Design
+**Heating System: Blower Fan Efficiency** + +The blower fan efficiency at maximum fan speed. Applies only to Furnace. If not provided, the OS-HPXML default is used. + +- **Name:** ``heating_system_fan_watts_per_cfm`` +- **Type:** ``Double`` + +- **Units:** ``W/CFM`` + +- **Required:** ``false`` + +
+ **Cooling System: Type** The type of cooling system. Use 'none' if there is no cooling system or if there is a heat pump serving a cooling load. @@ -1872,6 +1885,19 @@ Cooling system crankcase heater power consumption in Watts. Applies only to cent
+**Cooling System: Blower Fan Efficiency** + +The blower fan efficiency at maximum fan speed. Applies only to central air conditioner and mini-split. If not provided, the OS-HPXML default is used. + +- **Name:** ``cooling_system_fan_watts_per_cfm`` +- **Type:** ``Double`` + +- **Units:** ``W/CFM`` + +- **Required:** ``false`` + +
+ **Cooling System: Integrated Heating System Fuel Type** The fuel type of the heating system integrated into cooling system. Only used for packaged terminal air conditioner and room air conditioner. @@ -2228,6 +2254,19 @@ Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-ai
+**Heat Pump: Blower Fan Efficiency** + +The blower fan efficiency at maximum fan speed. Applies only to air-to-air, mini-split, and ground-to-air. If not provided, the OS-HPXML default is used. + +- **Name:** ``heat_pump_fan_watts_per_cfm`` +- **Type:** ``Double`` + +- **Units:** ``W/CFM`` + +- **Required:** ``false`` + +
+ **Heating System 2: Type** The type of the second heating system. From c6f30fa3eeff3ab8100888584e8b721c4fe65023 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Fri, 27 Oct 2023 15:29:40 -0700 Subject: [PATCH 4/5] Collapse new args into a single one since only a single air distribution system is supported. --- BuildResidentialHPXML/README.md | 52 ++++++++----------------------- BuildResidentialHPXML/measure.rb | 51 ++++++++++++++---------------- BuildResidentialHPXML/measure.xml | 44 ++++++++------------------ workflow/hpxml_inputs.json | 23 ++++++-------- 4 files changed, 59 insertions(+), 111 deletions(-) diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index 6ae7d7d007..eb237ab833 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -1733,19 +1733,6 @@ The airflow defect ratio, defined as (InstalledAirflow - DesignAirflow) / Design
-**Heating System: Blower Fan Efficiency** - -The blower fan efficiency at maximum fan speed. Applies only to Furnace. If not provided, the OS-HPXML default is used. - -- **Name:** ``heating_system_fan_watts_per_cfm`` -- **Type:** ``Double`` - -- **Units:** ``W/CFM`` - -- **Required:** ``false`` - -
- **Cooling System: Type** The type of cooling system. Use 'none' if there is no cooling system or if there is a heat pump serving a cooling load. @@ -1885,19 +1872,6 @@ Cooling system crankcase heater power consumption in Watts. Applies only to cent
-**Cooling System: Blower Fan Efficiency** - -The blower fan efficiency at maximum fan speed. Applies only to central air conditioner and mini-split. If not provided, the OS-HPXML default is used. - -- **Name:** ``cooling_system_fan_watts_per_cfm`` -- **Type:** ``Double`` - -- **Units:** ``W/CFM`` - -- **Required:** ``false`` - -
- **Cooling System: Integrated Heating System Fuel Type** The fuel type of the heating system integrated into cooling system. Only used for packaged terminal air conditioner and room air conditioner. @@ -2254,19 +2228,6 @@ Heat Pump crankcase heater power consumption in Watts. Applies only to air-to-ai
-**Heat Pump: Blower Fan Efficiency** - -The blower fan efficiency at maximum fan speed. Applies only to air-to-air, mini-split, and ground-to-air. If not provided, the OS-HPXML default is used. - -- **Name:** ``heat_pump_fan_watts_per_cfm`` -- **Type:** ``Double`` - -- **Units:** ``W/CFM`` - -- **Required:** ``false`` - -
- **Heating System 2: Type** The type of the second heating system. @@ -2332,6 +2293,19 @@ The heat load served fraction of the second heating system. Ignored if this heat
+**HVAC Distribution: Blower Fan Efficiency** + +The blower fan efficiency at maximum fan speed. Applies only to Furnace heating system, central air conditioner and mini-split cooling systems, and air-to-air, mini-split, and ground-to-air heat pumps. If not provided, the OS-HPXML default is used. + +- **Name:** ``hvac_distribution_fan_watts_per_cfm`` +- **Type:** ``Double`` + +- **Units:** ``W/CFM`` + +- **Required:** ``false`` + +
+ **HVAC Control: Heating Weekday Setpoint Schedule** Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided. diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index 664eb728be..43859eeacd 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -1086,12 +1086,6 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('Frac') args << arg - arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heating_system_fan_watts_per_cfm', false) - arg.setDisplayName('Heating System: Blower Fan Efficiency') - arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeFurnace}. If not provided, the OS-HPXML default is used.") - arg.setUnits('W/CFM') - args << arg - arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_type', cooling_system_type_choices, true) arg.setDisplayName('Cooling System: Type') arg.setDescription("The type of cooling system. Use 'none' if there is no cooling system or if there is a heat pump serving a cooling load.") @@ -1158,12 +1152,6 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('W') args << arg - arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('cooling_system_fan_watts_per_cfm', false) - arg.setDisplayName('Cooling System: Blower Fan Efficiency') - arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner}. If not provided, the OS-HPXML default is used.") - arg.setUnits('W/CFM') - args << arg - arg = OpenStudio::Measure::OSArgument::makeChoiceArgument('cooling_system_integrated_heating_system_fuel', heating_system_fuel_choices, false) arg.setDisplayName('Cooling System: Integrated Heating System Fuel Type') arg.setDescription("The fuel type of the heating system integrated into cooling system. Only used for #{HPXML::HVACTypePTAC} and #{HPXML::HVACTypeRoomAirConditioner}.") @@ -1359,12 +1347,6 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setUnits('W') args << arg - arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('heat_pump_fan_watts_per_cfm', false) - arg.setDisplayName('Heat Pump: Blower Fan Efficiency') - arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir}. If not provided, the OS-HPXML default is used.") - arg.setUnits('W/CFM') - args << arg - heating_system_2_type_choices = OpenStudio::StringVector.new heating_system_2_type_choices << 'none' heating_system_2_type_choices << HPXML::HVACTypeFurnace @@ -1408,6 +1390,12 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg.setDefaultValue(0.25) args << arg + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('hvac_distribution_fan_watts_per_cfm', false) + arg.setDisplayName('HVAC Distribution: Blower Fan Efficiency') + arg.setDescription("The blower fan efficiency at maximum fan speed. Applies only to #{HPXML::HVACTypeFurnace} heating system, #{HPXML::HVACTypeCentralAirConditioner} and #{HPXML::HVACTypeMiniSplitAirConditioner} cooling systems, and #{HPXML::HVACTypeHeatPumpAirToAir}, #{HPXML::HVACTypeHeatPumpMiniSplit}, and #{HPXML::HVACTypeHeatPumpGroundToAir} heat pumps. If not provided, the OS-HPXML default is used.") + arg.setUnits('W/CFM') + args << arg + arg = OpenStudio::Measure::OSArgument::makeStringArgument('hvac_control_heating_weekday_setpoint', false) arg.setDisplayName('HVAC Control: Heating Weekday Setpoint Schedule') arg.setDescription('Specify the constant or 24-hour comma-separated weekday heating setpoint schedule. Required unless a detailed CSV schedule is provided.') @@ -4698,9 +4686,9 @@ def self.set_heating_systems(hpxml, args) end end - if args[:heating_system_fan_watts_per_cfm].is_initialized + if args[:hvac_distribution_fan_watts_per_cfm].is_initialized if [HPXML::HVACTypeFurnace].include?(heating_system_type) - heating_system_fan_watts_per_cfm = args[:heating_system_fan_watts_per_cfm].get + fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get end end @@ -4726,7 +4714,7 @@ def self.set_heating_systems(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, pilot_light: pilot_light, pilot_light_btuh: pilot_light_btuh, - fan_watts_per_cfm: heating_system_fan_watts_per_cfm, + fan_watts_per_cfm: fan_watts_per_cfm, is_shared_system: is_shared_system, number_of_units_served: number_of_units_served, primary_system: true) @@ -4783,9 +4771,9 @@ def self.set_cooling_systems(hpxml, args) end end - if args[:cooling_system_fan_watts_per_cfm].is_initialized + if args[:hvac_distribution_fan_watts_per_cfm].is_initialized if [HPXML::HVACTypeCentralAirConditioner, HPXML::HVACTypeMiniSplitAirConditioner].include?(cooling_system_type) - cooling_system_fan_watts_per_cfm = args[:cooling_system_fan_watts_per_cfm].get + fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get end end @@ -4821,7 +4809,7 @@ def self.set_cooling_systems(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, charge_defect_ratio: charge_defect_ratio, crankcase_heater_watts: cooling_system_crankcase_heater_watts, - fan_watts_per_cfm: cooling_system_fan_watts_per_cfm, + fan_watts_per_cfm: fan_watts_per_cfm, primary_system: true, integrated_heating_system_fuel: integrated_heating_system_fuel, integrated_heating_system_capacity: integrated_heating_system_capacity, @@ -4929,9 +4917,9 @@ def self.set_heat_pumps(hpxml, args) end end - if args[:heat_pump_fan_watts_per_cfm].is_initialized + if args[:hvac_distribution_fan_watts_per_cfm].is_initialized if [HPXML::HVACTypeHeatPumpAirToAir, HPXML::HVACTypeHeatPumpMiniSplit, HPXML::HVACTypeHeatPumpGroundToAir].include?(heat_pump_type) - heat_pump_fan_watts_per_cfm = args[:heat_pump_fan_watts_per_cfm].get + fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get end end @@ -4979,7 +4967,7 @@ def self.set_heat_pumps(hpxml, args) airflow_defect_ratio: airflow_defect_ratio, charge_defect_ratio: charge_defect_ratio, crankcase_heater_watts: heat_pump_crankcase_heater_watts, - fan_watts_per_cfm: heat_pump_fan_watts_per_cfm, + fan_watts_per_cfm: fan_watts_per_cfm, primary_heating_system: primary_heating_system, primary_cooling_system: primary_cooling_system) end @@ -5014,13 +5002,20 @@ def self.set_secondary_heating_systems(hpxml, args) fraction_heat_load_served = args[:heating_system_2_fraction_heat_load_served] end + if args[:hvac_distribution_fan_watts_per_cfm].is_initialized + if [HPXML::HVACTypeFurnace].include?(heating_system_type) + fan_watts_per_cfm = args[:hvac_distribution_fan_watts_per_cfm].get + end + end + hpxml.heating_systems.add(id: "HeatingSystem#{hpxml.heating_systems.size + 1}", heating_system_type: heating_system_type, heating_system_fuel: heating_system_fuel, heating_capacity: heating_capacity, fraction_heat_load_served: fraction_heat_load_served, heating_efficiency_afue: heating_efficiency_afue, - heating_efficiency_percent: heating_efficiency_percent) + heating_efficiency_percent: heating_efficiency_percent, + fan_watts_per_cfm: fan_watts_per_cfm) end def self.set_hvac_distribution(hpxml, args) diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 9629ed2e8a..a387b0540b 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 5179b5b5-ee87-4c7f-aa6d-72906271c623 - 2023-10-27T20:58:09Z + 1e250597-33d4-493c-ad33-2860689ac857 + 2023-10-27T22:26:02Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -2196,15 +2196,6 @@ false false
- - heating_system_fan_watts_per_cfm - Heating System: Blower Fan Efficiency - The blower fan efficiency at maximum fan speed. Applies only to Furnace. If not provided, the OS-HPXML default is used. - Double - W/CFM - false - false - cooling_system_type Cooling System: Type @@ -2372,15 +2363,6 @@ false false - - cooling_system_fan_watts_per_cfm - Cooling System: Blower Fan Efficiency - The blower fan efficiency at maximum fan speed. Applies only to central air conditioner and mini-split. If not provided, the OS-HPXML default is used. - Double - W/CFM - false - false - cooling_system_integrated_heating_system_fuel Cooling System: Integrated Heating System Fuel Type @@ -2789,15 +2771,6 @@ false false - - heat_pump_fan_watts_per_cfm - Heat Pump: Blower Fan Efficiency - The blower fan efficiency at maximum fan speed. Applies only to air-to-air, mini-split, and ground-to-air. If not provided, the OS-HPXML default is used. - Double - W/CFM - false - false - heating_system_2_type Heating System 2: Type @@ -2913,6 +2886,15 @@ false 0.25 + + hvac_distribution_fan_watts_per_cfm + HVAC Distribution: Blower Fan Efficiency + The blower fan efficiency at maximum fan speed. Applies only to Furnace heating system, central air conditioner and mini-split cooling systems, and air-to-air, mini-split, and ground-to-air heat pumps. If not provided, the OS-HPXML default is used. + Double + W/CFM + false + false + hvac_control_heating_weekday_setpoint HVAC Control: Heating Weekday Setpoint Schedule @@ -6762,7 +6744,7 @@ README.md md readme - 53483EA0 + 51797951 README.md.erb @@ -6779,7 +6761,7 @@ measure.rb rb script - E7ED7CC0 + 6983A94E geometry.rb diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index 295ad0bbbf..18d0a92cab 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -2014,66 +2014,63 @@ "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, "heat_pump_charge_defect_ratio": -0.25, - "heat_pump_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml": { "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, "heat_pump_charge_defect_ratio": -0.25, - "heat_pump_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml": { "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml", "heat_pump_airflow_defect_ratio": -0.25, "heat_pump_charge_defect_ratio": -0.25, - "heat_pump_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml": { "parent_hpxml": "sample_files/base.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, "cooling_system_charge_defect_ratio": -0.25, - "heating_system_fan_watts_per_cfm": 0.365, - "cooling_system_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, "cooling_system_charge_defect_ratio": -0.25, - "heating_system_fan_watts_per_cfm": 0.365, - "cooling_system_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml", "heating_system_airflow_defect_ratio": -0.25, "cooling_system_airflow_defect_ratio": -0.25, "cooling_system_charge_defect_ratio": -0.25, - "heating_system_fan_watts_per_cfm": 0.365, - "cooling_system_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-only.xml": { "parent_hpxml": "sample_files/base-hvac-furnace-gas-only.xml", "heating_system_airflow_defect_ratio": -0.25, - "heating_system_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml": { "parent_hpxml": "sample_files/base-hvac-ground-to-air-heat-pump.xml", "heat_pump_airflow_defect_ratio": -0.25, "heat_pump_charge_defect_ratio": -0.25, - "heat_pump_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml": { "parent_hpxml": "sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml", "cooling_system_airflow_defect_ratio": -0.25, "cooling_system_charge_defect_ratio": -0.25, - "cooling_system_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml": { "parent_hpxml": "sample_files/base-hvac-mini-split-heat-pump-ducted.xml", "heat_pump_airflow_defect_ratio": -0.25, "heat_pump_charge_defect_ratio": -0.25, - "heat_pump_fan_watts_per_cfm": 0.365 + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml": { "parent_hpxml": "sample_files/base.xml", From 35634487355bd426ca1cbc278cbf99c619797980 Mon Sep 17 00:00:00 2001 From: Joe Robertson Date: Mon, 20 Nov 2023 10:30:48 -0700 Subject: [PATCH 5/5] Update hpxml inputs json after merge. --- workflow/hpxml_inputs.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index b7d1a3648d..57e10ee051 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -2026,7 +2026,8 @@ "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed-detailed-performance.xml": { - "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml" + "parent_hpxml": "sample_files/base-hvac-air-to-air-heat-pump-var-speed-detailed-performance.xml", + "hvac_distribution_fan_watts_per_cfm": 0.365 }, "sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml": { "parent_hpxml": "sample_files/base.xml",