Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add unmet water heater loads EMS program #1502

Open
wants to merge 102 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
6335d24
Add unmet loads EMS program
jmaguire1 Oct 4, 2023
e70d0e9
busted by rubocop :)
jmaguire1 Oct 4, 2023
23381f8
First cut at setting up annual unmet water heating loads.
joseph-robertson Oct 5, 2023
ddc558c
Merge branch 'master' into unmet_wh_loads
joseph-robertson Oct 5, 2023
dffe6f6
Wrong direction for sag calculation
jmaguire1 Oct 6, 2023
92c0e97
Some updates to break out showers from "fixtures"
jmaguire1 Oct 12, 2023
4aa4a0c
One more change towards adding showers back in
jmaguire1 Oct 12, 2023
ec8cef2
Add shower column to constants
jmaguire1 Oct 12, 2023
9d3b025
Fix shower schedules for smooth occupancy
jmaguire1 Oct 12, 2023
7658e4f
Still in progress, but: working on restructuring the calculation base…
jmaguire1 Oct 30, 2023
6a8b015
Working again. Still needs some cleanup and review
jmaguire1 Oct 31, 2023
44c4c61
Merge remote-tracking branch 'remotes/origin/master' into unmet_wh_loads
jmaguire1 Oct 31, 2023
c59eaec
Add to changelog, fix merge conflicts, rubocop
jmaguire1 Oct 31, 2023
6d68919
Fix some typos
jmaguire1 Oct 31, 2023
a58dcbf
rename constant for consistency with schedule:file
jmaguire1 Nov 1, 2023
04b94ad
Major refactor of the unmet WH load calculation
jmaguire1 Nov 16, 2023
227138e
Fix unmet energy calc (incorrectly passing shower peak flow rate)
jmaguire1 Dec 4, 2023
e250890
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Jan 10, 2024
caae214
remove print statement, rubocop
jmaguire1 Jan 10, 2024
2bae66b
Update some output variable names, add showers to unavailable_periods…
jmaguire1 Jan 17, 2024
3044382
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Jan 24, 2024
0379ace
Bit of code cleanup and adding FIXMEs to address.
joseph-robertson Jan 24, 2024
70a9868
Oops, showers_schedule_obj does get used.
joseph-robertson Jan 24, 2024
015383e
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Feb 5, 2024
a58ada4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Apr 10, 2024
6421080
oops, missed one update in the merge
jmaguire1 Apr 10, 2024
c4239f0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 May 14, 2024
258c28f
Remove total shower time, only output unmet shower time (in hours) an…
jmaguire1 May 14, 2024
921a0f0
oops, missed removing shower time in one spot
jmaguire1 May 14, 2024
dc3a752
Some fixes for unmet showers with multiple WHs.
jmaguire1 May 28, 2024
d513cf4
Clean up EMS a bit, change hot water usage be 0 during outages (helps…
jmaguire1 Jul 23, 2024
309714c
This should actually exclude solar storage tanks from 2 tank systems,…
jmaguire1 Jul 23, 2024
8ed29e1
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Jul 23, 2024
1641ec1
Bugfix.
shorowit Jul 23, 2024
6e63c6c
tasks.rb update_hpxmls
shorowit Jul 23, 2024
ca76f23
Some more fixes/cleanup.
shorowit Jul 23, 2024
11d46ea
Bunch of cleanup and test updates.
joseph-robertson Jul 24, 2024
6b630e8
Try a sample file with undersized tank water heater.
joseph-robertson Jul 24, 2024
47a60a4
Remove warning for both shower schedule types provided.
joseph-robertson Jul 24, 2024
b22a027
Update reporting measure with include argument for unmet loads timese…
joseph-robertson Jul 24, 2024
51dbd2e
Update reporting measure test for unmet loads outputs.
joseph-robertson Jul 24, 2024
32fdfdd
Update run_simulation with unmet loads timeseries request option.
joseph-robertson Jul 24, 2024
6def768
Start updating the docs.
joseph-robertson Jul 24, 2024
f0d68ea
Update the changelog entry.
joseph-robertson Jul 24, 2024
7e939bc
Few more fixes and updates.
joseph-robertson Jul 24, 2024
1daadab
Fix comments. [ci skip]
joseph-robertson Jul 24, 2024
1737481
Catch target water temperature warnings for new dhw undersized sample…
joseph-robertson Jul 24, 2024
f28fceb
Minor fix to ems program.
joseph-robertson Jul 24, 2024
44a980a
Update the docs. [ci skip]
joseph-robertson Jul 24, 2024
e6b6ee0
Spaces in ems program and exceptions for 10x checks.
joseph-robertson Jul 24, 2024
7d96e30
Latest results.
Jul 24, 2024
e36fd4e
Change energy annual units to kBtu and timeseries units to Btu.
joseph-robertson Jul 24, 2024
3b38d32
Relax expected results for dhw-undersized.
joseph-robertson Jul 24, 2024
b55a993
Updates due to output name change.
joseph-robertson Jul 25, 2024
d8f0bc2
Latest results.
Jul 25, 2024
20449e9
Clean up loop that finds appropriate tank.
joseph-robertson Jul 25, 2024
624bfd6
Add sample files for undersized tankless, heat pump, and multiple.
joseph-robertson Jul 25, 2024
e572c5f
Refactor unmet loads program for multiple water heaters.
joseph-robertson Jul 25, 2024
f75b4e3
Clean up expected warnings and checks.
joseph-robertson Jul 25, 2024
0fee44d
Typo.
joseph-robertson Jul 25, 2024
4a7a1d1
Expect err and run log warnings.
joseph-robertson Jul 25, 2024
bb41452
Latest results.
Jul 25, 2024
b0ad6ab
Change shower draws to be a % of fixtures (if smooth profiles) based …
jmaguire1 Aug 6, 2024
d70bbe1
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Aug 6, 2024
3d506df
Merge branch 'master' into unmet_wh_loads
joseph-robertson Aug 7, 2024
593d488
Try WarmupFlag in program to avoid counting first timestep.
joseph-robertson Aug 7, 2024
c5e21b8
Add unmet loads method for building-level EMS program.
joseph-robertson Aug 7, 2024
992fdb2
Merge branch 'master' into unmet_wh_loads
joseph-robertson Aug 8, 2024
a0288de
Skip building-level EMS program if no water heating systems.
joseph-robertson Aug 8, 2024
169617f
Try changing unit multiplier tolerances.
joseph-robertson Aug 8, 2024
5f5cc93
Latest results.
Aug 8, 2024
45b6200
Merge branch 'master' into unmet_wh_loads
joseph-robertson Aug 13, 2024
6f364b1
Latest results.
Aug 13, 2024
2177b8a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Sep 3, 2024
0c8732a
Oops, messed this up in merging. Might still have to fix one or two m…
jmaguire1 Sep 3, 2024
966f0b8
Update unmet shower program to account for latest OS-HPXML changes
jmaguire1 Sep 3, 2024
354360a
Go back to more generic unmet loads program (rather than unmet shower…
jmaguire1 Sep 3, 2024
773ae8b
missed one "." to "::" for stochastic showers
jmaguire1 Sep 3, 2024
7c878ea
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Sep 3, 2024
41105c5
Fix schedules tests to match latest OS-HPXML updates
jmaguire1 Sep 11, 2024
1a905c7
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
jmaguire1 Sep 11, 2024
a529822
Latest results.
Sep 11, 2024
9cccccf
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Sep 18, 2024
85145ed
Latest results.
Sep 18, 2024
2b5c158
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Sep 24, 2024
cb8ecd8
Latest results.
Sep 24, 2024
2aff460
Merge branch 'master' into unmet_wh_loads
joseph-robertson Sep 25, 2024
442bd58
Updates to sample files and reported outputs.
joseph-robertson Sep 25, 2024
07c650b
Merge branch 'master' into unmet_wh_loads
joseph-robertson Oct 1, 2024
6bc29d5
Clean up new methods and fill out TODOs.
joseph-robertson Oct 1, 2024
82e0153
Get name of the schedule, not the object.
joseph-robertson Oct 1, 2024
42169b2
Avoid divide by zero when no dhw.
joseph-robertson Oct 1, 2024
afadd97
Merge branch 'master' into unmet_wh_loads
joseph-robertson Oct 1, 2024
d1db089
Update reporting measure descriptions and tests.
joseph-robertson Oct 1, 2024
0a7ba8a
Revert stuff in workflow tests util file.
joseph-robertson Oct 1, 2024
1224612
Update the docs. [ci skip]
joseph-robertson Oct 1, 2024
52e9681
Latest results.
Oct 1, 2024
1157fc8
Merge branch 'master' into unmet_wh_loads
joseph-robertson Oct 10, 2024
6df3ec6
Update the changelog.
joseph-robertson Oct 10, 2024
836b259
Latest results.
Oct 10, 2024
be3f8b9
Merge branch 'master' into unmet_wh_loads
joseph-robertson Oct 14, 2024
32d0767
Latest results.
Oct 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions BuildResidentialScheduleFile/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>build_residential_schedule_file</name>
<uid>f770b2db-1a9f-4e99-99a7-7f3161a594b1</uid>
<version_id>d6668365-a78e-4e88-afa1-514e180dc8e2</version_id>
<version_modified>2023-09-19T22:23:01Z</version_modified>
<version_id>b894dc31-811f-428d-bcc3-47913cab592c</version_id>
<version_modified>2023-10-31T20:12:00Z</version_modified>
<xml_checksum>03F02484</xml_checksum>
<class_name>BuildResidentialScheduleFile</class_name>
<display_name>Schedule File Builder</display_name>
Expand All @@ -22,7 +22,7 @@
<argument>
<name>schedules_column_names</name>
<display_name>Schedules: Column Names</display_name>
<description>A comma-separated list of the column names to generate. If not provided, defaults to all columns. Possible column names are: occupants, lighting_interior, lighting_garage, cooking_range, dishwasher, clothes_washer, clothes_dryer, ceiling_fan, plug_loads_other, plug_loads_tv, hot_water_dishwasher, hot_water_clothes_washer, hot_water_fixtures.</description>
<description>A comma-separated list of the column names to generate. If not provided, defaults to all columns. Possible column names are: occupants, lighting_interior, lighting_garage, cooking_range, dishwasher, clothes_washer, clothes_dryer, ceiling_fan, plug_loads_other, plug_loads_tv, hot_water_dishwasher, hot_water_clothes_washer, hot_water_fixtures, hot_water_showers.</description>
<type>String</type>
<required>false</required>
<model_dependent>false</model_dependent>
Expand Down Expand Up @@ -184,7 +184,7 @@
<filename>schedules.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>51D9D15E</checksum>
<checksum>E3BE5673</checksum>
</file>
<file>
<filename>schedules_config.md</filename>
Expand Down
4 changes: 3 additions & 1 deletion BuildResidentialScheduleFile/resources/schedules.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ def self.export_columns
SchedulesFile::ColumnPlugLoadsTV,
SchedulesFile::ColumnHotWaterDishwasher,
SchedulesFile::ColumnHotWaterClothesWasher,
SchedulesFile::ColumnHotWaterFixtures]
SchedulesFile::ColumnHotWaterFixtures,
SchedulesFile::ColumnHotWaterShowers]
end

def schedules
Expand Down Expand Up @@ -531,6 +532,7 @@ def create_stochastic_schedules(args:)
shower_activity_sch = aggregate_array(shower_activity_sch, @minutes_per_step)
shower_peak_flow = shower_activity_sch.max
showers = shower_activity_sch.map { |flow| flow / shower_peak_flow }
@schedules[SchedulesFile::ColumnHotWaterShowers] = showers

random_offset = (prng.rand * 2 * offset_range).to_i - offset_range
sink_activity_sch = sink_activity_sch.rotate(-4 * 60 + random_offset) # 4 am shifting
Expand Down
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ __New Features__
- Always validate the HPXML file before applying defaults and only optionally validate the final HPXML file.
- Battery losses now split between charging and discharging.
- Interior/exterior window shading multipliers are now modeled using the EnergyPlus incident solar multiplier.
- Added metrics for unmet hot water loads

__Bugfixes__
- Fixes battery resilience output to properly incorporate battery losses.
Expand Down
107 changes: 106 additions & 1 deletion HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ def self.create(hpxml, runner, model, hpxml_path, epw_path, weather, output_dir,
add_ceiling_fans(runner, model, weather, spaces)

# Hot Water
add_hot_water_and_appliances(runner, model, weather, spaces)
hw_plant_loop = add_hot_water_and_appliances(runner, model, weather, spaces)

# Plug Loads & Fuel Loads & Lighting
add_mels(runner, model, spaces)
Expand All @@ -232,6 +232,7 @@ def self.create(hpxml, runner, model, hpxml_path, epw_path, weather, output_dir,

# Output
add_unmet_hours_output(model, spaces)
add_unmet_wh_loads(runner, model, weather, hw_plant_loop)
add_loads_output(model, spaces, add_component_loads)
set_output_files(model)
# Uncomment to debug EMS
Expand Down Expand Up @@ -1285,6 +1286,7 @@ def self.add_hot_water_and_appliances(runner, model, weather, spaces)
unavailable_periods = Schedule.get_unavailable_periods(runner, SchedulesFile::ColumnWaterHeater, @hpxml.header.unavailable_periods)
has_uncond_bsmnt = @hpxml.has_location(HPXML::LocationBasementUnconditioned)
plantloop_map = {}
sys_id = nil
@hpxml.water_heating_systems.each do |water_heating_system|
loc_space, loc_schedule = get_space_or_schedule_from_location(water_heating_system.location, model, spaces)

Expand Down Expand Up @@ -1317,6 +1319,8 @@ def self.add_hot_water_and_appliances(runner, model, weather, spaces)

# Add combi-system EMS program with water use equipment information
Waterheater.apply_combi_system_EMS(model, @hpxml.water_heating_systems, plantloop_map)

return plantloop_map[sys_id]
shorowit marked this conversation as resolved.
Show resolved Hide resolved
end

def self.add_cooling_system(model, spaces, airloop_map)
Expand Down Expand Up @@ -1889,6 +1893,107 @@ def self.add_unmet_hours_output(model, spaces)
program_calling_manager.addProgram(program)
end

def self.add_unmet_wh_loads(runner, model, weather, hw_plant_loop)
@hpxml.water_heating_systems.each do |water_heating_system|
# Get shower schedule max value
shower_peak_flow = HotWaterAndAppliances.add_showers_and_calculate_max(model, runner, @hpxml, weather, water_heating_system, @eri_version, @schedules_file, @hpxml.header.unavailable_periods)

# Get the water storage tanks for the outlet temp sensor
num_tanks = 0
tank = nil

hw_plant_loop.components.each do |c|
next unless c.to_WaterHeaterMixed.is_initialized

tank = c.to_WaterHeaterMixed.get
num_tanks += 1
end
hw_plant_loop.components.each do |c|
next unless c.to_WaterHeaterStratified.is_initialized

tank = c.to_WaterHeaterStratified.get
num_tanks += 1
end

if num_tanks > 1
runner.registerError("Found more WHs than expected. There are #{num_tanks} water heaters instead of 1.")
end

# EMS sensors
mixed_setpoint_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
mixed_setpoint_sensor.setName('res_shower_mixsp')
mixed_setpoint_sensor.setKeyName('mixed water temperature schedule')

wh_temp_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Water Heater Use Side Outlet Temperature')
wh_temp_sensor.setName("#{tank.name} Outlet Temperature")
wh_temp_sensor.setKeyName("#{tank.name}")

shower_flow_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
shower_flow_sensor.setName('Shower Volume')
shower_flow_sensor.setKeyName('hot_water_showers')

# cw_flow_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Water Use Equipment Hot Water Volume')
# cw_flow_sensor.setName('Clothes Washer Volume')
# cw_flow_sensor.setKeyName('clothes washer')

# dw_flow_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Water Use Equipment Hot Water Volume')
# dw_flow_sensor.setName('Dishwasher Volume')
# dw_flow_sensor.setKeyName('dishwasher')

# fx_flow_sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Water Use Equipment Hot Water Volume')
# fx_flow_sensor.setName('Fixture Volume')
# fx_flow_sensor.setKeyName('dhw fixtures')

# EMS program
unmet_wh_loads_program = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
unmet_wh_loads_program.setName(Constants.ObjectNameUnmetLoadsProgram)
unmet_wh_loads_program.addLine("If #{shower_flow_sensor.name} > 0")
unmet_wh_loads_program.addLine('Set ShowerTime=SystemTimeStep')
unmet_wh_loads_program.addLine('Else')
unmet_wh_loads_program.addLine('Set ShowerTime=0')
unmet_wh_loads_program.addLine('EndIf')
unmet_wh_loads_program.addLine("If (#{shower_flow_sensor.name} > 0) && (#{wh_temp_sensor.name} < #{mixed_setpoint_sensor.name})")
# unmet_wh_loads_program.addLine("If (#{shower_flow_sensor.name} > 0) && (49 < #{mixed_setpoint_sensor.name})")
unmet_wh_loads_program.addLine('Set ShowerSagTime=SystemTimeStep')
# unmet_wh_loads_program.addLine("Set ShowerE=#{shower_flow_sensor.name} * #{shower_peak_flow} * 4141170 * (49 - #{mixed_setpoint_sensor.name})")
unmet_wh_loads_program.addLine("Set ShowerE=#{shower_flow_sensor.name} * #{shower_peak_flow} * 4141170 * (#{wh_temp_sensor.name} - #{mixed_setpoint_sensor.name})")
unmet_wh_loads_program.addLine('Else')
unmet_wh_loads_program.addLine('Set ShowerSagTime=0')
unmet_wh_loads_program.addLine('Set ShowerE=0')
unmet_wh_loads_program.addLine('EndIf')

# ProgramCallingManagers
program_calling_manager = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model)
program_calling_manager.setName("#{unmet_wh_loads_program.name} calling manager")
program_calling_manager.setCallingPoint('EndOfSystemTimestepAfterHVACReporting')
program_calling_manager.addProgram(unmet_wh_loads_program)

# # output variables
# shower_time_output_var = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'ShowerTime')
# shower_time_output_var.setName('ShowerTime')
# shower_time_output_var.setTypeOfDataInVariable('Summed')
# shower_time_output_var.setUpdateFrequency('SystemTimestep')
# shower_time_output_var.setEMSProgramOrSubroutineName(unmet_wh_loads_program)
# shower_time_output_var.setUnits('hr')

# # output variables
# shower_unmet_energy_output_var = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'ShowerE')
# shower_unmet_energy_output_var.setName('ShowerE')
# shower_unmet_energy_output_var.setTypeOfDataInVariable('Summed')
# shower_unmet_energy_output_var.setUpdateFrequency('SystemTimestep')
# shower_unmet_energy_output_var.setEMSProgramOrSubroutineName(unmet_wh_loads_program)
# shower_unmet_energy_output_var.setUnits('J')

# # output variables
# shower_unmet_time_output_var = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'ShowerSagTime')
# shower_unmet_time_output_var.setName('ShowerSagTime')
# shower_unmet_time_output_var.setTypeOfDataInVariable('Summed')
# shower_unmet_time_output_var.setUpdateFrequency('SystemTimestep')
# shower_unmet_time_output_var.setEMSProgramOrSubroutineName(unmet_wh_loads_program)
# shower_unmet_time_output_var.setUnits('hr')
end
end

def self.add_loads_output(model, spaces, add_component_loads)
conditioned_zone = spaces[HPXML::LocationConditionedSpace].thermalZone.get

Expand Down
22 changes: 11 additions & 11 deletions HPXMLtoOpenStudio/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>7172e5c7-162c-4205-a7fc-adcb3de140e9</version_id>
<version_modified>2023-10-18T17:47:01Z</version_modified>
<version_id>cebd214f-49dc-4ac9-81bb-dcc8a9890513</version_id>
<version_modified>2023-10-31T20:17:56Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -130,7 +130,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>FD70CB3F</checksum>
<checksum>407C727D</checksum>
</file>
<file>
<filename>airflow.rb</filename>
Expand All @@ -148,7 +148,7 @@
<filename>constants.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>E73FC04E</checksum>
<checksum>A1E4A089</checksum>
</file>
<file>
<filename>constructions.rb</filename>
Expand Down Expand Up @@ -232,7 +232,7 @@
<filename>hotwater_appliances.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>DE9728DA</checksum>
<checksum>BFC89603</checksum>
</file>
<file>
<filename>hpxml.rb</filename>
Expand Down Expand Up @@ -322,7 +322,7 @@
<filename>output.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>C73BDCB4</checksum>
<checksum>58656952</checksum>
</file>
<file>
<filename>psychrometrics.rb</filename>
Expand Down Expand Up @@ -352,19 +352,19 @@
<filename>schedule_files/occupancy-stochastic-10-mins.csv</filename>
<filetype>csv</filetype>
<usage_type>resource</usage_type>
<checksum>D4373DC9</checksum>
<checksum>811F8B96</checksum>
</file>
<file>
<filename>schedule_files/occupancy-stochastic-30-mins.csv</filename>
<filetype>csv</filetype>
<usage_type>resource</usage_type>
<checksum>D4373DC9</checksum>
<checksum>811F8B96</checksum>
</file>
<file>
<filename>schedule_files/occupancy-stochastic.csv</filename>
<filetype>csv</filetype>
<usage_type>resource</usage_type>
<checksum>DEED74EA</checksum>
<checksum>EDB7F257</checksum>
</file>
<file>
<filename>schedule_files/setpoints-10-mins.csv</filename>
Expand Down Expand Up @@ -424,7 +424,7 @@
<filename>schedules.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>DD62935D</checksum>
<checksum>931ED0F1</checksum>
</file>
<file>
<filename>simcontrols.rb</filename>
Expand Down Expand Up @@ -460,7 +460,7 @@
<filename>waterheater.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>38F19A13</checksum>
<checksum>DC68703C</checksum>
</file>
<file>
<filename>weather.rb</filename>
Expand Down
8 changes: 8 additions & 0 deletions HPXMLtoOpenStudio/resources/constants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,10 @@ def self.ObjectNameRoomAirConditioner
return 'room ac'
end

def self.ObjectNameShowers
return 'hot_water_showers'
end

def self.ObjectNameSolarHotWater
return 'solar hot water'
end
Expand All @@ -414,6 +418,10 @@ def self.ObjectNameUnmetHoursProgram
return 'unmet hours program'
end

def self.ObjectNameUnmetLoadsProgram
return 'unmet loads program'
end

def self.ObjectNameWaterHeater
return 'water heater'
end
Expand Down
Loading