urbanopt-cli 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/CMakeLists.txt +9 -9
- data/Gemfile +10 -12
- data/README.md +1 -0
- data/example_files/Gemfile +26 -10
- data/example_files/mappers/Baseline.rb +9 -0
- data/example_files/mappers/CreateBar.rb +2 -0
- data/example_files/mappers/Floorspace.rb +12 -10
- data/example_files/mappers/floorspace_workflow.osw +9 -0
- data/example_files/residential/clothes_washer.tsv +1 -1
- data/example_files/residential/water_heater.tsv +1 -1
- data/example_files/resources/hpxml-measures/.circleci/config.yml +20 -0
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +13 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +583 -334
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +687 -586
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +21 -22
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules.rb +34 -24
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/schedules_config.yml +14 -1
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-coal.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-50percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-appliances-dehumidifier-ief.osw → base-appliances-dehumidifier-ief-portable.osw} +34 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier-ief-whole-home.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-dehumidifier.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-modified.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-oil.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-propane.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-appliances-wood.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-flat.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-radiant-barrier.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-unvented-insulated-roof.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-atticroof-vented.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared-preconditioning.osw → base-bldgtype-multifamily-shared-mechvent-preconditioning.osw} +47 -48
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-mechvent-shared.osw → base-bldgtype-multifamily-shared-mechvent.osw} +47 -48
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-pv-shared.osw → base-bldgtype-multifamily-shared-pv.osw} +49 -50
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-bldgtype-multifamily-shared-water-heater.osw +365 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-multifamily.osw → base-bldgtype-multifamily.osw} +43 -44
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-single-family-attached.osw → base-bldgtype-single-family-attached.osw} +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless-outside.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-combi-tankless.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-dwhr.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-outside.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-standbyloss.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect-with-solar-fraction.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-indirect.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-electric.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-hpwh.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-jacket-indirect.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-low-flow-fixtures.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-demand.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-manual.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-nocontrol.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-temperature.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-recirc-timer.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-evacuated-tube.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-direct-ics.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-indirect-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-solar-thermosyphon-flat-plate.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-coal.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-elec-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-outside.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-outside.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-uef.osw +362 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump-with-solar.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-oil.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tank-wood.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-outside.osw +33 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric-uef.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-electric.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-uef.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar-fraction.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas-with-solar.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-dhw-tankless-propane.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories-garage.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-2stories.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-1.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-2.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-4.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-beds-5.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-garage.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-ach-house-pressure.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm-house-pressure.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-cfm50.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-flue.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-infil-natural-ach.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-overhangs.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-enclosure-windows-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-ambient.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-conditioned-basement-slab-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-slab.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-assembly-r.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement-wall-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unconditioned-basement.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-unvented-crawlspace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-foundation-vented-crawlspace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-air-to-air-heat-pump-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-coal-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-elec-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-central-ac-1-speed.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-gas-only.osw +33 -34
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-oil-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-propane-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-boiler-wood-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-only-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.osw +35 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-dual-fuel-mini-split-heat-pump-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ducts-leakage-percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-elec-resistance-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-furnace-gas.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only-ducted.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-evap-cooler-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fireplace-wood-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-fixed-heater-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-floor-furnace-propane-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-central-ac-1-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-elec-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-2-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-central-ac-var-speed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-gas-room-ac.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-oil-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-propane-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-furnace-wood-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-ground-to-air-heat-pump.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-air-conditioner-only-ductless.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-cooling-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted-heating-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ducted.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-mini-split-heat-pump-ductless.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-none.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-portable-heater-gas-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only-33percent.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-room-ac-only.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-setpoints.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-oil-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-stove-wood-pellets-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-undersized.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-hvac-wall-furnace-elec-only.osw +34 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-ceiling-fans.osw +34 -36
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-lighting-detailed.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-AMY-2012.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-baltimore-md.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-dallas-tx.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-duluth-mn.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-location-miami-fl.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-balanced.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-bath-kitchen-fans.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis-evap-cooler-only-ducted.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-cfis.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv-atre-asre.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-erv.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-exhaust.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv-asre.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-hrv.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-supply.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-mechvent-whole-house-fan.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-defaults.osw +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon.osw +39 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-loads-large-uncommon2.osw +39 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-neighbor-shading.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-misc-usage-multiplier.osw +30 -32
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-pv.osw +29 -31
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-stochastic.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-schedules-user-specified.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-calendar-year-custom.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-custom.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-daylight-saving-disabled.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-runperiod-1-month.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base-simcontrol-timestep-10-mins.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/base.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +19 -8
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-auto.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-dhw-solar-latitude.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-enclosure-garage-partially-protruded.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-hvac-programmable-thermostat.osw +369 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-plug-loads-additional-multipliers.osw +361 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-pv-roofpitch.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{extra-dhw-shared-water-heater.osw → extra-schedules-random-seed.osw} +47 -50
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-fireplace.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-heating-system-portable-heater.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-second-refrigerator.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/extra-vacancy-6-months.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-attic-with-floor-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/conditioned-basement-with-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/cooling-system-and-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/dhw-indirect-without-boiler.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/ducts-location-and-areas-not-same-type.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/heating-system-and-heat-pump.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-crawlspace-zero-foundation-height.osw +41 -42
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-bottom-slab-non-zero-foundation-height.osw +41 -42
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/multifamily-no-building-orientation.osw +40 -41
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-hvac-programmable-thermostat.osw → invalid_files/multipliers-without-fuel-loads.osw} +31 -33
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/{base-dhw-uef.osw → invalid_files/multipliers-without-plug-loads.osw} +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-electric-heat-pump-water-heater.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-ceiling-fan-quantity.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/non-integer-geometry-num-bathrooms.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/second-heating-system-serves-majority-heat.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-ambient.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-attached-no-building-orientation.osw +35 -37
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-finished-basement-zero-foundation-height.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/single-family-detached-slab-non-zero-foundation-height.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/slab-non-zero-foundation-height-above-grade.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unconditioned-basement-with-wall-and-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-attic-with-floor-and-roof-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/unvented-crawlspace-with-wall-and-ceiling-insulation.osw +36 -38
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-attic-with-floor-and-roof-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/invalid_files/vented-crawlspace-with-wall-and-ceiling-insulation.osw +33 -35
- data/example_files/resources/hpxml-measures/Gemfile +0 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +141 -129
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +183 -153
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/BaseElements.xsd +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/EPvalidator.xml +247 -121
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLDataTypes.xsd +0 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/HPXMLvalidator.xml +434 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +28 -35
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +4 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +60 -53
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +11 -15
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/generator.rb +81 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +3 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +21 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +1150 -1072
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +799 -389
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +227 -351
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +122 -89
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +2 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +0 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +8 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +23 -21
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +8 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +80 -19
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +9 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +103 -72
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +110 -37
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +16 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_constructions.rb +109 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +1747 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +99 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +5 -16
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +23 -25
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +54 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +10 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +10 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +77 -60
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +186 -34
- data/example_files/resources/hpxml-measures/README.md +1 -0
- data/example_files/resources/hpxml-measures/Rakefile +2 -9
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.rb +278 -254
- data/example_files/resources/hpxml-measures/SimulationOutputReport/measure.xml +32 -5
- data/example_files/resources/hpxml-measures/SimulationOutputReport/resources/constants.rb +1 -2
- data/example_files/resources/hpxml-measures/SimulationOutputReport/tests/output_report_test.rb +73 -137
- data/example_files/resources/hpxml-measures/docs/source/build_residential_hpxml.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/conf.py +7 -4
- data/example_files/resources/hpxml-measures/docs/source/getting_started.rst +4 -4
- data/example_files/resources/hpxml-measures/docs/source/index.rst +2 -2
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +4 -5
- data/example_files/resources/hpxml-measures/docs/source/nstatic/stylesheet.css +13 -1
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +2340 -0
- data/example_files/resources/hpxml-measures/docs/source/{simulation_output_report.rst → workflow_outputs.rst} +18 -16
- data/example_files/resources/hpxml-measures/tasks.rb +1154 -669
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +64 -20
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-50percent.xml +523 -524
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-appliances-dehumidifier-ief.xml → base-appliances-dehumidifier-ief-portable.xml} +3 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +524 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +523 -524
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +563 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +511 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +632 -634
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +530 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +516 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-multifamily-buffer-space.xml → base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-non-freezing-space.xml → base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-heated-space.xml → base-bldgtype-multifamily-adjacent-to-other-heated-space.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-enclosure-other-housing-unit.xml → base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml} +30 -59
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +426 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +457 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +429 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +469 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +409 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +439 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +408 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +411 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +445 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +408 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +438 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +410 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +445 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +440 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +459 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +451 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +465 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-mechvent-shared-multiple.xml → base-bldgtype-multifamily-shared-mechvent-multiple.xml} +35 -410
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +488 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +472 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +464 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +457 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +450 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +447 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +606 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +517 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +517 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +550 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +552 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +566 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +526 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +566 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +565 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +523 -525
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +495 -497
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/{invalid_files/invalid-window-interior-shading.xml → base-dhw-tank-elec-uef.xml} +8 -9
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-flowrate.xml → base-dhw-tank-heat-pump-uef.xml} +6 -13
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +568 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +660 -664
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +635 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +2473 -2493
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +753 -755
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-interior-shading.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +503 -505
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +497 -497
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +723 -729
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-interior-insulation.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +684 -688
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +608 -610
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +626 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +563 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +560 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +571 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +520 -522
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +550 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +580 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +533 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +564 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +564 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +563 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +510 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +553 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +526 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +506 -505
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +563 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +548 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +550 -550
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +577 -579
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ideal-air.xml +498 -500
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +549 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +512 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +556 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +519 -518
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple2.xml +834 -837
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +487 -489
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +563 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat-detailed.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-programmable-thermostat.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +513 -513
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +572 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-detailed.xml +584 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +487 -489
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +515 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +539 -541
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +575 -577
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +793 -795
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +573 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +571 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +476 -495
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +753 -833
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +740 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +549 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shelter-coefficient.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +723 -725
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-stochastic.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-user-specified.xml +2 -4
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +568 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +565 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize-manual-s-oversize-allowances.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-1-speed-autosize.xml +559 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize-manual-s-oversize-allowances.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-2-speed-autosize.xml +556 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize-manual-s-oversize-allowances.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-air-to-air-heat-pump-var-speed-autosize.xml +556 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-elec-only-autosize.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-central-ac-1-speed-autosize.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-boiler-gas-only-autosize.xml +519 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-1-speed-autosize.xml +549 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-2-speed-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-only-var-speed-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-central-ac-plus-air-to-air-heat-pump-heating-autosize.xml +575 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-autosize.xml +560 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-dual-fuel-mini-split-heat-pump-ducted-autosize.xml +559 -558
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-elec-resistance-only-autosize.xml +509 -511
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-evap-cooler-furnace-gas-autosize.xml +552 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-floor-furnace-propane-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-elec-only-autosize.xml +546 -548
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-2-speed-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-central-ac-var-speed-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-only-autosize.xml +549 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-furnace-gas-room-ac-autosize.xml +557 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize-manual-s-oversize-allowances.xml +562 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-ground-to-air-heat-pump-autosize.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-air-conditioner-only-ducted-autosize.xml +548 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize-manual-s-oversize-allowances.xml +561 -560
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-autosize.xml +558 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-cooling-only-autosize.xml +553 -552
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-mini-split-heat-pump-ducted-heating-only-autosize.xml +558 -557
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-room-ac-only-autosize.xml +508 -510
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-stove-oil-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/hvac_autosizing/base-hvac-wall-furnace-elec-only-autosize.xml +512 -512
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cfis-with-hydronic-distribution.xml +533 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-dryer-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/clothes-washer-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/cooking-range-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-frac-load-served.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-uef.xml → invalid_files/dhw-invalid-ef-tank.xml} +3 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dhw-invalid-uef-tank-heat-pump.xml +563 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/dishwasher-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location-unconditioned-space.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duct-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/duplicate-id.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-attic-missing-roof.xml +545 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-exterior-foundation-wall.xml +542 -544
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-basement-missing-slab.xml +545 -545
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-floor-area-exceeds-cfa.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-exterior-wall.xml +612 -616
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-roof-ceiling.xml +625 -629
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-garage-missing-slab.xml +609 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-ceiling-roof.xml +549 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-exterior-wall.xml +471 -473
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/enclosure-living-missing-floor-slab.xml +534 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities.xml +561 -560
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/heat-pump-mixed-fixed-and-autosize-capacities2.xml +562 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-cooling.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-multiple-attached-heating.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-distribution-return-duct-leakage-missing.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-cooling.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-dse-multiple-attached-heating.xml +547 -549
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-frac-load-served.xml +913 -912
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/{invalid-calendar-year.xml → hvac-inconsistent-fan-powers.xml} +8 -5
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/hvac-invalid-distribution-system-type.xml +569 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-boolean.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-float.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-datatype-integer.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-daylight-saving.xml +568 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-distribution-cfa-served.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-epw-filepath.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-equipment.xml +465 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type-surfaces.xml +643 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-input-parameters.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-neighbor-shading-azimuth.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-desuperheater.xml +552 -551
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-relatedhvac-dhw-indirect.xml +518 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-runperiod.xml +563 -565
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-schema-version.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-timestep.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-window-height.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/lighting-fractions.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-duct-location.xml +909 -908
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/missing-elements.xml +559 -561
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-appliance.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-duct.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-surface.xml +564 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/multifamily-reference-water-heater.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-roof.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/net-area-negative-wall.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/num-bedrooms-exceeds-limit.xml +562 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/orphaned-hvac-distribution.xml +545 -547
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerator-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-multiple-primary.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/refrigerators-no-primary.xml +567 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-desuperheater.xml +565 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/repeated-relatedhvac-dhw-indirect.xml +527 -529
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/slab-zero-exposed-perimeter.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-combi-tankless.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-desuperheater.xml +567 -566
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/solar-thermal-system-with-dhw-indirect.xml +532 -534
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-cfis.xml +574 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-door.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-hvac-distribution.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-clothes-washer-water-heater.xml +464 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-shared-dishwasher-water-heater.xml +464 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-skylight.xml +589 -591
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-solar-thermal-system.xml +576 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/unattached-window.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location-other.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/water-heater-location.xml +561 -563
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +6 -14
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -16
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +277 -224
- data/lib/uo_cli/version.rb +1 -1
- data/scripts/setup-env-gitbash.sh +4 -4
- data/scripts/setup-env.bat +14 -11
- data/scripts/setup-env.ps1 +13 -10
- data/uo_cli.gemspec +6 -4
- metadata +106 -57
- data/example_files/resources/hpxml-measures/docs/source/hpxml_to_openstudio.rst +0 -1386
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-laundry-room.xml +0 -828
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater-recirc.xml +0 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-shared-water-heater.xml +0 -813
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-attached-multifamily.xml +0 -810
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-common-surfaces.xml +0 -928
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-baseboard.xml +0 -777
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil-ducted.xml +0 -808
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-fan-coil.xml +0 -780
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-chiller-water-loop-heat-pump.xml +0 -820
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-cooling-tower-water-loop-heat-pump.xml +0 -815
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-baseboard.xml +0 -760
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-ducted.xml +0 -790
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil-eae.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-fan-coil.xml +0 -762
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-boiler-only-water-loop-heat-pump.xml +0 -796
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-baseboard.xml +0 -759
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil-ducted.xml +0 -789
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-fan-coil.xml +0 -761
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-chiller-only-water-loop-heat-pump.xml +0 -796
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-cooling-tower-only-water-loop-heat-pump.xml +0 -791
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-shared-ground-loop-ground-to-air-heat-pump.xml +0 -814
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared-preconditioning.xml +0 -851
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-shared.xml +0 -835
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-shared.xml +0 -827
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/appliances-location-unconditioned-space.xml +0 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/coal-for-non-boiler-heating.xml +0 -514
- data/example_files/resources/hpxml-measures/workflow/sample_files/invalid_files/invalid-facility-type.xml +0 -828
@@ -1,5 +1,6 @@
|
|
1
1
|
# OpenStudio-HPXML
|
2
2
|
|
3
|
+
[![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/NREL/OpenStudio-HPXML?include_prereleases)](https://github.com/NREL/OpenStudio-HPXML/releases)
|
3
4
|
[![CircleCI](https://circleci.com/gh/NREL/OpenStudio-HPXML.svg?style=shield)](https://circleci.com/gh/NREL/OpenStudio-HPXML)
|
4
5
|
[![Documentation Status](https://readthedocs.org/projects/openstudio-hpxml/badge/?version=latest)](https://openstudio-hpxml.readthedocs.io/en/latest/?badge=latest)
|
5
6
|
[![codecov](https://codecov.io/gh/NREL/OpenStudio-HPXML/branch/master/graph/badge.svg)](https://codecov.io/gh/NREL/OpenStudio-HPXML)
|
@@ -7,16 +7,9 @@ require 'rake'
|
|
7
7
|
require 'rake/testtask'
|
8
8
|
require 'ci/reporter/rake/minitest'
|
9
9
|
|
10
|
-
desc 'Run
|
11
|
-
Rake::TestTask.new('test_validation') do |t|
|
12
|
-
t.test_files = Dir['HPXMLtoOpenStudio/tests/test_validation.rb']
|
13
|
-
t.warning = false
|
14
|
-
t.verbose = true
|
15
|
-
end
|
16
|
-
|
17
|
-
desc 'Run all tests (excluding validation test)'
|
10
|
+
desc 'Run all tests'
|
18
11
|
Rake::TestTask.new('test_all') do |t|
|
19
|
-
t.test_files = Dir['*/tests/*.rb']
|
12
|
+
t.test_files = Dir['*/tests/*.rb']
|
20
13
|
t.warning = false
|
21
14
|
t.verbose = true
|
22
15
|
end
|
@@ -145,15 +145,20 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
145
145
|
|
146
146
|
# Add meters to increase precision of outputs relative to, e.g., ABUPS report
|
147
147
|
meters = []
|
148
|
+
meters << 'ElectricityProduced:Facility' # Used for error checking
|
148
149
|
@fuels.each do |fuel_type, fuel|
|
149
|
-
meters
|
150
|
+
fuel.meters.each do |meter|
|
151
|
+
meters << meter
|
152
|
+
end
|
150
153
|
end
|
151
154
|
@end_uses.each do |key, end_use|
|
152
|
-
|
155
|
+
next if end_use.meters.nil?
|
156
|
+
|
157
|
+
end_use.meters.each do |meter|
|
158
|
+
meters << meter
|
159
|
+
end
|
153
160
|
end
|
154
161
|
meters.each do |meter|
|
155
|
-
next if meter.nil?
|
156
|
-
|
157
162
|
result << OpenStudio::IdfObject.load("Output:Meter,#{meter},runperiod;").get
|
158
163
|
end
|
159
164
|
|
@@ -175,7 +180,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
175
180
|
|
176
181
|
# Add peak electricity outputs
|
177
182
|
@peak_fuels.each do |key, peak_fuel|
|
178
|
-
|
183
|
+
peak_fuel.meters.each do |meter|
|
184
|
+
result << OpenStudio::IdfObject.load("Output:Table:Monthly,#{peak_fuel.report},2,#{meter},HoursPositive,Electricity:Facility,MaximumDuringHoursShown;").get
|
185
|
+
end
|
179
186
|
end
|
180
187
|
|
181
188
|
# Add component load outputs
|
@@ -244,15 +251,19 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
244
251
|
|
245
252
|
if include_timeseries_fuel_consumptions
|
246
253
|
@fuels.each do |fuel_type, fuel|
|
247
|
-
|
254
|
+
fuel.meters.each do |meter|
|
255
|
+
result << OpenStudio::IdfObject.load("Output:Meter,#{meter},#{timeseries_frequency};").get
|
256
|
+
end
|
248
257
|
end
|
249
258
|
end
|
250
259
|
|
251
260
|
if include_timeseries_end_use_consumptions
|
252
261
|
@end_uses.each do |key, end_use|
|
253
|
-
next if end_use.
|
262
|
+
next if end_use.meters.nil?
|
254
263
|
|
255
|
-
|
264
|
+
end_use.meters.each do |meter|
|
265
|
+
result << OpenStudio::IdfObject.load("Output:Meter,#{meter},#{timeseries_frequency};").get
|
266
|
+
end
|
256
267
|
end
|
257
268
|
# Add output variables for individual HVAC/DHW systems
|
258
269
|
add_object_output_variables(timeseries_frequency).each do |outvar|
|
@@ -271,6 +282,8 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
271
282
|
result << OpenStudio::IdfObject.load("EnergyManagementSystem:OutputVariable,#{load.ems_variable}_timeseries_outvar,#{load.ems_variable},Summed,ZoneTimestep,#{loads_program.name},J;").get
|
272
283
|
result << OpenStudio::IdfObject.load("Output:Variable,*,#{load.ems_variable}_timeseries_outvar,#{timeseries_frequency};").get
|
273
284
|
end
|
285
|
+
# And add HotWaterDelivered:
|
286
|
+
result << OpenStudio::IdfObject.load("Output:Variable,*,Water Use Connections Plant Hot Water Energy,#{timeseries_frequency};").get
|
274
287
|
end
|
275
288
|
|
276
289
|
if include_timeseries_component_loads
|
@@ -404,7 +417,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
404
417
|
timestamps = []
|
405
418
|
values.get.each do |value|
|
406
419
|
year, month, day, hour, minute = value.split(' ')
|
407
|
-
ts =
|
420
|
+
ts = Time.new(year, month, day, hour, minute)
|
408
421
|
timestamps << ts.strftime('%Y/%m/%d %H:%M:00')
|
409
422
|
end
|
410
423
|
|
@@ -456,15 +469,18 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
456
469
|
|
457
470
|
# Fuel Uses
|
458
471
|
@fuels.each do |fuel_type, fuel|
|
459
|
-
fuel.annual_output = get_report_meter_data_annual(fuel.
|
472
|
+
fuel.annual_output = get_report_meter_data_annual(fuel.meters)
|
460
473
|
if include_timeseries_fuel_consumptions
|
461
|
-
fuel.timeseries_output = get_report_meter_data_timeseries(
|
474
|
+
fuel.timeseries_output = get_report_meter_data_timeseries(fuel.meters, UnitConversions.convert(1.0, 'J', fuel.timeseries_units), 0, timeseries_frequency)
|
462
475
|
end
|
463
476
|
end
|
464
477
|
|
478
|
+
# Electricity Produced (used for error checking)
|
479
|
+
outputs[:total_elec_produced] = get_report_meter_data_annual(['ElectricityProduced:Facility'])
|
480
|
+
|
465
481
|
# Peak Electricity Consumption
|
466
482
|
@peak_fuels.each do |key, peak_fuel|
|
467
|
-
peak_fuel.annual_output = get_tabular_data_value(peak_fuel.report.upcase, 'Meter', 'Custom Monthly Report', 'Maximum of Months', 'ELECTRICITY:FACILITY {MAX FOR HOURS SHOWN', peak_fuel.annual_units)
|
483
|
+
peak_fuel.annual_output = get_tabular_data_value(peak_fuel.report.upcase, 'Meter', 'Custom Monthly Report', ['Maximum of Months'], 'ELECTRICITY:FACILITY {MAX FOR HOURS SHOWN', peak_fuel.annual_units)
|
468
484
|
end
|
469
485
|
|
470
486
|
# Total loads
|
@@ -497,25 +513,33 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
497
513
|
|
498
514
|
# Peak Building Space Heating/Cooling Loads (total heating/cooling energy delivered including backup ideal air system)
|
499
515
|
@peak_loads.each do |load_type, peak_load|
|
500
|
-
peak_load.annual_output = UnitConversions.convert(get_tabular_data_value('EnergyMeters', 'Entire Facility', 'Annual and Peak Values - Other', peak_load.
|
516
|
+
peak_load.annual_output = UnitConversions.convert(get_tabular_data_value('EnergyMeters', 'Entire Facility', 'Annual and Peak Values - Other', peak_load.meters, 'Maximum Value', 'W'), 'Wh', peak_load.annual_units)
|
501
517
|
end
|
502
518
|
|
503
519
|
# End Uses (derived from meters)
|
504
520
|
@end_uses.each do |key, end_use|
|
505
|
-
next if end_use.
|
521
|
+
next if end_use.meters.nil?
|
506
522
|
|
507
523
|
fuel_type, end_use_type = key
|
508
|
-
|
509
|
-
|
524
|
+
|
525
|
+
use_negative = false
|
526
|
+
if end_use_type == EUT::PV
|
527
|
+
use_negative = true
|
528
|
+
elsif (end_use_type == EUT::Generator) && (fuel_type == FT::Elec)
|
529
|
+
use_negative = true
|
530
|
+
end
|
531
|
+
|
532
|
+
end_use.annual_output = get_report_meter_data_annual(end_use.meters)
|
533
|
+
if use_negative && (@end_uses[key].annual_output > 0)
|
510
534
|
end_use.annual_output *= -1.0
|
511
535
|
end
|
512
536
|
next unless include_timeseries_end_use_consumptions
|
513
537
|
|
514
538
|
timeseries_unit_conv = UnitConversions.convert(1.0, 'J', end_use.timeseries_units)
|
515
|
-
if
|
539
|
+
if use_negative
|
516
540
|
timeseries_unit_conv *= -1.0
|
517
541
|
end
|
518
|
-
end_use.timeseries_output = get_report_meter_data_timeseries(
|
542
|
+
end_use.timeseries_output = get_report_meter_data_timeseries(end_use.meters, timeseries_unit_conv, 0, timeseries_frequency)
|
519
543
|
end
|
520
544
|
|
521
545
|
# Hot Water Uses
|
@@ -536,10 +560,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
536
560
|
# End Use
|
537
561
|
@fuels.each do |fuel_type, fuel|
|
538
562
|
end_use = @end_uses[[fuel_type, EUT::Heating]]
|
539
|
-
|
540
|
-
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, vars)
|
563
|
+
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, end_use.variable_names)
|
541
564
|
if include_timeseries_end_use_consumptions
|
542
|
-
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys,
|
565
|
+
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
543
566
|
end
|
544
567
|
end
|
545
568
|
|
@@ -563,10 +586,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
563
586
|
|
564
587
|
# End Uses
|
565
588
|
end_use = @end_uses[[FT::Elec, EUT::Cooling]]
|
566
|
-
|
567
|
-
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, vars)
|
589
|
+
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, end_use.variable_names)
|
568
590
|
if include_timeseries_end_use_consumptions
|
569
|
-
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys,
|
591
|
+
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
570
592
|
end
|
571
593
|
|
572
594
|
# Disaggregated Fan/Pump Energy Use
|
@@ -589,10 +611,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
589
611
|
|
590
612
|
@fuels.each do |fuel_type, fuel|
|
591
613
|
end_use = @end_uses[[fuel_type, EUT::MechVentPreheat]]
|
592
|
-
|
593
|
-
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, vars)
|
614
|
+
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, end_use.variable_names)
|
594
615
|
if include_timeseries_end_use_consumptions
|
595
|
-
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys,
|
616
|
+
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
596
617
|
end
|
597
618
|
end
|
598
619
|
end
|
@@ -603,22 +624,20 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
603
624
|
keys = ep_output_names.map(&:upcase)
|
604
625
|
|
605
626
|
end_use = @end_uses[[FT::Elec, EUT::MechVentPrecool]]
|
606
|
-
|
607
|
-
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, vars)
|
627
|
+
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, end_use.variable_names)
|
608
628
|
if include_timeseries_end_use_consumptions
|
609
|
-
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys,
|
629
|
+
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
610
630
|
end
|
611
631
|
end
|
612
632
|
|
613
633
|
# Dehumidifier
|
614
634
|
end_use = @end_uses[[FT::Elec, EUT::Dehumidifier]]
|
615
|
-
vars = get_all_var_keys(end_use.variable)
|
616
635
|
ep_output_name = @hvac_map[outputs[:hpxml_dehumidifier_id]]
|
617
636
|
if not ep_output_name.nil?
|
618
637
|
keys = ep_output_name.map(&:upcase)
|
619
|
-
end_use.annual_output = get_report_variable_data_annual(keys,
|
638
|
+
end_use.annual_output = get_report_variable_data_annual(keys, end_use.variable_names)
|
620
639
|
if include_timeseries_end_use_consumptions
|
621
|
-
end_use.timeseries_output = get_report_variable_data_timeseries(keys,
|
640
|
+
end_use.timeseries_output = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
622
641
|
end
|
623
642
|
else
|
624
643
|
end_use.annual_output = 0
|
@@ -638,17 +657,19 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
638
657
|
end_use = @end_uses[[fuel_type, end_use_type]]
|
639
658
|
next if end_use.nil?
|
640
659
|
|
641
|
-
|
642
|
-
|
643
|
-
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, vars)
|
660
|
+
end_use.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, end_use.variable_names)
|
644
661
|
if include_timeseries_end_use_consumptions
|
645
|
-
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys,
|
662
|
+
end_use.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, end_use.variable_names, UnitConversions.convert(1.0, 'J', end_use.timeseries_units), 0, timeseries_frequency)
|
646
663
|
end
|
647
664
|
end
|
648
665
|
end
|
649
666
|
|
650
667
|
# Loads
|
651
|
-
|
668
|
+
load = @loads[LT::HotWaterDelivered]
|
669
|
+
load.annual_output_by_system[sys_id] = get_report_variable_data_annual(keys, load.variable_names)
|
670
|
+
if include_timeseries_total_loads
|
671
|
+
load.timeseries_output_by_system[sys_id] = get_report_variable_data_timeseries(keys, load.variable_names, UnitConversions.convert(1.0, 'J', load.timeseries_units), 0, timeseries_frequency)
|
672
|
+
end
|
652
673
|
|
653
674
|
# Combi boiler water system
|
654
675
|
hvac_id = get_combi_hvac_id(sys_id)
|
@@ -678,7 +699,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
678
699
|
@fuels.keys.reverse.each do |fuel_type| # Reverse so that FT::Elec is considered last
|
679
700
|
end_use = @end_uses[[fuel_type, EUT::HotWater]]
|
680
701
|
next if end_use.nil?
|
681
|
-
next if end_use.
|
702
|
+
next if end_use.variables.nil?
|
682
703
|
next unless end_use.annual_output_by_system[sys_id] > 0
|
683
704
|
|
684
705
|
ec_vars = ep_output_names.select { |name| name.include? Constants.ObjectNameWaterHeaterAdjustment(nil) }
|
@@ -724,11 +745,11 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
724
745
|
end
|
725
746
|
|
726
747
|
# Hot Water Load - Solar Thermal
|
727
|
-
@loads[LT::HotWaterSolarThermal].annual_output = get_report_variable_data_annual(solar_keys,
|
748
|
+
@loads[LT::HotWaterSolarThermal].annual_output = get_report_variable_data_annual(solar_keys, get_all_variable_keys(OutputVars.WaterHeaterLoadSolarThermal))
|
728
749
|
@loads[LT::HotWaterSolarThermal].annual_output *= -1 if @loads[LT::HotWaterSolarThermal].annual_output != 0
|
729
750
|
|
730
751
|
# Hot Water Load - Desuperheater
|
731
|
-
@loads[LT::HotWaterDesuperheater].annual_output = get_report_variable_data_annual(dsh_keys,
|
752
|
+
@loads[LT::HotWaterDesuperheater].annual_output = get_report_variable_data_annual(dsh_keys, @loads[LT::HotWaterDesuperheater].variable_names)
|
732
753
|
|
733
754
|
# Hot Water Load - Tank Losses (excluding solar storage tank)
|
734
755
|
@loads[LT::HotWaterTankLosses].annual_output = get_report_variable_data_annual(solar_keys, ['Water Heater Heat Loss Energy'], not_key: true)
|
@@ -819,11 +840,21 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
819
840
|
return false
|
820
841
|
end
|
821
842
|
|
843
|
+
# Check sum of electricity produced end use outputs match total
|
844
|
+
sum_elec_produced = -1 * (@end_uses[[FT::Elec, EUT::PV]].annual_output + @end_uses[[FT::Elec, EUT::Generator]].annual_output)
|
845
|
+
total_elec_produced = outputs[:total_elec_produced]
|
846
|
+
if (sum_elec_produced - total_elec_produced).abs > 0.1
|
847
|
+
runner.registerError("#{FT::Elec} produced category end uses (#{sum_elec_produced}) do not sum to total (#{total_elec_produced}).")
|
848
|
+
return false
|
849
|
+
end
|
850
|
+
|
822
851
|
# Check sum of end use outputs match fuel outputs
|
823
852
|
@fuels.keys.each do |fuel_type|
|
824
853
|
sum_categories = @end_uses.select { |k, eu| k[0] == fuel_type }.map { |k, eu| eu.annual_output }.sum(0.0)
|
825
854
|
fuel_total = @fuels[fuel_type].annual_output
|
826
|
-
|
855
|
+
if fuel_type == FT::Elec
|
856
|
+
fuel_total -= sum_elec_produced
|
857
|
+
end
|
827
858
|
if (fuel_total - sum_categories).abs > 0.1
|
828
859
|
runner.registerError("#{fuel_type} category end uses (#{sum_categories}) do not sum to total (#{fuel_total}).")
|
829
860
|
return false
|
@@ -852,13 +883,14 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
852
883
|
|
853
884
|
def write_annual_output_results(runner, outputs, csv_path)
|
854
885
|
line_break = nil
|
855
|
-
|
886
|
+
elec_pv_produced = @end_uses[[FT::Elec, EUT::PV]]
|
887
|
+
elec_generator_produced = @end_uses[[FT::Elec, EUT::Generator]]
|
856
888
|
|
857
889
|
results_out = []
|
858
890
|
@fuels.each do |fuel_type, fuel|
|
859
891
|
results_out << ["#{fuel.name} (#{fuel.annual_units})", fuel.annual_output.round(2)]
|
860
892
|
if fuel_type == FT::Elec
|
861
|
-
results_out << ['Electricity: Net (MBtu)', (fuel.annual_output +
|
893
|
+
results_out << ['Electricity: Net (MBtu)', (fuel.annual_output + elec_pv_produced.annual_output + elec_generator_produced.annual_output).round(2)]
|
862
894
|
end
|
863
895
|
end
|
864
896
|
results_out << [line_break]
|
@@ -875,7 +907,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
875
907
|
end
|
876
908
|
results_out << [line_break]
|
877
909
|
@peak_fuels.each do |key, peak_fuel|
|
878
|
-
results_out << ["#{peak_fuel.name} (#{peak_fuel.annual_units})", peak_fuel.annual_output.round(
|
910
|
+
results_out << ["#{peak_fuel.name} (#{peak_fuel.annual_units})", peak_fuel.annual_output.round(0)]
|
879
911
|
end
|
880
912
|
results_out << [line_break]
|
881
913
|
@peak_loads.each do |load_type, peak_load|
|
@@ -887,7 +919,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
887
919
|
end
|
888
920
|
results_out << [line_break]
|
889
921
|
@hot_water_uses.each do |hot_water_type, hot_water|
|
890
|
-
results_out << ["#{hot_water.name} (#{hot_water.annual_units})", hot_water.annual_output.round(
|
922
|
+
results_out << ["#{hot_water.name} (#{hot_water.annual_units})", hot_water.annual_output.round(0)]
|
891
923
|
end
|
892
924
|
|
893
925
|
CSV.open(csv_path, 'wb') { |csv| results_out.to_a.each { |elem| csv << elem } }
|
@@ -1376,6 +1408,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1376
1408
|
@hpxml.water_heating_systems.each do |dhw_system|
|
1377
1409
|
sys_id = dhw_system.id
|
1378
1410
|
value = dhw_system.energy_factor
|
1411
|
+
value = dhw_system.uniform_energy_factor if value.nil?
|
1379
1412
|
wh_type = dhw_system.water_heater_type
|
1380
1413
|
if wh_type == HPXML::WaterHeaterTypeTankless
|
1381
1414
|
value_adj = dhw_system.performance_adjustment
|
@@ -1384,6 +1417,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1384
1417
|
end
|
1385
1418
|
|
1386
1419
|
if value.nil?
|
1420
|
+
# Get assumed EF for combi system
|
1387
1421
|
@model.getWaterHeaterMixeds.each do |wh|
|
1388
1422
|
next unless @dhw_map[sys_id].include? wh.name.to_s
|
1389
1423
|
|
@@ -1443,17 +1477,18 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1443
1477
|
return sys.id
|
1444
1478
|
end
|
1445
1479
|
|
1446
|
-
def get_report_meter_data_annual(
|
1447
|
-
|
1480
|
+
def get_report_meter_data_annual(meter_names, unit_conv = UnitConversions.convert(1.0, 'J', 'MBtu'))
|
1481
|
+
vars = "'" + meter_names.join("','") + "'"
|
1482
|
+
query = "SELECT SUM(VariableValue*#{unit_conv}) FROM ReportMeterData WHERE ReportMeterDataDictionaryIndex IN (SELECT ReportMeterDataDictionaryIndex FROM ReportMeterDataDictionary WHERE VariableName IN (#{vars}) AND ReportingFrequency='Run Period' AND VariableUnits='J')"
|
1448
1483
|
value = @sqlFile.execAndReturnFirstDouble(query)
|
1449
1484
|
fail "Query error: #{query}" unless value.is_initialized
|
1450
1485
|
|
1451
1486
|
return value.get
|
1452
1487
|
end
|
1453
1488
|
|
1454
|
-
def get_report_variable_data_annual(
|
1455
|
-
keys = "'" +
|
1456
|
-
vars = "'" +
|
1489
|
+
def get_report_variable_data_annual(key_values, variable_names, unit_conv = UnitConversions.convert(1.0, 'J', 'MBtu'), not_key: false)
|
1490
|
+
keys = "'" + key_values.join("','") + "'"
|
1491
|
+
vars = "'" + variable_names.join("','") + "'"
|
1457
1492
|
if not_key
|
1458
1493
|
s_not = 'NOT '
|
1459
1494
|
else
|
@@ -1466,8 +1501,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1466
1501
|
return value.get
|
1467
1502
|
end
|
1468
1503
|
|
1469
|
-
def get_report_meter_data_timeseries(
|
1470
|
-
|
1504
|
+
def get_report_meter_data_timeseries(meter_names, unit_conv, unit_adder, timeseries_frequency)
|
1505
|
+
vars = "'" + meter_names.join("','") + "'"
|
1506
|
+
query = "SELECT SUM(VariableValue*#{unit_conv}+#{unit_adder}) FROM ReportMeterData WHERE ReportMeterDataDictionaryIndex IN (SELECT ReportMeterDataDictionaryIndex FROM ReportMeterDataDictionary WHERE VariableName IN (#{vars}) AND ReportingFrequency='#{reporting_frequency_map[timeseries_frequency]}' AND VariableUnits='J') GROUP BY TimeIndex ORDER BY TimeIndex"
|
1471
1507
|
values = @sqlFile.execAndReturnVectorOfDouble(query)
|
1472
1508
|
fail "Query error: #{query}" unless values.is_initialized
|
1473
1509
|
|
@@ -1476,9 +1512,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1476
1512
|
return values
|
1477
1513
|
end
|
1478
1514
|
|
1479
|
-
def get_report_variable_data_timeseries(
|
1480
|
-
keys = "'" +
|
1481
|
-
vars = "'" +
|
1515
|
+
def get_report_variable_data_timeseries(key_values, variable_names, unit_conv, unit_adder, timeseries_frequency, disable_ems_shift = false)
|
1516
|
+
keys = "'" + key_values.join("','") + "'"
|
1517
|
+
vars = "'" + variable_names.join("','") + "'"
|
1482
1518
|
query = "SELECT SUM(VariableValue*#{unit_conv}+#{unit_adder}) FROM ReportVariableData WHERE ReportVariableDataDictionaryIndex IN (SELECT ReportVariableDataDictionaryIndex FROM ReportVariableDataDictionary WHERE KeyValue IN (#{keys}) AND VariableName IN (#{vars}) AND ReportingFrequency='#{reporting_frequency_map[timeseries_frequency]}') GROUP BY TimeIndex ORDER BY TimeIndex"
|
1483
1519
|
values = @sqlFile.execAndReturnVectorOfDouble(query)
|
1484
1520
|
fail "Query error: #{query}" unless values.is_initialized
|
@@ -1488,7 +1524,7 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1488
1524
|
|
1489
1525
|
return values if disable_ems_shift
|
1490
1526
|
|
1491
|
-
if (
|
1527
|
+
if (key_values.size == 1) && (key_values[0] == 'EMS')
|
1492
1528
|
if (timeseries_frequency.downcase == 'timestep' || (timeseries_frequency.downcase == 'hourly' && @model.getTimestep.numberOfTimestepsPerHour == 1))
|
1493
1529
|
# Shift all values by 1 timestep due to EMS reporting lag
|
1494
1530
|
return values[1..-1] + [values[-1]]
|
@@ -1498,8 +1534,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1498
1534
|
return values
|
1499
1535
|
end
|
1500
1536
|
|
1501
|
-
def get_tabular_data_value(report_name, report_for_string, table_name,
|
1502
|
-
|
1537
|
+
def get_tabular_data_value(report_name, report_for_string, table_name, row_names, col_name, units)
|
1538
|
+
rows = "'" + row_names.join("','") + "'"
|
1539
|
+
query = "SELECT SUM(Value) FROM TabularDataWithStrings WHERE ReportName='#{report_name}' AND ReportForString='#{report_for_string}' AND TableName='#{table_name}' AND RowName IN (#{rows}) AND ColumnName='#{col_name}' AND Units='#{units}'"
|
1503
1540
|
result = @sqlFile.execAndReturnFirstDouble(query)
|
1504
1541
|
return result.get
|
1505
1542
|
end
|
@@ -1543,9 +1580,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1543
1580
|
next unless dfhp_primary || dfhp_backup
|
1544
1581
|
|
1545
1582
|
if dfhp_primary
|
1546
|
-
vars =
|
1583
|
+
vars = get_all_variable_keys(OutputVars.SpaceHeatingDFHPPrimaryLoad)
|
1547
1584
|
else
|
1548
|
-
vars =
|
1585
|
+
vars = get_all_variable_keys(OutputVars.SpaceHeatingDFHPBackupLoad)
|
1549
1586
|
sys_id = dfhp_primary_sys_id(sys_id)
|
1550
1587
|
end
|
1551
1588
|
dfhp_loads[[sys_id, dfhp_primary]] = get_report_variable_data_annual(keys, vars)
|
@@ -1613,16 +1650,6 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1613
1650
|
return false
|
1614
1651
|
end
|
1615
1652
|
|
1616
|
-
def get_all_var_keys(var)
|
1617
|
-
var_keys = []
|
1618
|
-
var.keys.each do |key|
|
1619
|
-
var[key].each do |var_key|
|
1620
|
-
var_keys << var_key
|
1621
|
-
end
|
1622
|
-
end
|
1623
|
-
return var_keys
|
1624
|
-
end
|
1625
|
-
|
1626
1653
|
def get_dhw_solar_fraction(sys_id)
|
1627
1654
|
solar_fraction = 0.0
|
1628
1655
|
if @hpxml.solar_thermal_systems.size > 0
|
@@ -1699,34 +1726,34 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1699
1726
|
end
|
1700
1727
|
|
1701
1728
|
def add_object_output_variables(timeseries_frequency)
|
1702
|
-
hvac_output_vars = [OutputVars.
|
1703
|
-
OutputVars.
|
1704
|
-
OutputVars.
|
1705
|
-
OutputVars.
|
1706
|
-
OutputVars.
|
1707
|
-
OutputVars.
|
1708
|
-
OutputVars.
|
1729
|
+
hvac_output_vars = [OutputVars.SpaceHeating(EPlus::FuelTypeElectricity),
|
1730
|
+
OutputVars.SpaceHeating(EPlus::FuelTypeNaturalGas),
|
1731
|
+
OutputVars.SpaceHeating(EPlus::FuelTypeOil),
|
1732
|
+
OutputVars.SpaceHeating(EPlus::FuelTypePropane),
|
1733
|
+
OutputVars.SpaceHeating(EPlus::FuelTypeWoodCord),
|
1734
|
+
OutputVars.SpaceHeating(EPlus::FuelTypeWoodPellets),
|
1735
|
+
OutputVars.SpaceHeating(EPlus::FuelTypeCoal),
|
1709
1736
|
OutputVars.SpaceHeatingDFHPPrimaryLoad,
|
1710
1737
|
OutputVars.SpaceHeatingDFHPBackupLoad,
|
1711
1738
|
OutputVars.SpaceCoolingElectricity,
|
1712
1739
|
OutputVars.DehumidifierElectricity,
|
1713
|
-
OutputVars.
|
1714
|
-
OutputVars.
|
1715
|
-
OutputVars.
|
1716
|
-
OutputVars.
|
1717
|
-
OutputVars.
|
1718
|
-
OutputVars.
|
1719
|
-
OutputVars.
|
1720
|
-
|
1721
|
-
dhw_output_vars = [OutputVars.
|
1740
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeElectricity),
|
1741
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeNaturalGas),
|
1742
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeOil),
|
1743
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypePropane),
|
1744
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeWoodCord),
|
1745
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeWoodPellets),
|
1746
|
+
OutputVars.MechVentPreconditioning(EPlus::FuelTypeCoal)]
|
1747
|
+
|
1748
|
+
dhw_output_vars = [OutputVars.WaterHeating(EPlus::FuelTypeElectricity),
|
1749
|
+
OutputVars.WaterHeating(EPlus::FuelTypeNaturalGas),
|
1750
|
+
OutputVars.WaterHeating(EPlus::FuelTypeOil),
|
1751
|
+
OutputVars.WaterHeating(EPlus::FuelTypePropane),
|
1752
|
+
OutputVars.WaterHeating(EPlus::FuelTypeWoodCord),
|
1753
|
+
OutputVars.WaterHeating(EPlus::FuelTypeWoodPellets),
|
1754
|
+
OutputVars.WaterHeating(EPlus::FuelTypeCoal),
|
1722
1755
|
OutputVars.WaterHeatingElectricityRecircPump,
|
1723
1756
|
OutputVars.WaterHeatingElectricitySolarThermalPump,
|
1724
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypeNaturalGas),
|
1725
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypeOil),
|
1726
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypePropane),
|
1727
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypeWoodCord),
|
1728
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypeWoodPellets),
|
1729
|
-
OutputVars.WaterHeatingFuel(EPlus::FuelTypeCoal),
|
1730
1757
|
OutputVars.WaterHeatingLoad,
|
1731
1758
|
OutputVars.WaterHeatingLoadTankLosses,
|
1732
1759
|
OutputVars.WaterHeaterLoadDesuperheater,
|
@@ -1837,23 +1864,26 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1837
1864
|
end
|
1838
1865
|
|
1839
1866
|
class Fuel < BaseOutput
|
1840
|
-
def initialize(
|
1867
|
+
def initialize(meters: nil)
|
1841
1868
|
super()
|
1842
|
-
@
|
1869
|
+
@meters = meters
|
1843
1870
|
@timeseries_output_by_system = {}
|
1844
1871
|
end
|
1845
|
-
attr_accessor(:
|
1872
|
+
attr_accessor(:meters, :timeseries_output_by_system)
|
1846
1873
|
end
|
1847
1874
|
|
1848
1875
|
class EndUse < BaseOutput
|
1849
|
-
def initialize(
|
1876
|
+
def initialize(meters: nil, variables: nil)
|
1850
1877
|
super()
|
1851
|
-
@
|
1852
|
-
@
|
1878
|
+
@meters = meters
|
1879
|
+
@variables = variables
|
1853
1880
|
@timeseries_output_by_system = {}
|
1854
1881
|
@annual_output_by_system = {}
|
1882
|
+
if not variables.nil?
|
1883
|
+
@variable_names = get_all_variable_keys(variables)
|
1884
|
+
end
|
1855
1885
|
end
|
1856
|
-
attr_accessor(:
|
1886
|
+
attr_accessor(:meters, :variables, :annual_output_by_system, :timeseries_output_by_system, :variable_names)
|
1857
1887
|
end
|
1858
1888
|
|
1859
1889
|
class HotWater < BaseOutput
|
@@ -1865,23 +1895,26 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1865
1895
|
end
|
1866
1896
|
|
1867
1897
|
class PeakFuel < BaseOutput
|
1868
|
-
def initialize(
|
1898
|
+
def initialize(meters:, report:)
|
1869
1899
|
super()
|
1870
|
-
@
|
1900
|
+
@meters = meters
|
1871
1901
|
@report = report
|
1872
1902
|
end
|
1873
|
-
attr_accessor(:
|
1903
|
+
attr_accessor(:meters, :report)
|
1874
1904
|
end
|
1875
1905
|
|
1876
1906
|
class Load < BaseOutput
|
1877
|
-
def initialize(
|
1907
|
+
def initialize(variables: nil, ems_variable: nil)
|
1878
1908
|
super()
|
1879
|
-
@
|
1909
|
+
@variables = variables
|
1880
1910
|
@ems_variable = ems_variable
|
1881
1911
|
@timeseries_output_by_system = {}
|
1882
1912
|
@annual_output_by_system = {}
|
1913
|
+
if not variables.nil?
|
1914
|
+
@variable_names = get_all_variable_keys(variables)
|
1915
|
+
end
|
1883
1916
|
end
|
1884
|
-
attr_accessor(:
|
1917
|
+
attr_accessor(:variables, :ems_variable, :annual_output_by_system, :timeseries_output_by_system, :variable_names)
|
1885
1918
|
end
|
1886
1919
|
|
1887
1920
|
class ComponentLoad < BaseOutput
|
@@ -1902,11 +1935,11 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1902
1935
|
end
|
1903
1936
|
|
1904
1937
|
class PeakLoad < BaseOutput
|
1905
|
-
def initialize(
|
1938
|
+
def initialize(meters:)
|
1906
1939
|
super()
|
1907
|
-
@
|
1940
|
+
@meters = meters
|
1908
1941
|
end
|
1909
|
-
attr_accessor(:
|
1942
|
+
attr_accessor(:meters)
|
1910
1943
|
end
|
1911
1944
|
|
1912
1945
|
class ZoneTemp < BaseOutput
|
@@ -1944,23 +1977,16 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1944
1977
|
return 'kBtu'
|
1945
1978
|
end
|
1946
1979
|
|
1947
|
-
ep_fuel_names = { FT::Gas => EPlus.output_fuel_map(EPlus::FuelTypeNaturalGas),
|
1948
|
-
FT::Oil => EPlus.output_fuel_map(EPlus::FuelTypeOil),
|
1949
|
-
FT::Propane => EPlus.output_fuel_map(EPlus::FuelTypePropane),
|
1950
|
-
FT::WoodCord => EPlus.output_fuel_map(EPlus::FuelTypeWoodCord),
|
1951
|
-
FT::WoodPellets => EPlus.output_fuel_map(EPlus::FuelTypeWoodPellets),
|
1952
|
-
FT::Coal => EPlus.output_fuel_map(EPlus::FuelTypeCoal) }
|
1953
|
-
|
1954
1980
|
# Fuels
|
1955
1981
|
|
1956
1982
|
@fuels = {}
|
1957
|
-
@fuels[FT::Elec] = Fuel.new(
|
1958
|
-
@fuels[FT::Gas] = Fuel.new(
|
1959
|
-
@fuels[FT::Oil] = Fuel.new(
|
1960
|
-
@fuels[FT::Propane] = Fuel.new(
|
1961
|
-
@fuels[FT::WoodCord] = Fuel.new(
|
1962
|
-
@fuels[FT::WoodPellets] = Fuel.new(
|
1963
|
-
@fuels[FT::Coal] = Fuel.new(
|
1983
|
+
@fuels[FT::Elec] = Fuel.new(meters: ["#{EPlus::FuelTypeElectricity}:Facility"])
|
1984
|
+
@fuels[FT::Gas] = Fuel.new(meters: ["#{EPlus::FuelTypeNaturalGas}:Facility"])
|
1985
|
+
@fuels[FT::Oil] = Fuel.new(meters: ["#{EPlus::FuelTypeOil}:Facility"])
|
1986
|
+
@fuels[FT::Propane] = Fuel.new(meters: ["#{EPlus::FuelTypePropane}:Facility"])
|
1987
|
+
@fuels[FT::WoodCord] = Fuel.new(meters: ["#{EPlus::FuelTypeWoodCord}:Facility"])
|
1988
|
+
@fuels[FT::WoodPellets] = Fuel.new(meters: ["#{EPlus::FuelTypeWoodPellets}:Facility"])
|
1989
|
+
@fuels[FT::Coal] = Fuel.new(meters: ["#{EPlus::FuelTypeCoal}:Facility"])
|
1964
1990
|
|
1965
1991
|
@fuels.each do |fuel_type, fuel|
|
1966
1992
|
fuel.name = "#{fuel_type}: Total"
|
@@ -1973,102 +1999,105 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
1973
1999
|
# NOTE: Some end uses are obtained from meters, others are rolled up from
|
1974
2000
|
# output variables so that we can have more control.
|
1975
2001
|
@end_uses = {}
|
1976
|
-
@end_uses[[FT::Elec, EUT::Heating]] = EndUse.new(
|
2002
|
+
@end_uses[[FT::Elec, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeElectricity))
|
1977
2003
|
@end_uses[[FT::Elec, EUT::HeatingFanPump]] = EndUse.new()
|
1978
|
-
@end_uses[[FT::Elec, EUT::Cooling]] = EndUse.new(
|
2004
|
+
@end_uses[[FT::Elec, EUT::Cooling]] = EndUse.new(variables: OutputVars.SpaceCoolingElectricity)
|
1979
2005
|
@end_uses[[FT::Elec, EUT::CoolingFanPump]] = EndUse.new()
|
1980
|
-
@end_uses[[FT::Elec, EUT::HotWater]] = EndUse.new(
|
1981
|
-
@end_uses[[FT::Elec, EUT::HotWaterRecircPump]] = EndUse.new(
|
1982
|
-
@end_uses[[FT::Elec, EUT::HotWaterSolarThermalPump]] = EndUse.new(
|
1983
|
-
@end_uses[[FT::Elec, EUT::LightsInterior]] = EndUse.new(
|
1984
|
-
@end_uses[[FT::Elec, EUT::LightsGarage]] = EndUse.new(
|
1985
|
-
@end_uses[[FT::Elec, EUT::LightsExterior]] = EndUse.new(
|
1986
|
-
@end_uses[[FT::Elec, EUT::MechVent]] = EndUse.new(
|
1987
|
-
@end_uses[[FT::Elec, EUT::MechVentPreheat]] = EndUse.new(
|
1988
|
-
@end_uses[[FT::Elec, EUT::MechVentPrecool]] = EndUse.new(
|
1989
|
-
@end_uses[[FT::Elec, EUT::WholeHouseFan]] = EndUse.new(
|
1990
|
-
@end_uses[[FT::Elec, EUT::Refrigerator]] = EndUse.new(
|
2006
|
+
@end_uses[[FT::Elec, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeElectricity))
|
2007
|
+
@end_uses[[FT::Elec, EUT::HotWaterRecircPump]] = EndUse.new(variables: OutputVars.WaterHeatingElectricityRecircPump)
|
2008
|
+
@end_uses[[FT::Elec, EUT::HotWaterSolarThermalPump]] = EndUse.new(variables: OutputVars.WaterHeatingElectricitySolarThermalPump)
|
2009
|
+
@end_uses[[FT::Elec, EUT::LightsInterior]] = EndUse.new(meters: ["#{Constants.ObjectNameInteriorLighting}:InteriorLights:#{EPlus::FuelTypeElectricity}"])
|
2010
|
+
@end_uses[[FT::Elec, EUT::LightsGarage]] = EndUse.new(meters: ["#{Constants.ObjectNameGarageLighting}:InteriorLights:#{EPlus::FuelTypeElectricity}"])
|
2011
|
+
@end_uses[[FT::Elec, EUT::LightsExterior]] = EndUse.new(meters: ["ExteriorLights:#{EPlus::FuelTypeElectricity}"])
|
2012
|
+
@end_uses[[FT::Elec, EUT::MechVent]] = EndUse.new(meters: ["#{Constants.ObjectNameMechanicalVentilation}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2013
|
+
@end_uses[[FT::Elec, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeElectricity))
|
2014
|
+
@end_uses[[FT::Elec, EUT::MechVentPrecool]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeElectricity))
|
2015
|
+
@end_uses[[FT::Elec, EUT::WholeHouseFan]] = EndUse.new(meters: ["#{Constants.ObjectNameWholeHouseFan}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2016
|
+
@end_uses[[FT::Elec, EUT::Refrigerator]] = EndUse.new(meters: ["#{Constants.ObjectNameRefrigerator}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
1991
2017
|
if @eri_design.nil? # Skip end uses not used by ERI
|
1992
|
-
@end_uses[[FT::Elec, EUT::Freezer]] = EndUse.new(
|
1993
|
-
end
|
1994
|
-
@end_uses[[FT::Elec, EUT::Dehumidifier]] = EndUse.new(
|
1995
|
-
@end_uses[[FT::Elec, EUT::Dishwasher]] = EndUse.new(
|
1996
|
-
@end_uses[[FT::Elec, EUT::ClothesWasher]] = EndUse.new(
|
1997
|
-
@end_uses[[FT::Elec, EUT::ClothesDryer]] = EndUse.new(
|
1998
|
-
@end_uses[[FT::Elec, EUT::RangeOven]] = EndUse.new(
|
1999
|
-
@end_uses[[FT::Elec, EUT::CeilingFan]] = EndUse.new(
|
2000
|
-
@end_uses[[FT::Elec, EUT::Television]] = EndUse.new(
|
2001
|
-
@end_uses[[FT::Elec, EUT::PlugLoads]] = EndUse.new(
|
2018
|
+
@end_uses[[FT::Elec, EUT::Freezer]] = EndUse.new(meters: ["#{Constants.ObjectNameFreezer}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2019
|
+
end
|
2020
|
+
@end_uses[[FT::Elec, EUT::Dehumidifier]] = EndUse.new(variables: OutputVars.DehumidifierElectricity)
|
2021
|
+
@end_uses[[FT::Elec, EUT::Dishwasher]] = EndUse.new(meters: ["#{Constants.ObjectNameDishwasher}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2022
|
+
@end_uses[[FT::Elec, EUT::ClothesWasher]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesWasher}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2023
|
+
@end_uses[[FT::Elec, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2024
|
+
@end_uses[[FT::Elec, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2025
|
+
@end_uses[[FT::Elec, EUT::CeilingFan]] = EndUse.new(meters: ["#{Constants.ObjectNameCeilingFan}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2026
|
+
@end_uses[[FT::Elec, EUT::Television]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscTelevision}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2027
|
+
@end_uses[[FT::Elec, EUT::PlugLoads]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscPlugLoads}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2002
2028
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2003
|
-
@end_uses[[FT::Elec, EUT::Vehicle]] = EndUse.new(
|
2004
|
-
@end_uses[[FT::Elec, EUT::WellPump]] = EndUse.new(
|
2005
|
-
@end_uses[[FT::Elec, EUT::PoolHeater]] = EndUse.new(
|
2006
|
-
@end_uses[[FT::Elec, EUT::PoolPump]] = EndUse.new(
|
2007
|
-
@end_uses[[FT::Elec, EUT::HotTubHeater]] = EndUse.new(
|
2008
|
-
@end_uses[[FT::Elec, EUT::HotTubPump]] = EndUse.new(
|
2009
|
-
end
|
2010
|
-
@end_uses[[FT::Elec, EUT::PV]] = EndUse.new(
|
2011
|
-
@end_uses[[FT::
|
2012
|
-
@end_uses[[FT::Gas, EUT::
|
2013
|
-
@end_uses[[FT::Gas, EUT::
|
2014
|
-
@end_uses[[FT::Gas, EUT::
|
2015
|
-
@end_uses[[FT::Gas, EUT::
|
2029
|
+
@end_uses[[FT::Elec, EUT::Vehicle]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscElectricVehicleCharging}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2030
|
+
@end_uses[[FT::Elec, EUT::WellPump]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscWellPump}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2031
|
+
@end_uses[[FT::Elec, EUT::PoolHeater]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscPoolHeater}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2032
|
+
@end_uses[[FT::Elec, EUT::PoolPump]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscPoolPump}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2033
|
+
@end_uses[[FT::Elec, EUT::HotTubHeater]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscHotTubHeater}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2034
|
+
@end_uses[[FT::Elec, EUT::HotTubPump]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscHotTubPump}:InteriorEquipment:#{EPlus::FuelTypeElectricity}"])
|
2035
|
+
end
|
2036
|
+
@end_uses[[FT::Elec, EUT::PV]] = EndUse.new(meters: ['Photovoltaic:ElectricityProduced', 'PowerConversion:ElectricityProduced'])
|
2037
|
+
@end_uses[[FT::Elec, EUT::Generator]] = EndUse.new(meters: ['Cogeneration:ElectricityProduced'])
|
2038
|
+
@end_uses[[FT::Gas, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeNaturalGas))
|
2039
|
+
@end_uses[[FT::Gas, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeNaturalGas))
|
2040
|
+
@end_uses[[FT::Gas, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2041
|
+
@end_uses[[FT::Gas, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2042
|
+
@end_uses[[FT::Gas, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeNaturalGas))
|
2016
2043
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2017
|
-
@end_uses[[FT::Gas, EUT::PoolHeater]] = EndUse.new(
|
2018
|
-
@end_uses[[FT::Gas, EUT::HotTubHeater]] = EndUse.new(
|
2019
|
-
@end_uses[[FT::Gas, EUT::Grill]] = EndUse.new(
|
2020
|
-
@end_uses[[FT::Gas, EUT::Lighting]] = EndUse.new(
|
2021
|
-
@end_uses[[FT::Gas, EUT::Fireplace]] = EndUse.new(
|
2022
|
-
end
|
2023
|
-
@end_uses[[FT::
|
2024
|
-
@end_uses[[FT::Oil, EUT::
|
2025
|
-
@end_uses[[FT::Oil, EUT::
|
2026
|
-
@end_uses[[FT::Oil, EUT::
|
2027
|
-
@end_uses[[FT::Oil, EUT::
|
2044
|
+
@end_uses[[FT::Gas, EUT::PoolHeater]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscPoolHeater}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2045
|
+
@end_uses[[FT::Gas, EUT::HotTubHeater]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscHotTubHeater}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2046
|
+
@end_uses[[FT::Gas, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2047
|
+
@end_uses[[FT::Gas, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2048
|
+
@end_uses[[FT::Gas, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypeNaturalGas}"])
|
2049
|
+
end
|
2050
|
+
@end_uses[[FT::Gas, EUT::Generator]] = EndUse.new(meters: ["Cogeneration:#{EPlus::FuelTypeNaturalGas}"])
|
2051
|
+
@end_uses[[FT::Oil, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeOil))
|
2052
|
+
@end_uses[[FT::Oil, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeOil))
|
2053
|
+
@end_uses[[FT::Oil, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeOil}"])
|
2054
|
+
@end_uses[[FT::Oil, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeOil}"])
|
2055
|
+
@end_uses[[FT::Oil, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeOil))
|
2028
2056
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2029
|
-
@end_uses[[FT::Oil, EUT::Grill]] = EndUse.new(
|
2030
|
-
@end_uses[[FT::Oil, EUT::Lighting]] = EndUse.new(
|
2031
|
-
@end_uses[[FT::Oil, EUT::Fireplace]] = EndUse.new(
|
2032
|
-
end
|
2033
|
-
@end_uses[[FT::Propane, EUT::Heating]] = EndUse.new(
|
2034
|
-
@end_uses[[FT::Propane, EUT::HotWater]] = EndUse.new(
|
2035
|
-
@end_uses[[FT::Propane, EUT::ClothesDryer]] = EndUse.new(
|
2036
|
-
@end_uses[[FT::Propane, EUT::RangeOven]] = EndUse.new(
|
2037
|
-
@end_uses[[FT::Propane, EUT::MechVentPreheat]] = EndUse.new(
|
2057
|
+
@end_uses[[FT::Oil, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypeOil}"])
|
2058
|
+
@end_uses[[FT::Oil, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypeOil}"])
|
2059
|
+
@end_uses[[FT::Oil, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypeOil}"])
|
2060
|
+
end
|
2061
|
+
@end_uses[[FT::Propane, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypePropane))
|
2062
|
+
@end_uses[[FT::Propane, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypePropane))
|
2063
|
+
@end_uses[[FT::Propane, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypePropane}"])
|
2064
|
+
@end_uses[[FT::Propane, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypePropane}"])
|
2065
|
+
@end_uses[[FT::Propane, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypePropane))
|
2038
2066
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2039
|
-
@end_uses[[FT::Propane, EUT::Grill]] = EndUse.new(
|
2040
|
-
@end_uses[[FT::Propane, EUT::Lighting]] = EndUse.new(
|
2041
|
-
@end_uses[[FT::Propane, EUT::Fireplace]] = EndUse.new(
|
2042
|
-
end
|
2043
|
-
@end_uses[[FT::
|
2044
|
-
@end_uses[[FT::WoodCord, EUT::
|
2045
|
-
@end_uses[[FT::WoodCord, EUT::
|
2046
|
-
@end_uses[[FT::WoodCord, EUT::
|
2047
|
-
@end_uses[[FT::WoodCord, EUT::
|
2067
|
+
@end_uses[[FT::Propane, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypePropane}"])
|
2068
|
+
@end_uses[[FT::Propane, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypePropane}"])
|
2069
|
+
@end_uses[[FT::Propane, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypePropane}"])
|
2070
|
+
end
|
2071
|
+
@end_uses[[FT::Propane, EUT::Generator]] = EndUse.new(meters: ["Cogeneration:#{EPlus::FuelTypePropane}"])
|
2072
|
+
@end_uses[[FT::WoodCord, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeWoodCord))
|
2073
|
+
@end_uses[[FT::WoodCord, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeWoodCord))
|
2074
|
+
@end_uses[[FT::WoodCord, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeWoodCord}"])
|
2075
|
+
@end_uses[[FT::WoodCord, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeWoodCord}"])
|
2076
|
+
@end_uses[[FT::WoodCord, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeWoodCord))
|
2048
2077
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2049
|
-
@end_uses[[FT::WoodCord, EUT::Grill]] = EndUse.new(
|
2050
|
-
@end_uses[[FT::WoodCord, EUT::Lighting]] = EndUse.new(
|
2051
|
-
@end_uses[[FT::WoodCord, EUT::Fireplace]] = EndUse.new(
|
2052
|
-
end
|
2053
|
-
@end_uses[[FT::WoodPellets, EUT::Heating]] = EndUse.new(
|
2054
|
-
@end_uses[[FT::WoodPellets, EUT::HotWater]] = EndUse.new(
|
2055
|
-
@end_uses[[FT::WoodPellets, EUT::ClothesDryer]] = EndUse.new(
|
2056
|
-
@end_uses[[FT::WoodPellets, EUT::RangeOven]] = EndUse.new(
|
2057
|
-
@end_uses[[FT::WoodPellets, EUT::MechVentPreheat]] = EndUse.new(
|
2078
|
+
@end_uses[[FT::WoodCord, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypeWoodCord}"])
|
2079
|
+
@end_uses[[FT::WoodCord, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypeWoodCord}"])
|
2080
|
+
@end_uses[[FT::WoodCord, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypeWoodCord}"])
|
2081
|
+
end
|
2082
|
+
@end_uses[[FT::WoodPellets, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeWoodPellets))
|
2083
|
+
@end_uses[[FT::WoodPellets, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeWoodPellets))
|
2084
|
+
@end_uses[[FT::WoodPellets, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeWoodPellets}"])
|
2085
|
+
@end_uses[[FT::WoodPellets, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeWoodPellets}"])
|
2086
|
+
@end_uses[[FT::WoodPellets, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeWoodPellets))
|
2058
2087
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2059
|
-
@end_uses[[FT::WoodPellets, EUT::Grill]] = EndUse.new(
|
2060
|
-
@end_uses[[FT::WoodPellets, EUT::Lighting]] = EndUse.new(
|
2061
|
-
@end_uses[[FT::WoodPellets, EUT::Fireplace]] = EndUse.new(
|
2062
|
-
end
|
2063
|
-
@end_uses[[FT::Coal, EUT::Heating]] = EndUse.new(
|
2064
|
-
@end_uses[[FT::Coal, EUT::HotWater]] = EndUse.new(
|
2065
|
-
@end_uses[[FT::Coal, EUT::ClothesDryer]] = EndUse.new(
|
2066
|
-
@end_uses[[FT::Coal, EUT::RangeOven]] = EndUse.new(
|
2067
|
-
@end_uses[[FT::Coal, EUT::MechVentPreheat]] = EndUse.new(
|
2088
|
+
@end_uses[[FT::WoodPellets, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypeWoodPellets}"])
|
2089
|
+
@end_uses[[FT::WoodPellets, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypeWoodPellets}"])
|
2090
|
+
@end_uses[[FT::WoodPellets, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypeWoodPellets}"])
|
2091
|
+
end
|
2092
|
+
@end_uses[[FT::Coal, EUT::Heating]] = EndUse.new(variables: OutputVars.SpaceHeating(EPlus::FuelTypeCoal))
|
2093
|
+
@end_uses[[FT::Coal, EUT::HotWater]] = EndUse.new(variables: OutputVars.WaterHeating(EPlus::FuelTypeCoal))
|
2094
|
+
@end_uses[[FT::Coal, EUT::ClothesDryer]] = EndUse.new(meters: ["#{Constants.ObjectNameClothesDryer}:InteriorEquipment:#{EPlus::FuelTypeCoal}"])
|
2095
|
+
@end_uses[[FT::Coal, EUT::RangeOven]] = EndUse.new(meters: ["#{Constants.ObjectNameCookingRange}:InteriorEquipment:#{EPlus::FuelTypeCoal}"])
|
2096
|
+
@end_uses[[FT::Coal, EUT::MechVentPreheat]] = EndUse.new(variables: OutputVars.MechVentPreconditioning(EPlus::FuelTypeCoal))
|
2068
2097
|
if @eri_design.nil? # Skip end uses not used by ERI
|
2069
|
-
@end_uses[[FT::Coal, EUT::Grill]] = EndUse.new(
|
2070
|
-
@end_uses[[FT::Coal, EUT::Lighting]] = EndUse.new(
|
2071
|
-
@end_uses[[FT::Coal, EUT::Fireplace]] = EndUse.new(
|
2098
|
+
@end_uses[[FT::Coal, EUT::Grill]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscGrill}:InteriorEquipment:#{EPlus::FuelTypeCoal}"])
|
2099
|
+
@end_uses[[FT::Coal, EUT::Lighting]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscLighting}:InteriorEquipment:#{EPlus::FuelTypeCoal}"])
|
2100
|
+
@end_uses[[FT::Coal, EUT::Fireplace]] = EndUse.new(meters: ["#{Constants.ObjectNameMiscFireplace}:InteriorEquipment:#{EPlus::FuelTypeCoal}"])
|
2072
2101
|
end
|
2073
2102
|
|
2074
2103
|
@end_uses.each do |key, end_use|
|
@@ -2094,8 +2123,8 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2094
2123
|
|
2095
2124
|
# Peak Fuels
|
2096
2125
|
@peak_fuels = {}
|
2097
|
-
@peak_fuels[[FT::Elec, PFT::Winter]] = PeakFuel.new(
|
2098
|
-
@peak_fuels[[FT::Elec, PFT::Summer]] = PeakFuel.new(
|
2126
|
+
@peak_fuels[[FT::Elec, PFT::Winter]] = PeakFuel.new(meters: ['Heating:EnergyTransfer'], report: 'Peak Electricity Winter Total')
|
2127
|
+
@peak_fuels[[FT::Elec, PFT::Summer]] = PeakFuel.new(meters: ['Cooling:EnergyTransfer'], report: 'Peak Electricity Summer Total')
|
2099
2128
|
|
2100
2129
|
@peak_fuels.each do |key, peak_fuel|
|
2101
2130
|
fuel_type, peak_fuel_type = key
|
@@ -2108,9 +2137,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2108
2137
|
@loads = {}
|
2109
2138
|
@loads[LT::Heating] = Load.new(ems_variable: 'loads_htg_tot')
|
2110
2139
|
@loads[LT::Cooling] = Load.new(ems_variable: 'loads_clg_tot')
|
2111
|
-
@loads[LT::HotWaterDelivered] = Load.new(
|
2140
|
+
@loads[LT::HotWaterDelivered] = Load.new(variables: OutputVars.WaterHeatingLoad)
|
2112
2141
|
@loads[LT::HotWaterTankLosses] = Load.new()
|
2113
|
-
@loads[LT::HotWaterDesuperheater] = Load.new(
|
2142
|
+
@loads[LT::HotWaterDesuperheater] = Load.new(variables: OutputVars.WaterHeaterLoadDesuperheater)
|
2114
2143
|
@loads[LT::HotWaterSolarThermal] = Load.new()
|
2115
2144
|
|
2116
2145
|
@loads.each do |load_type, load|
|
@@ -2137,7 +2166,6 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2137
2166
|
@component_loads[[LT::Heating, CLT::NaturalVentilation]] = ComponentLoad.new(ems_variable: 'loads_htg_natvent')
|
2138
2167
|
@component_loads[[LT::Heating, CLT::MechanicalVentilation]] = ComponentLoad.new(ems_variable: 'loads_htg_mechvent')
|
2139
2168
|
@component_loads[[LT::Heating, CLT::WholeHouseFan]] = ComponentLoad.new(ems_variable: 'loads_htg_whf')
|
2140
|
-
@component_loads[[LT::Heating, CLT::ClothesDryerExhaust]] = ComponentLoad.new(ems_variable: 'loads_htg_cd')
|
2141
2169
|
@component_loads[[LT::Heating, CLT::Ducts]] = ComponentLoad.new(ems_variable: 'loads_htg_ducts')
|
2142
2170
|
@component_loads[[LT::Heating, CLT::InternalGains]] = ComponentLoad.new(ems_variable: 'loads_htg_intgains')
|
2143
2171
|
@component_loads[[LT::Cooling, CLT::Roofs]] = ComponentLoad.new(ems_variable: 'loads_clg_roofs')
|
@@ -2155,7 +2183,6 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2155
2183
|
@component_loads[[LT::Cooling, CLT::NaturalVentilation]] = ComponentLoad.new(ems_variable: 'loads_clg_natvent')
|
2156
2184
|
@component_loads[[LT::Cooling, CLT::MechanicalVentilation]] = ComponentLoad.new(ems_variable: 'loads_clg_mechvent')
|
2157
2185
|
@component_loads[[LT::Cooling, CLT::WholeHouseFan]] = ComponentLoad.new(ems_variable: 'loads_clg_whf')
|
2158
|
-
@component_loads[[LT::Cooling, CLT::ClothesDryerExhaust]] = ComponentLoad.new(ems_variable: 'loads_clg_cd')
|
2159
2186
|
@component_loads[[LT::Cooling, CLT::Ducts]] = ComponentLoad.new(ems_variable: 'loads_clg_ducts')
|
2160
2187
|
@component_loads[[LT::Cooling, CLT::InternalGains]] = ComponentLoad.new(ems_variable: 'loads_clg_intgains')
|
2161
2188
|
|
@@ -2188,8 +2215,8 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2188
2215
|
|
2189
2216
|
# Peak Loads
|
2190
2217
|
@peak_loads = {}
|
2191
|
-
@peak_loads[LT::Heating] = PeakLoad.new(
|
2192
|
-
@peak_loads[LT::Cooling] = PeakLoad.new(
|
2218
|
+
@peak_loads[LT::Heating] = PeakLoad.new(meters: ['Heating:EnergyTransfer'])
|
2219
|
+
@peak_loads[LT::Cooling] = PeakLoad.new(meters: ['Cooling:EnergyTransfer'])
|
2193
2220
|
|
2194
2221
|
@peak_loads.each do |load_type, peak_load|
|
2195
2222
|
peak_load.name = "Peak Load: #{load_type}"
|
@@ -2203,10 +2230,9 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2203
2230
|
# Airflows
|
2204
2231
|
@airflows = {}
|
2205
2232
|
@airflows[AFT::Infiltration] = Airflow.new(ems_program: Constants.ObjectNameInfiltration + ' program', ems_variables: [(Constants.ObjectNameInfiltration + ' flow act').gsub(' ', '_')])
|
2206
|
-
@airflows[AFT::MechanicalVentilation] = Airflow.new(ems_program: Constants.ObjectNameInfiltration + ' program', ems_variables: [
|
2233
|
+
@airflows[AFT::MechanicalVentilation] = Airflow.new(ems_program: Constants.ObjectNameInfiltration + ' program', ems_variables: ['Qfan'])
|
2207
2234
|
@airflows[AFT::NaturalVentilation] = Airflow.new(ems_program: Constants.ObjectNameNaturalVentilation + ' program', ems_variables: [(Constants.ObjectNameNaturalVentilation + ' flow act').gsub(' ', '_')])
|
2208
2235
|
@airflows[AFT::WholeHouseFan] = Airflow.new(ems_program: Constants.ObjectNameNaturalVentilation + ' program', ems_variables: [(Constants.ObjectNameWholeHouseFan + ' flow act').gsub(' ', '_')])
|
2209
|
-
@airflows[AFT::ClothesDryerExhaust] = Airflow.new(ems_program: Constants.ObjectNameInfiltration + ' program', ems_variables: [(Constants.ObjectNameClothesDryerExhaust + ' flow act').gsub(' ', '_')])
|
2210
2236
|
|
2211
2237
|
@airflows.each do |airflow_type, airflow|
|
2212
2238
|
airflow.name = "Airflow: #{airflow_type}"
|
@@ -2237,19 +2263,13 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2237
2263
|
end
|
2238
2264
|
|
2239
2265
|
class OutputVars
|
2240
|
-
def self.
|
2241
|
-
return { 'OpenStudio::Model::AirLoopHVACUnitarySystem' => [
|
2242
|
-
'OpenStudio::Model::CoilHeatingDXSingleSpeed' => [
|
2243
|
-
'OpenStudio::Model::CoilHeatingDXMultiSpeed' => [
|
2244
|
-
'OpenStudio::Model::CoilHeatingElectric' => [
|
2245
|
-
'OpenStudio::Model::
|
2246
|
-
'OpenStudio::Model::
|
2247
|
-
'OpenStudio::Model::BoilerHotWater' => ['Boiler Electric Energy'] }
|
2248
|
-
end
|
2249
|
-
|
2250
|
-
def self.SpaceHeatingFuel(fuel)
|
2251
|
-
fuel = EPlus.output_fuel_map(fuel)
|
2252
|
-
return { 'OpenStudio::Model::CoilHeatingGas' => ["Heating Coil #{fuel} Energy"],
|
2266
|
+
def self.SpaceHeating(fuel)
|
2267
|
+
return { 'OpenStudio::Model::AirLoopHVACUnitarySystem' => ["Unitary System Heating Ancillary #{fuel} Energy"],
|
2268
|
+
'OpenStudio::Model::CoilHeatingDXSingleSpeed' => ["Heating Coil #{fuel} Energy", "Heating Coil Crankcase Heater #{fuel} Energy", "Heating Coil Defrost #{fuel} Energy"],
|
2269
|
+
'OpenStudio::Model::CoilHeatingDXMultiSpeed' => ["Heating Coil #{fuel} Energy", "Heating Coil Crankcase Heater #{fuel} Energy", "Heating Coil Defrost #{fuel} Energy"],
|
2270
|
+
'OpenStudio::Model::CoilHeatingElectric' => ["Heating Coil #{fuel} Energy", "Heating Coil Crankcase Heater #{fuel} Energy", "Heating Coil Defrost #{fuel} Energy"],
|
2271
|
+
'OpenStudio::Model::CoilHeatingGas' => ["Heating Coil #{fuel} Energy"],
|
2272
|
+
'OpenStudio::Model::CoilHeatingWaterToAirHeatPumpEquationFit' => ["Heating Coil #{fuel} Energy", "Heating Coil Crankcase Heater #{fuel} Energy", "Heating Coil Defrost #{fuel} Energy"],
|
2253
2273
|
'OpenStudio::Model::ZoneHVACBaseboardConvectiveElectric' => ["Baseboard #{fuel} Energy"],
|
2254
2274
|
'OpenStudio::Model::BoilerHotWater' => ["Boiler #{fuel} Energy"] }
|
2255
2275
|
end
|
@@ -2265,34 +2285,33 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2265
2285
|
end
|
2266
2286
|
|
2267
2287
|
def self.SpaceCoolingElectricity
|
2268
|
-
|
2269
|
-
|
2270
|
-
'OpenStudio::Model::
|
2271
|
-
'OpenStudio::Model::
|
2288
|
+
fuel = EPlus::FuelTypeElectricity
|
2289
|
+
return { 'OpenStudio::Model::CoilCoolingDXSingleSpeed' => ["Cooling Coil #{fuel} Energy", "Cooling Coil Crankcase Heater #{fuel} Energy"],
|
2290
|
+
'OpenStudio::Model::CoilCoolingDXMultiSpeed' => ["Cooling Coil #{fuel} Energy", "Cooling Coil Crankcase Heater #{fuel} Energy"],
|
2291
|
+
'OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit' => ["Cooling Coil #{fuel} Energy", "Cooling Coil Crankcase Heater #{fuel} Energy"],
|
2292
|
+
'OpenStudio::Model::EvaporativeCoolerDirectResearchSpecial' => ["Evaporative Cooler #{fuel} Energy"] }
|
2272
2293
|
end
|
2273
2294
|
|
2274
2295
|
def self.DehumidifierElectricity
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
def self.WaterHeatingElectricity
|
2279
|
-
return { 'OpenStudio::Model::WaterHeaterMixed' => ['Water Heater Electric Energy', 'Water Heater Off Cycle Parasitic Electric Energy', 'Water Heater On Cycle Parasitic Electric Energy'],
|
2280
|
-
'OpenStudio::Model::WaterHeaterStratified' => ['Water Heater Electric Energy', 'Water Heater Off Cycle Parasitic Electric Energy', 'Water Heater On Cycle Parasitic Electric Energy'],
|
2281
|
-
'OpenStudio::Model::CoilWaterHeatingAirToWaterHeatPumpWrapped' => ['Cooling Coil Water Heating Electric Energy'] }
|
2296
|
+
fuel = EPlus::FuelTypeElectricity
|
2297
|
+
return { 'OpenStudio::Model::ZoneHVACDehumidifierDX' => ["Zone Dehumidifier #{fuel} Energy"] }
|
2282
2298
|
end
|
2283
2299
|
|
2284
2300
|
def self.WaterHeatingElectricitySolarThermalPump
|
2285
|
-
|
2301
|
+
fuel = EPlus::FuelTypeElectricity
|
2302
|
+
return { 'OpenStudio::Model::PumpConstantSpeed' => ["Pump #{fuel} Energy"] }
|
2286
2303
|
end
|
2287
2304
|
|
2288
2305
|
def self.WaterHeatingElectricityRecircPump
|
2289
|
-
|
2306
|
+
fuel = EPlus::FuelTypeElectricity
|
2307
|
+
return { 'OpenStudio::Model::ElectricEquipment' => ["Electric Equipment #{fuel} Energy"] }
|
2290
2308
|
end
|
2291
2309
|
|
2292
|
-
def self.
|
2293
|
-
fuel
|
2294
|
-
|
2295
|
-
'OpenStudio::Model::
|
2310
|
+
def self.WaterHeating(fuel)
|
2311
|
+
return { 'OpenStudio::Model::WaterHeaterMixed' => ["Water Heater #{fuel} Energy", "Water Heater Off Cycle Parasitic #{fuel} Energy", "Water Heater On Cycle Parasitic #{fuel} Energy"],
|
2312
|
+
'OpenStudio::Model::WaterHeaterStratified' => ["Water Heater #{fuel} Energy", "Water Heater Off Cycle Parasitic #{fuel} Energy", "Water Heater On Cycle Parasitic #{fuel} Energy"],
|
2313
|
+
'OpenStudio::Model::CoilWaterHeatingAirToWaterHeatPumpWrapped' => ["Cooling Coil Water Heating #{fuel} Energy"],
|
2314
|
+
'OpenStudio::Model::FanOnOff' => ["Fan #{fuel} Energy"] }
|
2296
2315
|
end
|
2297
2316
|
|
2298
2317
|
def self.WaterHeatingLoad
|
@@ -2312,15 +2331,20 @@ class SimulationOutputReport < OpenStudio::Measure::ReportingMeasure
|
|
2312
2331
|
return { 'OpenStudio::Model::WaterHeaterStratified' => ['Water Heater Use Side Heat Transfer Energy'] }
|
2313
2332
|
end
|
2314
2333
|
|
2315
|
-
def self.
|
2316
|
-
return { 'OpenStudio::Model::OtherEquipment' => [
|
2334
|
+
def self.MechVentPreconditioning(fuel)
|
2335
|
+
return { 'OpenStudio::Model::OtherEquipment' => ["Other Equipment #{fuel} Energy"] }
|
2317
2336
|
end
|
2337
|
+
end
|
2338
|
+
end
|
2318
2339
|
|
2319
|
-
|
2320
|
-
|
2321
|
-
|
2340
|
+
def get_all_variable_keys(vars)
|
2341
|
+
var_keys = []
|
2342
|
+
vars.keys.each do |key|
|
2343
|
+
vars[key].each do |var_key|
|
2344
|
+
var_keys << var_key
|
2322
2345
|
end
|
2323
2346
|
end
|
2347
|
+
return var_keys
|
2324
2348
|
end
|
2325
2349
|
|
2326
2350
|
# register the measure to be used by the application
|