diff --git a/lib/openstudio-standards.rb b/lib/openstudio-standards.rb index 26c6b4886..8fcdca85c 100644 --- a/lib/openstudio-standards.rb +++ b/lib/openstudio-standards.rb @@ -384,6 +384,7 @@ module OpenstudioStandards # 90.1-PRM-2019 require_relative "#{stds}/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019" require_relative "#{stds}/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model" + require_relative "#{stds}/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed" # DOE 1980-2004 require_relative "#{stds}/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirLoopHVAC" require_relative "#{stds}/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model" diff --git a/lib/openstudio-standards/standards/Standards.Model.rb b/lib/openstudio-standards/standards/Standards.Model.rb index 23bb72b7e..4a53219fa 100644 --- a/lib/openstudio-standards/standards/Standards.Model.rb +++ b/lib/openstudio-standards/standards/Standards.Model.rb @@ -325,7 +325,7 @@ def model_create_prm_any_baseline_building(user_model, building_type, climate_zo # Modify the service water heating loops per the baseline rules OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', '*** Cleaning up Service Water Heating Loops ***') - model_apply_baseline_swh_loops(model, building_type) + model_apply_baseline_swh_loops(model, building_type, swh_building_type) # Determine the baseline HVAC system type for each of the groups of zones and add that system type. OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Model', '*** Adding Baseline HVAC Systems ***') @@ -5556,7 +5556,9 @@ def model_add_vals_to_sch(model, day_sch, sch_type, values) # @param building_type [String] the building type # @return [Boolean] returns true if successful, false if not # @author Julien Marrec - def model_apply_baseline_swh_loops(model, building_type) + def model_apply_baseline_swh_loops(model, + building_type, + swh_building_type = 'All others') model.getPlantLoops.sort.each do |plant_loop| # Skip non service water heating loops next unless plant_loop_swh_loop?(plant_loop) diff --git a/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb index 6244d772f..88dafb345 100644 --- a/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +++ b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb @@ -55,4 +55,84 @@ def model_get_percent_of_surface_range(model, wwr_parameter) end return wwr_range end + + # Modify the existing service water heating loops to match the baseline required heating type. + # @param model [OpenStudio::Model::Model] OpenStudio model object + # @param building_type [String] the building type (For consistency with the standard class, not used in the method) + # @param swh_building_type [String] the swh building are type + # @return [Boolean] returns true if successful, false if not + + def model_apply_baseline_swh_loops(model, + building_type, + swh_building_type = 'All others') + + building_type_list = [] + # Get the uniq building area type numbers. + model.getWaterUseEquipments.each do |wateruse_equipment| + additional_property = get_additional_property_as_string(wateruse_equipment, 'building_type_swh', default = nil) + unless additional_property.nil? + building_type_list << additional_property + end + end + + # Apply baseline swh loops + # Single building area type + if building_type_list.uniq.size <= 1 + if building_type_list.uniq.size == 1 + swh_building_type_new = building_type_list.uniq[0] + else + swh_building_type_new = swh_building_type + end + model.getPlantLoops.each do |plant_loop| + # Skip non service water heating loops + next unless plant_loop_swh_loop?(plant_loop) + + # Rename the loop to avoid accidentally hooking up the HVAC systems to this loop later. + plant_loop.setName('Service Water Heating Loop') + + htg_fuels, combination_system, storage_capacity, total_heating_capacity = plant_loop_swh_system_type(plant_loop) + + # Per Table G3.1 11.e, if the baseline system was a combination of heating and service water heating, + # delete all heating equipment and recreate a WaterHeater:Mixed. + if combination_system + a = plant_loop.supplyComponents + b = plant_loop.demandComponents + plantloop_components = a += b + plantloop_components.each do |component| + # Get the object type + obj_type = component.iddObjectType.valueName.to_s + next if ['OS_Node', 'OS_Pump_ConstantSpeed', 'OS_Pump_VariableSpeed', 'OS_Connector_Splitter', 'OS_Connector_Mixer', 'OS_Pipe_Adiabatic'].include?(obj_type) + + component.remove + end + + water_heater = OpenStudio::Model::WaterHeaterMixed.new(model) + water_heater.setName('Baseline Water Heater') + water_heater.setHeaterMaximumCapacity(total_heating_capacity) + water_heater.setTankVolume(storage_capacity) + # Apply prm parameters + model_apply_water_heater_prm_parameter(water_heater, + swh_building_type_new) + plant_loop.addSupplyBranchForComponent(water_heater) + + # If it's not a combination heating and service water heating system + # just apply prm parameters for all water heaters on the system + + else + # Per Table G3.1 11.i, piping losses was deleted + plant_loop_adiabatic_pipes_only(plant_loop) + plant_loop.supplyComponents.each do |component| + next unless component.to_WaterHeaterMixed.is_initialized + water_heater = component.to_WaterHeaterMixed.get + model_apply_water_heater_prm_parameter(water_heater, + swh_building_type_new) + end + end + end + # else + # Todo: Multiple building type + end + + return true + end end diff --git a/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb new file mode 100644 index 000000000..c3ae29e10 --- /dev/null +++ b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb @@ -0,0 +1,35 @@ +class ASHRAE901PRM2019 < ASHRAE901PRM + + # Apply the prm parameter to a water heater based on the + # building area type. + # @param water_heater_mixed [OpenStudio::Model::WaterHeaterMixed] water heater mixed object + # @param building_type_swh [String] the swh building are type + # @return [Boolean] returns true if successful, false if not + def model_apply_water_heater_prm_parameter(water_heater_mixed, building_type_swh) + new_fuel = water_heater_mixed_apply_prm_baseline_fuel_type(building_type_swh) + water_heater_mixed_apply_efficiency(water_heater_mixed) + # Change the fuel type + water_heater_mixed.setHeaterFuelType(new_fuel) + OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.WaterHeaterMixed', "For #{water_heater_mixed.name}, changed baseline water heater fuel to #{new_fuel}.") + true + end + # Apply the prm fuel type to a water heater based on the + # building area type. + # @param building_type [String] the building type (For consistency with the standard class, not used in the method) + # @return [String] returns fuel type + def water_heater_mixed_apply_prm_baseline_fuel_type(building_type) + # Get the fuel type data + heater_prop = model_find_object(standards_data['prm_swh_bldg_type'], {'swh_building_type' => building_type}) + new_fuel_data = heater_prop['baseline_heating_method'] + # There are only two water heater fuel type in the prm database: + # ("Gas Storage" and "Electric Resistance Storage") + # Change the prm fuel type to openstudio fuel type + if new_fuel_data == "Gas Storage" + new_fuel = 'NaturalGas' + else + new_fuel = 'Electricity' + end + return new_fuel + end +end + diff --git a/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json index 758c86249..f2ada0d38 100644 --- a/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json +++ b/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.water_heaters.json @@ -1,34 +1,8 @@ { "water_heaters": [ { - "equipment_type": "Table Top Water Heaters", - "fuel_type": "Electricity", - "minimum_capacity": 0, - "maximum_capacity": 40944, - "minimum_storage": 0, - "maximum_storage": 19.99, - "minimum_capacity_per_storage": null, - "maximum_capacity_per_storage": null, - "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", - "energy_factor_base": 0.93, - "energy_factor_volume_derate": 0.00132, - "standby_loss_base": null, - "standby_loss_capacity_allowance": null, - "standby_loss_volume_allowance": null, - "standby_loss_square_root_volume_allowance": null, - "hourly_loss_base": null, - "hourly_loss_volume_allowance": null, - "thermal_efficiency": null, - "uniform_energy_factor": null, - "uniform_energy_factor_base": null, - "uniform_energy_factor_volume_allowance": null, - "cop": null, - "r_value": null - }, - { - "equipment_type": "Table Top Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Table Top Water Heater", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -37,8 +11,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -52,10 +26,12 @@ "uniform_energy_factor_base": 0.6323, "uniform_energy_factor_volume_allowance": 0.0058, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Table Top Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Table Top Water Heater", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -64,8 +40,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -79,10 +55,12 @@ "uniform_energy_factor_base": 0.9188, "uniform_energy_factor_volume_allowance": 0.0031, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Table Top Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Table Top Water Heater", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -91,8 +69,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -106,10 +84,12 @@ "uniform_energy_factor_base": 0.9577, "uniform_energy_factor_volume_allowance": 0.0023, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Table Top Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Table Top Water Heater", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -118,8 +98,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -133,37 +113,12 @@ "uniform_energy_factor_base": 0.9884, "uniform_energy_factor_volume_allowance": 0.0016, "cop": null, - "r_value": null - }, - { - "equipment_type": "Storage Water Heaters", - "fuel_type": "Electricity", - "minimum_capacity": 0, - "maximum_capacity": 40944, - "minimum_storage": 0, - "maximum_storage": 19.99, - "minimum_capacity_per_storage": null, - "maximum_capacity_per_storage": null, - "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", - "energy_factor_base": 0.93, - "energy_factor_volume_derate": 0.00132, - "standby_loss_base": null, - "standby_loss_capacity_allowance": null, - "standby_loss_volume_allowance": null, - "standby_loss_square_root_volume_allowance": null, - "hourly_loss_base": null, - "hourly_loss_volume_allowance": null, - "thermal_efficiency": null, - "uniform_energy_factor": null, - "uniform_energy_factor_base": null, - "uniform_energy_factor_volume_allowance": null, - "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -172,8 +127,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -187,10 +142,12 @@ "uniform_energy_factor_base": 0.8808, "uniform_energy_factor_volume_allowance": 0.0008, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -199,8 +156,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -214,10 +171,12 @@ "uniform_energy_factor_base": 0.9254, "uniform_energy_factor_volume_allowance": 0.0003, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -226,8 +185,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -241,10 +200,12 @@ "uniform_energy_factor_base": 0.9307, "uniform_energy_factor_volume_allowance": 0.0002, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -253,8 +214,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -268,10 +229,12 @@ "uniform_energy_factor_base": 0.9349, "uniform_energy_factor_volume_allowance": 0.0001, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -280,8 +243,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -295,10 +258,12 @@ "uniform_energy_factor_base": 1.9236, "uniform_energy_factor_volume_allowance": 0.0011, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -307,8 +272,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -322,10 +287,12 @@ "uniform_energy_factor_base": 2.044, "uniform_energy_factor_volume_allowance": 0.0011, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -334,8 +301,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -349,10 +316,12 @@ "uniform_energy_factor_base": 2.1171, "uniform_energy_factor_volume_allowance": 0.0011, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -361,8 +330,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -376,10 +345,12 @@ "uniform_energy_factor_base": 2.2418, "uniform_energy_factor_volume_allowance": 0.0011, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 40944.01, "maximum_capacity": 99999999, @@ -388,8 +359,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -403,10 +374,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -415,8 +388,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -430,10 +403,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -442,8 +417,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -457,10 +432,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -469,8 +446,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -484,10 +461,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 0, "maximum_capacity": 40944, @@ -496,8 +475,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -511,10 +490,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 40944.01, "maximum_capacity": 199943.2, @@ -523,8 +504,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -538,10 +519,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 40944.01, "maximum_capacity": 199943.2, @@ -550,8 +533,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -565,10 +548,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 40944.01, "maximum_capacity": 199943.2, @@ -577,8 +562,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -592,10 +577,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Electricity", "minimum_capacity": 40944.01, "maximum_capacity": 199943.2, @@ -604,8 +591,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -619,37 +606,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null - }, - { - "equipment_type": "Storage Water Heaters", - "fuel_type": "NaturalGas", - "minimum_capacity": 0, - "maximum_capacity": 75000, - "minimum_storage": 0, - "maximum_storage": 19.99, - "minimum_capacity_per_storage": null, - "maximum_capacity_per_storage": null, - "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", - "energy_factor_base": 0.62, - "energy_factor_volume_derate": 0.0019, - "standby_loss_base": null, - "standby_loss_capacity_allowance": null, - "standby_loss_volume_allowance": null, - "standby_loss_square_root_volume_allowance": null, - "hourly_loss_base": null, - "hourly_loss_volume_allowance": null, - "thermal_efficiency": null, - "uniform_energy_factor": null, - "uniform_energy_factor_base": null, - "uniform_energy_factor_volume_allowance": null, - "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -658,8 +620,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -673,10 +635,12 @@ "uniform_energy_factor_base": 0.3456, "uniform_energy_factor_volume_allowance": 0.002, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -685,8 +649,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -700,10 +664,12 @@ "uniform_energy_factor_base": 0.5982, "uniform_energy_factor_volume_allowance": 0.0019, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -712,8 +678,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -727,10 +693,12 @@ "uniform_energy_factor_base": 0.6483, "uniform_energy_factor_volume_allowance": 0.0017, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -739,8 +707,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -754,10 +722,12 @@ "uniform_energy_factor_base": 0.692, "uniform_energy_factor_volume_allowance": 0.0013, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -766,8 +736,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -781,10 +751,12 @@ "uniform_energy_factor_base": 0.647, "uniform_energy_factor_volume_allowance": 0.0006, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -793,8 +765,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -808,10 +780,12 @@ "uniform_energy_factor_base": 0.7689, "uniform_energy_factor_volume_allowance": 0.0005, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -820,8 +794,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -835,10 +809,12 @@ "uniform_energy_factor_base": 0.7897, "uniform_energy_factor_volume_allowance": 0.0004, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 0, "maximum_capacity": 75000, @@ -847,8 +823,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -862,10 +838,12 @@ "uniform_energy_factor_base": 0.8072, "uniform_energy_factor_volume_allowance": 0.0003, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 75000.01, "maximum_capacity": 105000, @@ -874,8 +852,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -889,10 +867,12 @@ "uniform_energy_factor_base": 0.2674, "uniform_energy_factor_volume_allowance": 0.0009, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 75000.01, "maximum_capacity": 105000, @@ -901,8 +881,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -916,10 +896,12 @@ "uniform_energy_factor_base": 0.5362, "uniform_energy_factor_volume_allowance": 0.0012, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 75000.01, "maximum_capacity": 105000, @@ -928,8 +910,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -943,10 +925,12 @@ "uniform_energy_factor_base": 0.6002, "uniform_energy_factor_volume_allowance": 0.0011, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 75000.01, "maximum_capacity": 105000, @@ -955,8 +939,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -970,10 +954,12 @@ "uniform_energy_factor_base": 0.6597, "uniform_energy_factor_volume_allowance": 0.0009, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "NaturalGas", "minimum_capacity": 105000.01, "maximum_capacity": 99999999, @@ -982,8 +968,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -997,10 +983,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 50000.01, "maximum_capacity": 199999.99, @@ -1009,8 +997,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1024,10 +1012,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 50000.01, "maximum_capacity": 199999.99, @@ -1036,8 +1026,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1051,10 +1041,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 50000.01, "maximum_capacity": 199999.99, @@ -1063,8 +1055,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1078,10 +1070,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 50000.01, "maximum_capacity": 199999.99, @@ -1090,8 +1084,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1105,10 +1099,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 200000, "maximum_capacity": 99999999, @@ -1117,8 +1113,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1132,10 +1128,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "NaturalGas", "minimum_capacity": 200000, "maximum_capacity": 99999999, @@ -1144,8 +1142,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1159,10 +1157,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 0, "maximum_capacity": 105000, @@ -1171,8 +1171,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1186,10 +1186,12 @@ "uniform_energy_factor_base": 0.2509, "uniform_energy_factor_volume_allowance": 0.0012, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 0, "maximum_capacity": 105000, @@ -1198,8 +1200,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1213,10 +1215,12 @@ "uniform_energy_factor_base": 0.533, "uniform_energy_factor_volume_allowance": 0.0016, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 0, "maximum_capacity": 105000, @@ -1225,8 +1229,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1240,10 +1244,12 @@ "uniform_energy_factor_base": 0.6078, "uniform_energy_factor_volume_allowance": 0.0016, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 0, "maximum_capacity": 105000, @@ -1252,8 +1258,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1267,10 +1273,12 @@ "uniform_energy_factor_base": 0.6815, "uniform_energy_factor_volume_allowance": 0.0014, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8 and Table F-2" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 105000.01, "maximum_capacity": 140000, @@ -1279,8 +1287,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "very small", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1294,10 +1302,12 @@ "uniform_energy_factor_base": 0.2932, "uniform_energy_factor_volume_allowance": 0.0015, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 105000.01, "maximum_capacity": 140000, @@ -1306,8 +1316,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "low", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1321,10 +1331,12 @@ "uniform_energy_factor_base": 0.5596, "uniform_energy_factor_volume_allowance": 0.0018, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 105000.01, "maximum_capacity": 140000, @@ -1333,8 +1345,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "medium", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1348,10 +1360,12 @@ "uniform_energy_factor_base": 0.6194, "uniform_energy_factor_volume_allowance": 0.0016, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 105000.01, "maximum_capacity": 140000, @@ -1360,8 +1374,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": "high", - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1375,10 +1389,12 @@ "uniform_energy_factor_base": 0.674, "uniform_energy_factor_volume_allowance": 0.0013, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Storage Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Storage Water Heater", "fuel_type": "Oil", "minimum_capacity": 140000.01, "maximum_capacity": 99999999, @@ -1387,8 +1403,8 @@ "minimum_capacity_per_storage": 0, "maximum_capacity_per_storage": 3999.99, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1402,10 +1418,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Oil", "minimum_capacity": 0, "maximum_capacity": 210000, @@ -1414,8 +1432,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": 0.59, "energy_factor_volume_derate": 0.0005, "standby_loss_base": null, @@ -1429,10 +1447,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Oil", "minimum_capacity": 210000.01, "maximum_capacity": 99999999, @@ -1441,8 +1461,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1456,10 +1476,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Instantaneous Water Heaters", + "template": "90.1-PRM-2019", + "product_class": "Instantaneous Water Heaters", "fuel_type": "Oil", "minimum_capacity": 210000.01, "maximum_capacity": 99999999, @@ -1468,8 +1490,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1483,10 +1505,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Hot Water Supply Boiler", + "template": "90.1-PRM-2019", + "product_class": "Hot Water Supply Boiler", "fuel_type": "NaturalGas", "minimum_capacity": 300000, "maximum_capacity": 12499999.99, @@ -1495,8 +1519,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1510,10 +1534,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Hot Water Supply Boiler", + "template": "90.1-PRM-2019", + "product_class": "Hot Water Supply Boiler", "fuel_type": "Oil", "minimum_capacity": 300000, "maximum_capacity": 12499999.99, @@ -1522,8 +1548,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1537,10 +1563,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Hot Water Supply Boiler", + "template": "90.1-PRM-2019", + "product_class": "Hot Water Supply Boiler", "fuel_type": "NaturalGas", "minimum_capacity": 300000, "maximum_capacity": 12499999.99, @@ -1549,8 +1577,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1564,10 +1592,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Hot Water Supply Boiler", + "template": "90.1-PRM-2019", + "product_class": "Hot Water Supply Boiler", "fuel_type": "Oil", "minimum_capacity": 300000, "maximum_capacity": 12499999.99, @@ -1576,8 +1606,8 @@ "minimum_capacity_per_storage": 4000, "maximum_capacity_per_storage": 99999999, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1591,10 +1621,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Pool Heater", + "template": "90.1-PRM-2019", + "product_class": "Pool Heater", "fuel_type": "NaturalGas", "minimum_capacity": null, "maximum_capacity": null, @@ -1603,8 +1635,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1618,10 +1650,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Heat Pump Pool Heater", + "template": "90.1-PRM-2019", + "product_class": "Heat Pump Pool Heater", "fuel_type": "Electricity", "minimum_capacity": null, "maximum_capacity": null, @@ -1630,8 +1664,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1645,10 +1679,12 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": 4, - "r_value": null + "r_value": null, + "annotation": "From 90.1-2019 Table 7.8" }, { - "equipment_type": "Unfired Storage Tank", + "template": "90.1-PRM-2019", + "product_class": "Unfired Storage Tank", "fuel_type": "None", "minimum_capacity": null, "maximum_capacity": null, @@ -1657,8 +1693,8 @@ "minimum_capacity_per_storage": null, "maximum_capacity_per_storage": null, "draw_profile": null, - "start_date": "1919-09-09T00:00:00+00:00", - "end_date": "2999-09-09T00:00:00+00:00", + "start_date": "9/9/1919", + "end_date": "9/9/2999", "energy_factor_base": null, "energy_factor_volume_derate": null, "standby_loss_base": null, @@ -1672,7 +1708,8 @@ "uniform_energy_factor_base": null, "uniform_energy_factor_volume_allowance": null, "cop": null, - "r_value": 12.5 + "r_value": 12.5, + "annotation": "From 90.1-2019 Table 7.8" } ] } \ No newline at end of file diff --git a/test/90_1_prm/data/prototype_list.json b/test/90_1_prm/data/prototype_list.json index 02672bfc6..2f5d3751a 100644 --- a/test/90_1_prm/data/prototype_list.json +++ b/test/90_1_prm/data/prototype_list.json @@ -224,5 +224,8 @@ ["MidriseApartment", "90.1-2013", "ASHRAE 169-2013-2A", "userdata_default_test", [["remove_transformer", []]]], ["MidriseApartment", "90.1-2013", "ASHRAE 169-2013-3A", "userdata_default_test", [["remove_transformer", []], ["change_wwr_model", [0.5, 0.5, 0.5, 0.5]]]], ["MediumOffice", "90.1-2013", "ASHRAE 169-2013-2A", "userdata_default_test",[["remove_transformer", []], ["change_wwr_model", [0.0, 0.0, 0.1, 0.0]]]] + ], + "swh_single_building_type": [ + ["SmallOffice", "90.1-2019", "ASHRAE 169-2013-2A", "userdata_default_test", []] ] } diff --git a/test/90_1_prm/prm_check.rb b/test/90_1_prm/prm_check.rb index 989a1c6e8..00a7ab16a 100644 --- a/test/90_1_prm/prm_check.rb +++ b/test/90_1_prm/prm_check.rb @@ -1988,4 +1988,18 @@ def check_wwr(prototypes_base) end end end + + def check_swh_single_building_type(prototypes_base) + prototypes_base.each do |prototype, model_baseline| + # set the fuel type according to the building area type (Small Office) + new_fuel = "Electricity" + water_heater_efficiency = 1.0 + ua_w_per_k = 0.9647 + model_baseline.getWaterHeaterMixeds.sort.each do |water_heater| + assert(water_heater.heaterFuelType == new_fuel, "New fuel type is not the expected value.") + assert((water_heater.heaterThermalEfficiency.get - water_heater_efficiency)/water_heater_efficiency < 0.01, "New efficiency is not the expected value.") + assert((water_heater.offCycleLossCoefficienttoAmbientTemperature.get - ua_w_per_k)/ua_w_per_k < 0.01, "New surface loss coefficient is not the expected value.") + end + end + end end \ No newline at end of file diff --git a/test/90_1_prm/test_appendix_g_prm.rb b/test/90_1_prm/test_appendix_g_prm.rb index 3abbe09dd..faf09b480 100644 --- a/test/90_1_prm/test_appendix_g_prm.rb +++ b/test/90_1_prm/test_appendix_g_prm.rb @@ -254,5 +254,10 @@ def test_wwr model_hash = prm_test_helper('wwr', require_prototype = false, require_baseline = true) check_wwr(model_hash['baseline']) end + + def test_swh_single_building_type + model_hash = prm_test_helper('swh_single_building_type', require_prototype=false, require_baseline=true) + check_swh_single_building_type(model_hash["baseline"]) + end end