openstudio-standards 0.8.3 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openstudio-standards/btap/costing/README.md +502 -0
  3. data/lib/openstudio-standards/btap/costing/btap_costing.rb +473 -0
  4. data/lib/openstudio-standards/btap/costing/btap_measure_helper.rb +359 -0
  5. data/lib/openstudio-standards/btap/costing/btap_workflow.rb +117 -0
  6. data/lib/openstudio-standards/btap/costing/common_paths.rb +78 -0
  7. data/lib/openstudio-standards/btap/costing/common_resources/ConstructionProperties.csv +52 -0
  8. data/lib/openstudio-standards/btap/costing/common_resources/Constructions.csv +37 -0
  9. data/lib/openstudio-standards/btap/costing/common_resources/construction_sets.csv +1270 -0
  10. data/lib/openstudio-standards/btap/costing/common_resources/constructions_glazing.csv +61 -0
  11. data/lib/openstudio-standards/btap/costing/common_resources/constructions_opaque.csv +2256 -0
  12. data/lib/openstudio-standards/btap/costing/common_resources/costs.csv +1904 -0
  13. data/lib/openstudio-standards/btap/costing/common_resources/costs_local_factors.csv +2315 -0
  14. data/lib/openstudio-standards/btap/costing/common_resources/hvac_vent_ahu.csv +925 -0
  15. data/lib/openstudio-standards/btap/costing/common_resources/lighting.csv +364 -0
  16. data/lib/openstudio-standards/btap/costing/common_resources/lighting_sets.csv +2667 -0
  17. data/lib/openstudio-standards/btap/costing/common_resources/locations.csv +75 -0
  18. data/lib/openstudio-standards/btap/costing/common_resources/materials_glazing.csv +35 -0
  19. data/lib/openstudio-standards/btap/costing/common_resources/materials_hvac.csv +1699 -0
  20. data/lib/openstudio-standards/btap/costing/common_resources/materials_lighting.csv +267 -0
  21. data/lib/openstudio-standards/btap/costing/common_resources/materials_opaque.csv +164 -0
  22. data/lib/openstudio-standards/btap/costing/copy_test_results_files_to_expected_results.rb +11 -0
  23. data/lib/openstudio-standards/btap/costing/cost_building_from_file.rb +136 -0
  24. data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +177 -0
  25. data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +353 -0
  26. data/lib/openstudio-standards/btap/costing/dcv_costing.rb +314 -0
  27. data/lib/openstudio-standards/btap/costing/dummy.epw +8768 -0
  28. data/lib/openstudio-standards/btap/costing/dummy.osm +5320 -0
  29. data/lib/openstudio-standards/btap/costing/envelope_costing.rb +284 -0
  30. data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +2584 -0
  31. data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +155 -0
  32. data/lib/openstudio-standards/btap/costing/lighting_costing.rb +209 -0
  33. data/lib/openstudio-standards/btap/costing/mech_sizing.json +502 -0
  34. data/lib/openstudio-standards/btap/costing/neb_end_use_prices.csv +42 -0
  35. data/lib/openstudio-standards/btap/costing/necb_2011_spacetype_info.csv +225 -0
  36. data/lib/openstudio-standards/btap/costing/necb_reference_runs.csv +28705 -0
  37. data/lib/openstudio-standards/btap/costing/nv_costing.rb +547 -0
  38. data/lib/openstudio-standards/btap/costing/parallel_tests.rb +92 -0
  39. data/lib/openstudio-standards/btap/costing/pv_ground_costing.rb +687 -0
  40. data/lib/openstudio-standards/btap/costing/shw_costing.rb +705 -0
  41. data/lib/openstudio-standards/btap/costing/test_list.txt +17 -0
  42. data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +26 -0
  43. data/lib/openstudio-standards/btap/costing/test_run_costing_tests.rb +80 -0
  44. data/lib/openstudio-standards/btap/costing/ventilation_costing.rb +2616 -0
  45. data/lib/openstudio-standards/constructions/modify.rb +2 -1
  46. data/lib/openstudio-standards/standards/Standards.Model.rb +39 -9
  47. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -2
  48. data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +6 -1
  49. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +2 -27
  50. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +68 -27
  51. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +64 -25
  52. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +9 -14
  53. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +46 -20
  54. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +635 -248
  55. data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +43 -7
  56. data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +7 -1
  57. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartmentMult.osm +14272 -0
  58. data/lib/openstudio-standards/standards/necb/NECB2011/data/necb_2015_table_c1.json +1 -1
  59. data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +437 -437
  60. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems.json +516 -0
  61. data/lib/openstudio-standards/standards/necb/NECB2011/data/systems_including_sys5.json +588 -0
  62. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +489 -0
  63. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +16 -6
  64. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +48 -5
  65. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +2 -2
  66. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +35 -27
  67. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +34 -23
  68. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +8 -6
  69. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +42 -13
  70. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +214 -25
  71. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +61 -1
  72. data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +636 -636
  73. data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +38 -38
  74. data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +15 -6
  75. data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +636 -636
  76. data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +71 -71
  77. data/lib/openstudio-standards/standards/necb/README.md +343 -0
  78. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +190 -28
  79. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +14 -5
  80. data/lib/openstudio-standards/standards/necb/common/eccc_electric_grid_intensity_20250311.csv +14 -0
  81. data/lib/openstudio-standards/standards/necb/common/nir_gas_grid_intensity_20250311.csv +14 -0
  82. data/lib/openstudio-standards/standards/necb/common/system_types.yaml +0 -0
  83. data/lib/openstudio-standards/utilities/logging.rb +18 -14
  84. data/lib/openstudio-standards/version.rb +1 -1
  85. data/lib/openstudio-standards/weather/modify.rb +2 -2
  86. data/lib/openstudio-standards.rb +12 -0
  87. metadata +53 -2
@@ -296,6 +296,7 @@ class ECMS
296
296
  outdoor_vrf_unit.setMinimumHeatPumpPartLoadRatio(0.5)
297
297
  outdoor_vrf_unit.setCondenserType(condenser_type)
298
298
  outdoor_vrf_unit.setCrankcaseHeaterPowerperCompressor(1.0e-6)
299
+ outdoor_vrf_unit.setMinimumOutdoorTemperatureinCoolingMode(-10)
299
300
  heat_defrost_eir_ft = nil
300
301
  if ecm_name
301
302
  search_criteria = {}
@@ -516,7 +517,7 @@ class ECMS
516
517
 
517
518
  # Create one hot-water loop for hot-water baseboards if required
518
519
  hw_loop = nil
519
- hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water'
520
+ hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water' || standard.fuel_type_set.force_airloop_hot_water
520
521
 
521
522
  # Update system zones map if needed
522
523
  system_zones_map = update_system_zones_map_keys(system_zones_map,'sys_1')
@@ -537,6 +538,7 @@ class ECMS
537
538
  system_doas_flags: system_doas_flags)
538
539
  sys_supp_htg_eqpt_type = 'coil_electric'
539
540
  sys_supp_htg_eqpt_type = 'coil_gas' if heating_fuel == 'NaturalGas'
541
+ sys_supp_htg_eqpt_type = 'coil_hw' if standard.fuel_type_set.force_airloop_hot_water
540
542
  airloop,clg_dx_coil,htg_dx_coil,return_fan = add_air_system(model: model,
541
543
  zones: zones,
542
544
  sys_abbr: sys_info['sys_abbr'],
@@ -547,7 +549,8 @@ class ECMS
547
549
  sys_clg_eqpt_type: air_sys_eqpt_type,
548
550
  sys_supp_fan_type: sys_info['sys_supp_fan_type'],
549
551
  sys_ret_fan_type: sys_info['sys_ret_fan_type'],
550
- sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'])
552
+ sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'],
553
+ hw_loop: hw_loop)
551
554
  # Appy performance curves
552
555
  if air_sys_eqpt_type == 'ccashp'
553
556
  eqpt_name = 'Mitsubishi_Hyper_Heating_VRF_Outdoor_Unit RTU'
@@ -740,7 +743,7 @@ class ECMS
740
743
 
741
744
  # =============================================================================================================================
742
745
  # create air system heating equipment
743
- def create_air_sys_htg_eqpt(model, htg_eqpt_type)
746
+ def create_air_sys_htg_eqpt(model, htg_eqpt_type, hw_loop = nil)
744
747
  always_on = model.alwaysOnDiscreteSchedule
745
748
  htg_eqpt = nil
746
749
  case htg_eqpt_type.downcase
@@ -769,6 +772,7 @@ class ECMS
769
772
  when 'coil_hw'
770
773
  htg_eqpt = OpenStudio::Model::CoilHeatingWater.new(model)
771
774
  htg_eqpt.setName('CoilHeatingWater')
775
+ hw_loop.addDemandBranchForComponent(htg_eqpt) unless hw_loop.nil?
772
776
  end
773
777
 
774
778
  return htg_eqpt
@@ -786,7 +790,8 @@ class ECMS
786
790
  sys_clg_eqpt_type:,
787
791
  sys_supp_fan_type:,
788
792
  sys_ret_fan_type:,
789
- sys_setpoint_mgr_type:)
793
+ sys_setpoint_mgr_type:,
794
+ hw_loop: nil)
790
795
 
791
796
  # create all the needed components and the air loop
792
797
  airloop = create_airloop(model, sys_vent_type)
@@ -796,7 +801,7 @@ class ECMS
796
801
  return_fan = create_air_sys_fan(model, sys_ret_fan_type)
797
802
  return_fan.setName('Return Fan') if return_fan
798
803
  htg_eqpt = create_air_sys_htg_eqpt(model, sys_htg_eqpt_type)
799
- supp_htg_eqpt = create_air_sys_htg_eqpt(model, sys_supp_htg_eqpt_type)
804
+ supp_htg_eqpt = create_air_sys_htg_eqpt(model, sys_supp_htg_eqpt_type, hw_loop)
800
805
  clg_eqpt = create_air_sys_clg_eqpt(model, sys_clg_eqpt_type)
801
806
  # add components to the air loop
802
807
  clg_eqpt.addToNode(airloop.supplyOutletNode) if clg_eqpt
@@ -823,7 +828,10 @@ class ECMS
823
828
  sys_name_pars['sys_rf'] = 'none'
824
829
  sys_name_pars['sys_rf'] = 'cv' if sys_ret_fan_type == 'constant_volume'
825
830
  sys_name_pars['sys_rf'] = 'vv' if sys_ret_fan_type == 'variable_volume'
826
- assign_base_sys_name(airloop, sys_abbr: sys_abbr, sys_oa: sys_vent_type, sys_name_pars: sys_name_pars)
831
+ assign_base_sys_name( air_loop: airloop,
832
+ sys_abbr: sys_abbr,
833
+ sys_oa: sys_vent_type,
834
+ sys_name_pars: sys_name_pars)
827
835
  return airloop, clg_eqpt, htg_eqpt, return_fan
828
836
  end
829
837
 
@@ -1236,11 +1244,12 @@ class ECMS
1236
1244
 
1237
1245
  # Create one hot-water loop for hot-water baseboards if required
1238
1246
  hw_loop = nil
1239
- hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water'
1247
+ hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water' || standard.fuel_type_set.force_airloop_hot_water
1240
1248
 
1241
1249
  # Set supplemental heating for air loop
1242
1250
  sys_supp_htg_eqpt_type = 'coil_electric'
1243
1251
  sys_supp_htg_eqpt_type = 'coil_gas' if heating_fuel == 'NaturalGas'
1252
+ sys_supp_htg_eqpt_type = 'coil_hw' if standard.fuel_type_set.force_airloop_hot_water
1244
1253
  systems = []
1245
1254
  system_zones_map.sort.each do |sys_name, zones|
1246
1255
  sys_info = air_sys_comps_assumptions(sys_name: sys_name,
@@ -1258,7 +1267,8 @@ class ECMS
1258
1267
  sys_clg_eqpt_type: 'ccashp',
1259
1268
  sys_supp_fan_type: sys_info['sys_supp_fan_type'],
1260
1269
  sys_ret_fan_type: sys_info['sys_ret_fan_type'],
1261
- sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type']
1270
+ sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'],
1271
+ hw_loop: hw_loop
1262
1272
  )
1263
1273
  # Apply performance curves
1264
1274
  eqpt_name = 'Mitsubishi_Hyper_Heating_VRF_Outdoor_Unit RTU'
@@ -1417,12 +1427,16 @@ class ECMS
1417
1427
  ecm_system_zones_map_option:,
1418
1428
  standard:)
1419
1429
  hw_loop = nil
1430
+ if standard.fuel_type_set.force_airloop_hot_water || standard.fuel_type_set.necb_reference_hp_supp_fuel.to_s.downcase == "hot water"
1431
+ hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set)
1432
+ end
1420
1433
 
1421
1434
  # Get the heating fuel type from the system fuels object defined by the standards object
1422
1435
  heating_fuel = standard.fuel_type_set.ecm_fueltype
1423
1436
  # Set supplemental heaing for airloop
1424
1437
  sys_supp_htg_eqpt_type = 'coil_electric'
1425
1438
  sys_supp_htg_eqpt_type = 'coil_gas' if heating_fuel == 'NaturalGas'
1439
+ sys_supp_htg_eqpt_type = 'coil_hw' if standard.fuel_type_set.force_airloop_hot_water || standard.fuel_type_set.necb_reference_hp_supp_fuel.to_s.downcase == "hot water"
1426
1440
  # Update system zones map if needed
1427
1441
  system_zones_map = update_system_zones_map_keys(system_zones_map,'sys_1')
1428
1442
  system_zones_map = update_system_zones_map(model,system_zones_map,ecm_system_zones_map_option,'sys_1') if ecm_system_zones_map_option != 'NECB_Default'
@@ -1445,7 +1459,8 @@ class ECMS
1445
1459
  sys_clg_eqpt_type: 'ashp',
1446
1460
  sys_supp_fan_type: sys_info['sys_supp_fan_type'],
1447
1461
  sys_ret_fan_type: sys_info['sys_ret_fan_type'],
1448
- sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'])
1462
+ sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'],
1463
+ hw_loop: hw_loop)
1449
1464
  eqpt_name = 'HS11_PTHP'
1450
1465
  coil_cooling_dx_single_speed_apply_curves(clg_dx_coil,eqpt_name)
1451
1466
  coil_heating_dx_single_speed_apply_curves(htg_dx_coil,eqpt_name)
@@ -1488,7 +1503,7 @@ class ECMS
1488
1503
  # =============================================================================================================================
1489
1504
  # Apply efficiencies and performance curves for ECM "hs11_ashp_pthp"
1490
1505
  def apply_efficiency_ecm_hs11_ashp_pthp(model,standard)
1491
- fr_backup_coil_cap_as_dx_coil_cap = 0.5 # fraction of electric backup heating coil capacity assigned to dx heating coil
1506
+ fr_backup_coil_cap_as_dx_coil_cap = 0.5 # fraction of electric or hot-water backup heating coil capacity assigned to dx heating coil
1492
1507
  apply_efficiency_ecm_hs12_ashp_baseboard(model,standard)
1493
1508
  pthp_eqpt_name = 'HS11_PTHP'
1494
1509
  model.getAirLoopHVACs.sort.each do |isys|
@@ -1568,11 +1583,12 @@ class ECMS
1568
1583
 
1569
1584
  # Create one hot-water loop for hot-water baseboards if required
1570
1585
  hw_loop = nil
1571
- hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water'
1586
+ hw_loop = add_hotwater_loop(model: model, fuel_type_set: standard.fuel_type_set) if standard.fuel_type_set.baseboard_type == 'Hot Water' || standard.fuel_type_set.force_airloop_hot_water
1572
1587
 
1573
1588
  # Set supplemental heating fuel for airloop
1574
1589
  sys_supp_htg_eqpt_type = 'coil_electric'
1575
1590
  sys_supp_htg_eqpt_type = 'coil_gas' if heating_fuel == 'NaturalGas'
1591
+ sys_supp_htg_eqpt_type = 'coil_hw' if standard.fuel_type_set.force_airloop_hot_water
1576
1592
  systems = []
1577
1593
  system_zones_map.sort.each do |sys_name, zones|
1578
1594
  sys_info = air_sys_comps_assumptions(sys_name: sys_name,
@@ -1589,7 +1605,8 @@ class ECMS
1589
1605
  sys_clg_eqpt_type: 'ashp',
1590
1606
  sys_supp_fan_type: sys_info['sys_supp_fan_type'],
1591
1607
  sys_ret_fan_type: sys_info['sys_ret_fan_type'],
1592
- sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'])
1608
+ sys_setpoint_mgr_type: sys_info['sys_setpoint_mgr_type'],
1609
+ hw_loop: hw_loop)
1593
1610
  eqpt_name = 'NECB2015_ASHP'
1594
1611
  coil_cooling_dx_single_speed_apply_curves(clg_dx_coil,eqpt_name)
1595
1612
  coil_heating_dx_single_speed_apply_curves(htg_dx_coil,eqpt_name)
@@ -1814,7 +1831,7 @@ class ECMS
1814
1831
  loop_heat_rej_eqpt_type: 'none',
1815
1832
  loop_pump_type: 'variable_speed',
1816
1833
  loop_spm_type: 'Scheduled',
1817
- loop_setpoint: 50.0,
1834
+ loop_setpoint: 60.0,
1818
1835
  loop_temp_diff: 5.0)
1819
1836
  model.getCoilHeatingWaters.sort.each {|coil| hw_loop.addDemandBranchForComponent(coil)}
1820
1837
  hcapf_curve_name = "HEATPUMP_WATERTOWATER_HCAPF"
@@ -2124,7 +2141,7 @@ class ECMS
2124
2141
  loop_heat_rej_eqpt_type: 'none',
2125
2142
  loop_pump_type: 'variable_speed',
2126
2143
  loop_spm_type: 'Scheduled',
2127
- loop_setpoint: 50.0,
2144
+ loop_setpoint: 60.0,
2128
2145
  loop_temp_diff: 5.0)
2129
2146
  # set additional parameters for heating heat pump
2130
2147
  hw_loop_htg_eqpt.setCondenserType('AirSoure')
@@ -2152,7 +2169,7 @@ class ECMS
2152
2169
  hw_boilers.reverse().each {|boiler| boiler.addToNode(hw_loop_htg_eqpt_outlet_node)}
2153
2170
  # add setpoint manager at the exit of the heat pump heating comp
2154
2171
  sch = OpenStudio::Model::ScheduleConstant.new(model)
2155
- sch.setValue(50.0)
2172
+ sch.setValue(60.0)
2156
2173
  spm = OpenStudio::Model::SetpointManagerScheduled.new(model,sch)
2157
2174
  spm.setName("HeatPumpHtgSetpointManager")
2158
2175
  spm.addToNode(hw_loop_htg_eqpt_outlet_node)
@@ -2333,6 +2350,7 @@ class ECMS
2333
2350
  # Set supplemental heaing for airloop
2334
2351
  sys_supp_htg_eqpt_type = 'coil_electric'
2335
2352
  sys_supp_htg_eqpt_type = 'coil_gas' if heating_fuel == 'NaturalGas'
2353
+ sys_supp_htg_eqpt_type = 'coil_hw' if standard.fuel_type_set.force_airloop_hot_water
2336
2354
  # call ecm HS15 to add the air loop
2337
2355
  add_ecm_hs15_cawhp_fancoils(model: model,
2338
2356
  system_zones_map: system_zones_map,
@@ -3864,15 +3882,23 @@ class ECMS
3864
3882
  boiler_fueltype = standard.fuel_type_set.boiler_fueltype
3865
3883
  backup_boiler_fueltype = standard.fuel_type_set.backup_boiler_fueltype
3866
3884
  baseboard_type = standard.fuel_type_set.baseboard_type
3885
+ heating_coil_type_sys2 = standard.fuel_type_set.heating_coil_type_sys2
3886
+ heating_coil_type_sys3 = standard.fuel_type_set.heating_coil_type_sys3
3887
+ heating_coil_type_sys4 = standard.fuel_type_set.heating_coil_type_sys4
3888
+ heating_coil_type_sys6 = standard.fuel_type_set.heating_coil_type_sys6
3867
3889
  mau_heating_coil_type = 'none'
3868
3890
 
3869
3891
  # Create the hot water loop if necessary.
3870
3892
  hw_loop = standard.create_hw_loop_if_required(
3871
- baseboard_type,
3872
- boiler_fueltype,
3873
- backup_boiler_fueltype,
3874
- mau_heating_coil_type,
3875
- model
3893
+ baseboard_type: baseboard_type,
3894
+ boiler_fueltype: boiler_fueltype,
3895
+ backup_boiler_fueltype: backup_boiler_fueltype,
3896
+ mau_heating_coil_type: mau_heating_coil_type,
3897
+ model: model,
3898
+ heating_coil_type_sys2: heating_coil_type_sys2,
3899
+ heating_coil_type_sys3: heating_coil_type_sys3,
3900
+ heating_coil_type_sys4: heating_coil_type_sys4,
3901
+ heating_coil_type_sys6: heating_coil_type_sys6
3876
3902
  )
3877
3903
 
3878
3904
  # Add baseboard heaters to each heated zone.