honeybee-openstudio 2.33.1 → 2.33.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/honeybee-openstudio.gemspec +1 -1
 - data/lib/to_openstudio/hvac/template.rb +88 -2
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 9f0ab9bc81366ae4f3cecd686b7b84f27116f85d279f19b70debffcbfea19be4
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e3a6188aba6202306fee8a740469a1c0c2420bce2404f899df8371a8c7c2469f
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ee8d75b9ac45f6de8187d1945988f880050faf2c762d643a36adf2e513a50931451e52e05b604ff19a476d9bfb43a3b50872d4cd2037f05471307bf617385fb3
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 54a8536d0fd02be9f1829776adc0b8eefc45dfaef920fed8cfc46feabac79777218a257fbdba3a88d195d77f137ec6fc6c22be5d2bef8ad197b3ca9e8ec67c15
         
     | 
    
        data/honeybee-openstudio.gemspec
    CHANGED
    
    | 
         @@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
     | 
|
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            Gem::Specification.new do |spec|
         
     | 
| 
       6 
6 
     | 
    
         
             
              spec.name          = 'honeybee-openstudio'
         
     | 
| 
       7 
     | 
    
         
            -
              spec.version       = '2.33. 
     | 
| 
      
 7 
     | 
    
         
            +
              spec.version       = '2.33.2'
         
     | 
| 
       8 
8 
     | 
    
         
             
              spec.authors       = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
         
     | 
| 
       9 
9 
     | 
    
         
             
              spec.email         = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
         @@ -58,10 +58,11 @@ module Honeybee 
     | 
|
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
                  # make the standard applier
         
     | 
| 
       60 
60 
     | 
    
         
             
                  if @hash[:vintage]
         
     | 
| 
       61 
     | 
    
         
            -
                     
     | 
| 
      
 61 
     | 
    
         
            +
                    standard_id = @@vintage_mapper[@hash[:vintage].to_sym]
         
     | 
| 
       62 
62 
     | 
    
         
             
                  else
         
     | 
| 
       63 
     | 
    
         
            -
                     
     | 
| 
      
 63 
     | 
    
         
            +
                    standard_id = @@vintage_mapper[hvac_defaults[:vintage][:default].to_sym]
         
     | 
| 
       64 
64 
     | 
    
         
             
                  end
         
     | 
| 
      
 65 
     | 
    
         
            +
                  standard = Standard.build(standard_id)
         
     | 
| 
       65 
66 
     | 
    
         | 
| 
       66 
67 
     | 
    
         
             
                  # get the default equipment type
         
     | 
| 
       67 
68 
     | 
    
         
             
                  if @hash[:equipment_type]
         
     | 
| 
         @@ -114,6 +115,79 @@ module Honeybee 
     | 
|
| 
       114 
115 
     | 
    
         
             
                    end
         
     | 
| 
       115 
116 
     | 
    
         
             
                  end
         
     | 
| 
       116 
117 
     | 
    
         | 
| 
      
 118 
     | 
    
         
            +
                  # set the efficiencies of supply components in the air loop
         
     | 
| 
      
 119 
     | 
    
         
            +
                  if !os_air_loops.empty?
         
     | 
| 
      
 120 
     | 
    
         
            +
                    os_air_loops.each do |os_air_loop|
         
     | 
| 
      
 121 
     | 
    
         
            +
                      # set the supply fan efficiency
         
     | 
| 
      
 122 
     | 
    
         
            +
                      unless os_air_loop.supplyFan.empty?
         
     | 
| 
      
 123 
     | 
    
         
            +
                        s_fan = os_air_loop.supplyFan.get
         
     | 
| 
      
 124 
     | 
    
         
            +
                        s_fan = fan_from_component(s_fan)
         
     | 
| 
      
 125 
     | 
    
         
            +
                        unless s_fan.nil?
         
     | 
| 
      
 126 
     | 
    
         
            +
                          s_fan.setMaximumFlowRate(1)
         
     | 
| 
      
 127 
     | 
    
         
            +
                          standard.fan_apply_standard_minimum_motor_efficiency(
         
     | 
| 
      
 128 
     | 
    
         
            +
                            s_fan, standard.fan_brake_horsepower(s_fan))
         
     | 
| 
      
 129 
     | 
    
         
            +
                          s_fan.autosizeMaximumFlowRate()
         
     | 
| 
      
 130 
     | 
    
         
            +
                        end
         
     | 
| 
      
 131 
     | 
    
         
            +
                      end
         
     | 
| 
      
 132 
     | 
    
         
            +
                      # set the return fan efficiency
         
     | 
| 
      
 133 
     | 
    
         
            +
                      unless os_air_loop.returnFan.empty?
         
     | 
| 
      
 134 
     | 
    
         
            +
                        ex_fan = os_air_loop.returnFan.get
         
     | 
| 
      
 135 
     | 
    
         
            +
                        ex_fan = fan_from_component(ex_fan)
         
     | 
| 
      
 136 
     | 
    
         
            +
                        unless ex_fan.nil?
         
     | 
| 
      
 137 
     | 
    
         
            +
                          ex_fan.setMaximumFlowRate(1)
         
     | 
| 
      
 138 
     | 
    
         
            +
                          standard.fan_apply_standard_minimum_motor_efficiency(
         
     | 
| 
      
 139 
     | 
    
         
            +
                            ex_fan, standard.fan_brake_horsepower(ex_fan))
         
     | 
| 
      
 140 
     | 
    
         
            +
                          ex_fan.autosizeMaximumFlowRate()
         
     | 
| 
      
 141 
     | 
    
         
            +
                        end
         
     | 
| 
      
 142 
     | 
    
         
            +
                      end
         
     | 
| 
      
 143 
     | 
    
         
            +
                    end
         
     | 
| 
      
 144 
     | 
    
         
            +
                  end
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                  # get the boilers and assign the correct efficiency
         
     | 
| 
      
 147 
     | 
    
         
            +
                  if equipment_type.to_s.include? 'Boiler'
         
     | 
| 
      
 148 
     | 
    
         
            +
                    openstudio_model.getBoilerHotWaters.sort.each do |obj|
         
     | 
| 
      
 149 
     | 
    
         
            +
                      obj.setNominalCapacity(40000)  # set to a dummy value for the method
         
     | 
| 
      
 150 
     | 
    
         
            +
                      standard.boiler_hot_water_apply_efficiency_and_curves(obj)
         
     | 
| 
      
 151 
     | 
    
         
            +
                      obj.autosizeNominalCapacity()  # set it back to autosize
         
     | 
| 
      
 152 
     | 
    
         
            +
                      obj.setName(standard_id + ' Boiler')
         
     | 
| 
      
 153 
     | 
    
         
            +
                    end
         
     | 
| 
      
 154 
     | 
    
         
            +
                  end
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
                  # get the chillers and assign a reasonable COP from the standard
         
     | 
| 
      
 157 
     | 
    
         
            +
                  if equipment_type.to_s.include? 'Chiller'
         
     | 
| 
      
 158 
     | 
    
         
            +
                    # set the chiller efficiency
         
     | 
| 
      
 159 
     | 
    
         
            +
                    clg_tower_objs = openstudio_model.getCoolingTowerSingleSpeeds
         
     | 
| 
      
 160 
     | 
    
         
            +
                    openstudio_model.getChillerElectricEIRs.sort.each do |obj|
         
     | 
| 
      
 161 
     | 
    
         
            +
                      obj.setReferenceCapacity(2000000)  # set to a dummy value for method
         
     | 
| 
      
 162 
     | 
    
         
            +
                      if obj.name.empty?
         
     | 
| 
      
 163 
     | 
    
         
            +
                        obj_name = standard_id + ' Chiller'
         
     | 
| 
      
 164 
     | 
    
         
            +
                      else
         
     | 
| 
      
 165 
     | 
    
         
            +
                        obj_name = obj.name.get
         
     | 
| 
      
 166 
     | 
    
         
            +
                      end
         
     | 
| 
      
 167 
     | 
    
         
            +
                      standard.chiller_electric_eir_apply_efficiency_and_curves(obj, clg_tower_objs)
         
     | 
| 
      
 168 
     | 
    
         
            +
                      obj.autosizeReferenceCapacity()  # set it back to autosize
         
     | 
| 
      
 169 
     | 
    
         
            +
                      obj.setName(obj_name)
         
     | 
| 
      
 170 
     | 
    
         
            +
                    end
         
     | 
| 
      
 171 
     | 
    
         
            +
                  end
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
                  # set the efficiency of any gas heaters
         
     | 
| 
      
 174 
     | 
    
         
            +
                  if equipment_type.to_s.include? 'GasHeaters'
         
     | 
| 
      
 175 
     | 
    
         
            +
                    zones.each do |zon|
         
     | 
| 
      
 176 
     | 
    
         
            +
                      zon.equipment.each do |equp|
         
     | 
| 
      
 177 
     | 
    
         
            +
                        if !equp.to_ZoneHVACUnitHeater.empty?
         
     | 
| 
      
 178 
     | 
    
         
            +
                          unit_heater = equp.to_ZoneHVACUnitHeater.get
         
     | 
| 
      
 179 
     | 
    
         
            +
                          coil = unit_heater.heatingCoil
         
     | 
| 
      
 180 
     | 
    
         
            +
                          unless coil.to_CoilHeatingGas.empty?
         
     | 
| 
      
 181 
     | 
    
         
            +
                            coil = coil.to_CoilHeatingGas.get
         
     | 
| 
      
 182 
     | 
    
         
            +
                            coil.setNominalCapacity(10000)  # set to a dummy value for method
         
     | 
| 
      
 183 
     | 
    
         
            +
                            standard.coil_heating_gas_apply_efficiency_and_curves(coil)
         
     | 
| 
      
 184 
     | 
    
         
            +
                            coil.autosizeNominalCapacity()  # set it back to autosize
         
     | 
| 
      
 185 
     | 
    
         
            +
                          end
         
     | 
| 
      
 186 
     | 
    
         
            +
                        end
         
     | 
| 
      
 187 
     | 
    
         
            +
                      end
         
     | 
| 
      
 188 
     | 
    
         
            +
                    end
         
     | 
| 
      
 189 
     | 
    
         
            +
                  end
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
       117 
191 
     | 
    
         
             
                  # assign the economizer type if there's an air loop and the economizer is specified
         
     | 
| 
       118 
192 
     | 
    
         
             
                  if @hash[:economizer_type] && !os_air_loops.empty?
         
     | 
| 
       119 
193 
     | 
    
         
             
                    os_air_loops.each do |os_air_loop|
         
     | 
| 
         @@ -277,6 +351,18 @@ module Honeybee 
     | 
|
| 
       277 
351 
     | 
    
         | 
| 
       278 
352 
     | 
    
         
             
              private
         
     | 
| 
       279 
353 
     | 
    
         | 
| 
      
 354 
     | 
    
         
            +
                def fan_from_component(fan_component)
         
     | 
| 
      
 355 
     | 
    
         
            +
                  # get a detailed fan object from a generic fan HVAC component; will be nil if it's not a fan
         
     | 
| 
      
 356 
     | 
    
         
            +
                  if !fan_component.to_FanVariableVolume.empty?
         
     | 
| 
      
 357 
     | 
    
         
            +
                    return fan_component.to_FanVariableVolume.get
         
     | 
| 
      
 358 
     | 
    
         
            +
                  elsif !fan_component.to_FanConstantVolume.empty?
         
     | 
| 
      
 359 
     | 
    
         
            +
                    return fan_component.to_FanConstantVolume.get
         
     | 
| 
      
 360 
     | 
    
         
            +
                  elsif !fan_component.to_FanOnOff.empty?
         
     | 
| 
      
 361 
     | 
    
         
            +
                    return fan_component.to_FanOnOff.get
         
     | 
| 
      
 362 
     | 
    
         
            +
                  end
         
     | 
| 
      
 363 
     | 
    
         
            +
                  nil
         
     | 
| 
      
 364 
     | 
    
         
            +
                end
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
       280 
366 
     | 
    
         
             
                def get_existing_erv(os_air_loop)
         
     | 
| 
       281 
367 
     | 
    
         
             
                  # get an existing heat ecovery unit from an air loop; will be nil if there is none
         
     | 
| 
       282 
368 
     | 
    
         
             
                  os_air_loop.oaComponents.each do |supply_component|
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: honeybee-openstudio
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.33. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.33.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tanushree Charan
         
     | 
| 
         @@ -11,7 +11,7 @@ authors: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       13 
13 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       14 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 14 
     | 
    
         
            +
            date: 2022-10-10 00:00:00.000000000 Z
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies:
         
     | 
| 
       16 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       17 
17 
     | 
    
         
             
              name: bundler
         
     |