openstudio-extension 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -8
- data/lib/openstudio/extension/core/CreateResults.rb +10 -3
- data/lib/openstudio/extension/core/os_lib_reporting.rb +8 -8
- data/lib/openstudio/extension/version.rb +1 -1
- data/lib/openstudio/extension.rb +20 -11
- data/lib/openstudio-extension.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4e2f50a7956aab9ba887ed122f081f9d1a593e9
|
4
|
+
data.tar.gz: 9883f17cccdb73a1f70ca70806c4a529f4d5837a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f41334de4ba12a02b02ba8c8963f912793c0885d922532f1b21af10656a368ab84baee8cdca6d9e75ec96cfd8d2dac35ccbf008201c2043c10717f5824058251
|
7
|
+
data.tar.gz: 78bd29c60ef04bef8e792095e4c919435e35f5f41fa3f9cd7a4dd64ed85c7d2184dbafaa367ea54bb4b8e5f57c06d0d7e5ed2f20e4519a24de9b9146d47d7739
|
data/README.md
CHANGED
@@ -36,7 +36,7 @@ To use this and other extension gems, you will need Ruby 2.2.4 and OpenStudio 2.
|
|
36
36
|
### Windows Installation
|
37
37
|
Install Ruby using the [RubyInstaller](https://rubyinstaller.org/downloads/archives/) for [Ruby 2.2.4 (x64)](https://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.2.4-x64.exe).
|
38
38
|
|
39
|
-
Install
|
39
|
+
Install Devkit using the [mingw64](https://dl.bintray.com/oneclick/rubyinstaller/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe) installer.
|
40
40
|
|
41
41
|
Check the ruby installation returns the correct Ruby version (2.2.4):
|
42
42
|
```
|
@@ -61,23 +61,23 @@ ruby -e "require 'openstudio'" -e "puts OpenStudio::Model::Model.new"
|
|
61
61
|
|
62
62
|
### Mac Installation
|
63
63
|
It is recommended that you install [rbenv](https://github.com/rbenv/rbenv) to easily manage difference versions of Ruby.
|
64
|
-
rbenv can be installed
|
65
|
-
```
|
64
|
+
rbenv can be installed via [Homebrew](https://brew.sh/):
|
65
|
+
```
|
66
66
|
brew install rbenv
|
67
67
|
rbenv init
|
68
68
|
rbenv install 2.2.4
|
69
69
|
```
|
70
70
|
|
71
71
|
Also install bundler
|
72
|
-
```
|
72
|
+
```
|
73
73
|
gem install bundler -v 1.17
|
74
74
|
```
|
75
75
|
|
76
76
|
Install [OpenStudio](https://www.openstudio.net/downloads).
|
77
77
|
|
78
|
-
Add the RUBYLIB environment variable to your bash_profile file. It should point to the Ruby folder within the OpenStudio Application you just downloaded:
|
79
|
-
```
|
80
|
-
export RUBYLIB
|
78
|
+
Add the RUBYLIB environment variable to your `bash_profile` (or similar) file. It should point to the Ruby folder within the OpenStudio Application you just downloaded (replace 2.7.2 with the version you are using):
|
79
|
+
```
|
80
|
+
export RUBYLIB=/Applications/OpenStudio-2.7.2/Ruby
|
81
81
|
```
|
82
82
|
|
83
83
|
|
@@ -180,7 +180,7 @@ The OpenStudio-extension gem can be used to easily initialize a new derivative e
|
|
180
180
|
|
181
181
|
* First, call the rake task:
|
182
182
|
```ruby
|
183
|
-
bundle exec rake
|
183
|
+
bundle exec rake init_new_gem
|
184
184
|
```
|
185
185
|
* Enter the name of the gem repository (use dashes between words and the repo name should end with '-gem')
|
186
186
|
* Enter the location of the directory where the gem directory should be created
|
@@ -388,14 +388,22 @@ module OsLib_CreateResults
|
|
388
388
|
end
|
389
389
|
end
|
390
390
|
|
391
|
+
# Get the electricity timeseries to determine the year used
|
392
|
+
elec = @sql.timeSeries(ann_env_pd, 'Zone Timestep', 'Electricity:Facility', '')
|
393
|
+
timeseries_yr = nil
|
394
|
+
if elec.is_initialized
|
395
|
+
timeseries_yr = elec.get.dateTimes[0].date.year
|
396
|
+
else
|
397
|
+
@runner.registerError('Peak Demand timeseries (Electricity:Facility at zone timestep) could not be found, cannot determine the informatino needed to calculate savings or incentives.')
|
398
|
+
end
|
391
399
|
# Setup the peak demand time window based on input arguments.
|
392
400
|
# Note that holidays and weekends are not excluded because
|
393
401
|
# of a bug in EnergyPlus dates.
|
394
402
|
# This will only impact corner-case buildings that have
|
395
403
|
# peak demand on weekends or holidays, which is unusual.
|
396
404
|
@runner.registerInfo("Peak Demand window is #{start_mo} #{start_day} to #{end_mo} #{end_day} from #{start_hr}:00 to #{end_hr}:00.")
|
397
|
-
start_date = OpenStudio::DateTime.new(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(start_mo), start_day), OpenStudio::Time.new(0, 0, 0, 0))
|
398
|
-
end_date = OpenStudio::DateTime.new(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(end_mo), end_day), OpenStudio::Time.new(0, 24, 0, 0))
|
405
|
+
start_date = OpenStudio::DateTime.new(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(start_mo), start_day, timeseries_yr), OpenStudio::Time.new(0, 0, 0, 0))
|
406
|
+
end_date = OpenStudio::DateTime.new(OpenStudio::Date.new(OpenStudio::MonthOfYear.new(end_mo), end_day, timeseries_yr), OpenStudio::Time.new(0, 24, 0, 0))
|
399
407
|
start_time = OpenStudio::Time.new(0, start_hr, 0, 0)
|
400
408
|
end_time = OpenStudio::Time.new(0, end_hr, 0, 0)
|
401
409
|
|
@@ -416,7 +424,6 @@ module OsLib_CreateResults
|
|
416
424
|
# electricity_peak_demand
|
417
425
|
electricity_peak_demand = -1.0
|
418
426
|
electricity_peak_demand_time = nil
|
419
|
-
elec = @sql.timeSeries(ann_env_pd, 'Zone Timestep', 'Electricity:Facility', '')
|
420
427
|
# deduce the timestep based on the hours simulated and the number of datapoints in the timeseries
|
421
428
|
if elec.is_initialized && day_types
|
422
429
|
elec = elec.get
|
@@ -1001,7 +1001,7 @@ module OsLib_Reporting
|
|
1001
1001
|
data_arrays << [setpoint.iddObject.name, 'Reset', desc, '', '']
|
1002
1002
|
|
1003
1003
|
when 'OS:SetpointManager:Warmest'
|
1004
|
-
setpoint = component.to_SetpointManagerWarmest
|
1004
|
+
setpoint = component.to_SetpointManagerWarmest.get
|
1005
1005
|
source_units = 'C'
|
1006
1006
|
if is_ip_units
|
1007
1007
|
target_units = 'F'
|
@@ -1009,12 +1009,12 @@ module OsLib_Reporting
|
|
1009
1009
|
target_units = source_units
|
1010
1010
|
end
|
1011
1011
|
min_sat_f = OpenStudio.convert(setpoint.minimumSetpointTemperature, source_units, target_units).get.round(1)
|
1012
|
-
max_sat_f = OpenStudio.convert(setpoint.
|
1012
|
+
max_sat_f = OpenStudio.convert(setpoint.maximumSetpointTemperature, source_units, target_units).get.round(1)
|
1013
1013
|
desc = "#{min_sat_f} #{target_units} to #{max_sat_f.round} #{target_units}"
|
1014
1014
|
data_arrays << [setpoint.iddObject.name, 'Reset SAT per Worst Zone', desc, '', '']
|
1015
1015
|
|
1016
1016
|
when 'OS:SetpointManager:WarmestTemperatureFlow'
|
1017
|
-
setpoint = component.to_SetpointManagerWarmestTemperatureFlow
|
1017
|
+
setpoint = component.to_SetpointManagerWarmestTemperatureFlow.get
|
1018
1018
|
source_units = 'C'
|
1019
1019
|
if is_ip_units
|
1020
1020
|
target_units = 'F'
|
@@ -1022,7 +1022,7 @@ module OsLib_Reporting
|
|
1022
1022
|
target_units = source_units
|
1023
1023
|
end
|
1024
1024
|
min_sat_f = OpenStudio.convert(setpoint.minimumSetpointTemperature, source_units, target_units).get.round(1)
|
1025
|
-
max_sat_f = OpenStudio.convert(setpoint.
|
1025
|
+
max_sat_f = OpenStudio.convert(setpoint.maximumSetpointTemperature, source_units, target_units).get.round(1)
|
1026
1026
|
desc = "#{min_sat_f} #{target_units} to #{max_sat_f.round} #{target_units}, #{setpoint.strategy}"
|
1027
1027
|
data_arrays << [setpoint.iddObject.name, 'Reset SAT & Flow per Worst Zone', desc, '', '']
|
1028
1028
|
end
|
@@ -1899,7 +1899,7 @@ module OsLib_Reporting
|
|
1899
1899
|
table = {}
|
1900
1900
|
table[:title] = 'Exterior Lighting'
|
1901
1901
|
table[:header] = columns
|
1902
|
-
table[:source_units] = ['', 'W', '', '', '
|
1902
|
+
table[:source_units] = ['', 'W', '', '', 'GJ'] # used for conversion, not needed for rendering.
|
1903
1903
|
table[:units] = ['', 'W', '', '', 'kWh']
|
1904
1904
|
table[:data] = []
|
1905
1905
|
|
@@ -3383,17 +3383,17 @@ module OsLib_Reporting
|
|
3383
3383
|
if is_ip_units
|
3384
3384
|
ee_power = elec_equip.powerPerFloorArea.to_f * 0.092903 # IP
|
3385
3385
|
ee_power = "#{ee_power.round(2)} (W/ft^2)"
|
3386
|
-
ee_total_power = ((elec_equip.powerPerFloorArea.to_f * space.floorArea)
|
3386
|
+
ee_total_power = ((elec_equip.powerPerFloorArea.to_f * space.floorArea))
|
3387
3387
|
else
|
3388
3388
|
ee_power = elec_equip.powerPerFloorArea.to_f
|
3389
3389
|
ee_power = "#{ee_power.round(2)} (W/m^2)"
|
3390
|
-
ee_total_power = ((elec_equip.powerPerFloorArea.to_f * space.floorArea))
|
3390
|
+
ee_total_power = ((elec_equip.powerPerFloorArea.to_f * space.floorArea))
|
3391
3391
|
end
|
3392
3392
|
end
|
3393
3393
|
|
3394
3394
|
if elec_equip.electricEquipmentDefinition.designLevelCalculationMethod == 'Watts/Person'
|
3395
3395
|
ee_power = "#{elec_equip.powerPerPerson.to_f.round(2)} (W/person)"
|
3396
|
-
ee_total_power = (elec_equip.powerPerPerson.to_f * space.numberOfPeople)
|
3396
|
+
ee_total_power = (elec_equip.powerPerPerson.to_f * space.numberOfPeople)
|
3397
3397
|
end
|
3398
3398
|
|
3399
3399
|
if elec_equip.electricEquipmentDefinition.designLevelCalculationMethod == 'EquipmentLevel'
|
data/lib/openstudio/extension.rb
CHANGED
@@ -163,10 +163,7 @@ module OpenStudio
|
|
163
163
|
end
|
164
164
|
|
165
165
|
if !conflicts.empty?
|
166
|
-
conflicts.
|
167
|
-
puts conflict
|
168
|
-
end
|
169
|
-
raise 'Conflicting file names found'
|
166
|
+
raise "Conflicting file names found: #{conflicts.join(', ')}"
|
170
167
|
end
|
171
168
|
|
172
169
|
return false
|
@@ -194,24 +191,36 @@ module OpenStudio
|
|
194
191
|
end
|
195
192
|
|
196
193
|
##
|
197
|
-
# Module method used to set the measure argument for measure_dir_name to argument_value
|
198
|
-
# argument_name must appear in the OSW or exception will be raised
|
194
|
+
# Module method used to set the measure argument for measure_dir_name to argument_value,
|
195
|
+
# argument_name must appear in the OSW or exception will be raised. If step_name is nil
|
196
|
+
# then all workflow steps matching measure_dir_name will be affected. If step_name is
|
197
|
+
# not nil, then only workflow steps matching measure_dir_name and step_name will be affected.
|
199
198
|
##
|
200
199
|
# @param [Hash] in_osw Initial OSW object as a Hash, keys should be symbolized
|
200
|
+
# @param [String] measure_dir_name Directory name of measure to set argument on
|
201
|
+
# @param [String] argument_name Name of the argument to set
|
202
|
+
# @param [String] argument_value Value to set the argument name to
|
203
|
+
# @param [String] step_name Optional argument, if present used to select workflow step to modify
|
201
204
|
#
|
202
|
-
# @return [Hash] Output OSW with measure argument set
|
205
|
+
# @return [Hash] Output OSW with measure argument set to argument value
|
203
206
|
#
|
204
|
-
def self.set_measure_argument(osw, measure_dir_name, argument_name, argument_value)
|
207
|
+
def self.set_measure_argument(osw, measure_dir_name, argument_name, argument_value, step_name = nil)
|
205
208
|
result = false
|
206
209
|
osw[:steps].each do |step|
|
207
210
|
if step[:measure_dir_name] == measure_dir_name
|
208
|
-
step[:
|
209
|
-
|
211
|
+
if step_name.nil? || step[:name] == step_name
|
212
|
+
step[:arguments][argument_name.to_sym] = argument_value
|
213
|
+
result = true
|
214
|
+
end
|
210
215
|
end
|
211
216
|
end
|
212
217
|
|
213
218
|
if !result
|
214
|
-
|
219
|
+
if step_name
|
220
|
+
raise "Could not set '#{argument_name}' to '#{argument_value}' for measure '#{measure_dir_name}' in step '#{step_name}'"
|
221
|
+
else
|
222
|
+
raise "Could not set '#{argument_name}' to '#{argument_value}' for measure '#{measure_dir_name}'"
|
223
|
+
end
|
215
224
|
end
|
216
225
|
|
217
226
|
return osw
|
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'openstudio/extension'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katherine Fleming
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-
|
13
|
+
date: 2019-09-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -166,6 +166,7 @@ files:
|
|
166
166
|
- lib/measures/openstudio_extension_test_measure/measure.xml
|
167
167
|
- lib/measures/openstudio_extension_test_measure/resources/os_lib_helper_methods.rb
|
168
168
|
- lib/measures/openstudio_extension_test_measure/tests/OpenStudioExtensionTestMeasure_Test.rb
|
169
|
+
- lib/openstudio-extension.rb
|
169
170
|
- lib/openstudio/extension.rb
|
170
171
|
- lib/openstudio/extension/core/CreateResults.rb
|
171
172
|
- lib/openstudio/extension/core/check_air_sys_temps.rb
|