honeybee-openstudio 2.33.2 → 2.33.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yaml +2 -2
- data/Gemfile +1 -1
- data/honeybee-openstudio.gemspec +3 -3
- data/lib/honeybee/extension.rb +0 -16
- data/lib/honeybee/model.rb +0 -17
- data/lib/honeybee/model_object.rb +0 -15
- data/lib/honeybee/simulation/parameter_model.rb +0 -17
- data/lib/measures/from_honeybee_simulation_parameter/measure.rb +0 -4
- data/lib/to_openstudio/hvac/radiant.rb +0 -2
- data/lib/to_openstudio/hvac/template.rb +21 -12
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 450b27915cd3a6c85132220d29aa7a3289f7adcfd22d1917bb7ef77ca2813484
|
4
|
+
data.tar.gz: 6c78e0191422c5931c9ae976c2151c9f8f7c15b2b67f761ddc6fca30822b03c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27a76b0edd1eb349023133b5d9a59c3ab36ea223ac959c2e93bc7d34c1ebb32010a4bf6aa040787530e2606b2875697e93ddd86e23e6368c509864f3a14686a2
|
7
|
+
data.tar.gz: ad155d83f8ffa75cd56a56c49b386b0f61efbeaeca1f0a445e9a8280547fac0a4dd873df556b968a6ab7fa62172ebe78d721e6f5d0f0fe334d3be878a07ed1f5
|
data/.github/workflows/ci.yaml
CHANGED
@@ -15,8 +15,8 @@ jobs:
|
|
15
15
|
run: |
|
16
16
|
echo $(pwd)
|
17
17
|
echo $(ls)
|
18
|
-
docker pull nrel/openstudio:3.
|
19
|
-
docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.
|
18
|
+
docker pull nrel/openstudio:3.5.0
|
19
|
+
docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.5.0
|
20
20
|
docker exec -t test pwd
|
21
21
|
docker exec -t test ls
|
22
22
|
docker exec -t test bundle update
|
data/Gemfile
CHANGED
@@ -7,7 +7,7 @@ gemspec
|
|
7
7
|
if File.exist?('../OpenStudio-extension-gem') # local development copy
|
8
8
|
gem 'openstudio-extension', path: '../OpenStudio-extension-gem'
|
9
9
|
else # get it from rubygems.org
|
10
|
-
gem 'openstudio-extension', '0.
|
10
|
+
gem 'openstudio-extension', '0.6.0'
|
11
11
|
end
|
12
12
|
|
13
13
|
# coveralls gem is used to generate coverage reports through CI
|
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.4'
|
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
|
|
@@ -33,6 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
end
|
34
34
|
|
35
35
|
spec.add_dependency 'json_pure'
|
36
|
-
spec.add_dependency 'openstudio-extension', '0.
|
37
|
-
spec.add_dependency 'openstudio-standards', '~> 0.
|
36
|
+
spec.add_dependency 'openstudio-extension', '0.6.0'
|
37
|
+
spec.add_dependency 'openstudio-standards', '~> 0.3.0'
|
38
38
|
end
|
data/lib/honeybee/extension.rb
CHANGED
@@ -109,21 +109,5 @@ module Honeybee
|
|
109
109
|
@@standards
|
110
110
|
end
|
111
111
|
|
112
|
-
# check if the model schema is valid
|
113
|
-
def schema_valid?
|
114
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
115
|
-
require 'json-schema'
|
116
|
-
metaschema = JSON::Validator.validator_for_name('draft6').metaschema
|
117
|
-
JSON::Validator.validate(metaschema, @@schema)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
# return detailed schema validation errors
|
122
|
-
def schema_validation_errors
|
123
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
124
|
-
metaschema = JSON::Validator.validator_for_name('draft6').metaschema
|
125
|
-
JSON::Validator.fully_validate(metaschema, @@schema)
|
126
|
-
end
|
127
|
-
end
|
128
112
|
end
|
129
113
|
end
|
data/lib/honeybee/model.rb
CHANGED
@@ -66,23 +66,6 @@ module Honeybee
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
# check if the model is valid
|
70
|
-
def valid?
|
71
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
72
|
-
return validation_errors.empty?
|
73
|
-
else
|
74
|
-
return true
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
# return detailed model validation errors
|
79
|
-
def validation_errors
|
80
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
81
|
-
require 'json-schema'
|
82
|
-
JSON::Validator.fully_validate(@@schema, @hash, :fragment => "#/components/schemas/Model")
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
69
|
def defaults
|
87
70
|
@@schema[:components][:schemas][:ModelEnergyProperties][:properties]
|
88
71
|
end
|
@@ -106,21 +106,6 @@ module Honeybee
|
|
106
106
|
raise 'defaults not implemented for ModelObject, override in your class'
|
107
107
|
end
|
108
108
|
|
109
|
-
# check if the ModelObject is valid
|
110
|
-
def valid?
|
111
|
-
return validation_errors.empty?
|
112
|
-
end
|
113
|
-
|
114
|
-
# return detailed model validation errors
|
115
|
-
def validation_errors
|
116
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
117
|
-
require 'json-schema'
|
118
|
-
# if this raises a 'Invalid fragment resolution for :fragment option' it is because @type
|
119
|
-
# does not correspond to a definition in the schema
|
120
|
-
JSON::Validator.fully_validate(@@schema, @hash, :fragment => "#/components/schemas/#{@type}")
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
109
|
# remove illegal characters in identifier
|
125
110
|
def self.clean_name(str)
|
126
111
|
ascii = str.encode(Encoding.find('ASCII'), **@@encoding_options)
|
@@ -62,23 +62,6 @@ module Honeybee
|
|
62
62
|
raise "Incorrect model type for SimulationParameter '#{@type}'" unless @type == 'SimulationParameter'
|
63
63
|
end
|
64
64
|
|
65
|
-
# check if the model is valid
|
66
|
-
def valid?
|
67
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
68
|
-
return validation_errors.empty?
|
69
|
-
else
|
70
|
-
return true
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
# return detailed model validation errors
|
75
|
-
def validation_errors
|
76
|
-
if Gem.loaded_specs.has_key?("json-schema")
|
77
|
-
require 'json-schema'
|
78
|
-
JSON::Validator.fully_validate(@@schema, @hash, :fragment => "#/components/schemas/#{@type}")
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
65
|
def defaults
|
83
66
|
@@schema[:components][:schemas]
|
84
67
|
end
|
@@ -80,10 +80,6 @@ class FromHoneybeeSimulationParameter < OpenStudio::Measure::ModelMeasure
|
|
80
80
|
|
81
81
|
sim_par_object = Honeybee::SimulationParameter.read_from_disk(simulation_parameter_json)
|
82
82
|
|
83
|
-
if !sim_par_object.valid?
|
84
|
-
# runner.registerError("File '#{simulation_parameter_json}' is not valid")
|
85
|
-
# return false
|
86
|
-
end
|
87
83
|
STDOUT.flush
|
88
84
|
sim_par_object.to_openstudio_model(model)
|
89
85
|
STDOUT.flush
|
@@ -345,8 +345,6 @@ class OpenStudio::Model::Model
|
|
345
345
|
mat_roof_insulation.setName("Radiant Exterior Ceiling Insulation - #{(cz_mult + 1) * 2} in.")
|
346
346
|
|
347
347
|
# create radiant internal source constructions
|
348
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Model.Model', 'New constructions exclude the metal deck, as high thermal diffusivity materials cause errors in EnergyPlus internal source construction calculations.')
|
349
|
-
|
350
348
|
radiant_ground_slab_construction = nil
|
351
349
|
radiant_exterior_slab_construction = nil
|
352
350
|
radiant_interior_floor_slab_construction = nil
|
@@ -115,18 +115,23 @@ module Honeybee
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
# set the efficiencies of
|
118
|
+
# set the efficiencies of fans to be reasonable for DOAS vs. All-Air loops
|
119
119
|
if !os_air_loops.empty?
|
120
|
+
if equipment_type.to_s.include? 'DOAS'
|
121
|
+
fan_size = 0.2
|
122
|
+
else
|
123
|
+
fan_size = 2
|
124
|
+
end
|
120
125
|
os_air_loops.each do |os_air_loop|
|
121
126
|
# set the supply fan efficiency
|
122
127
|
unless os_air_loop.supplyFan.empty?
|
123
128
|
s_fan = os_air_loop.supplyFan.get
|
124
129
|
s_fan = fan_from_component(s_fan)
|
125
130
|
unless s_fan.nil?
|
126
|
-
s_fan.setMaximumFlowRate(
|
131
|
+
s_fan.setMaximumFlowRate(fan_size) # set to a typical value
|
127
132
|
standard.fan_apply_standard_minimum_motor_efficiency(
|
128
133
|
s_fan, standard.fan_brake_horsepower(s_fan))
|
129
|
-
s_fan.autosizeMaximumFlowRate()
|
134
|
+
s_fan.autosizeMaximumFlowRate() # set it back to autosize
|
130
135
|
end
|
131
136
|
end
|
132
137
|
# set the return fan efficiency
|
@@ -134,31 +139,35 @@ module Honeybee
|
|
134
139
|
ex_fan = os_air_loop.returnFan.get
|
135
140
|
ex_fan = fan_from_component(ex_fan)
|
136
141
|
unless ex_fan.nil?
|
137
|
-
ex_fan.setMaximumFlowRate(
|
142
|
+
ex_fan.setMaximumFlowRate(fan_size) # set to a typical value
|
138
143
|
standard.fan_apply_standard_minimum_motor_efficiency(
|
139
144
|
ex_fan, standard.fan_brake_horsepower(ex_fan))
|
140
|
-
ex_fan.autosizeMaximumFlowRate()
|
145
|
+
ex_fan.autosizeMaximumFlowRate() # set it back to autosize
|
141
146
|
end
|
142
147
|
end
|
143
148
|
end
|
144
149
|
end
|
145
150
|
|
146
|
-
# get the boilers and assign
|
151
|
+
# get the boilers and assign a reasonable efficiency (assuming 40kW boilers)
|
147
152
|
if equipment_type.to_s.include? 'Boiler'
|
148
153
|
openstudio_model.getBoilerHotWaters.sort.each do |obj|
|
149
|
-
obj.setNominalCapacity(40000) # set to a
|
154
|
+
obj.setNominalCapacity(40000) # set to a typical value
|
150
155
|
standard.boiler_hot_water_apply_efficiency_and_curves(obj)
|
151
156
|
obj.autosizeNominalCapacity() # set it back to autosize
|
152
157
|
obj.setName(standard_id + ' Boiler')
|
153
158
|
end
|
154
159
|
end
|
155
160
|
|
156
|
-
# get the chillers and assign a reasonable COP
|
161
|
+
# get the chillers and assign a reasonable COP (assuming 2000kW water-cooled; 600kW air-cooled)
|
157
162
|
if equipment_type.to_s.include? 'Chiller'
|
158
|
-
|
163
|
+
if equipment_type.to_s.include? 'ACChiller'
|
164
|
+
chiller_size = 600000
|
165
|
+
else
|
166
|
+
chiller_size = 2000000
|
167
|
+
end
|
159
168
|
clg_tower_objs = openstudio_model.getCoolingTowerSingleSpeeds
|
160
169
|
openstudio_model.getChillerElectricEIRs.sort.each do |obj|
|
161
|
-
obj.setReferenceCapacity(
|
170
|
+
obj.setReferenceCapacity(chiller_size) # set to a typical value
|
162
171
|
if obj.name.empty?
|
163
172
|
obj_name = standard_id + ' Chiller'
|
164
173
|
else
|
@@ -170,7 +179,7 @@ module Honeybee
|
|
170
179
|
end
|
171
180
|
end
|
172
181
|
|
173
|
-
# set the efficiency of any gas heaters
|
182
|
+
# set the efficiency of any gas heaters (assuming 10kW heaters)
|
174
183
|
if equipment_type.to_s.include? 'GasHeaters'
|
175
184
|
zones.each do |zon|
|
176
185
|
zon.equipment.each do |equp|
|
@@ -179,7 +188,7 @@ module Honeybee
|
|
179
188
|
coil = unit_heater.heatingCoil
|
180
189
|
unless coil.to_CoilHeatingGas.empty?
|
181
190
|
coil = coil.to_CoilHeatingGas.get
|
182
|
-
coil.setNominalCapacity(10000) # set to a
|
191
|
+
coil.setNominalCapacity(10000) # set to a typical value
|
183
192
|
standard.coil_heating_gas_apply_efficiency_and_curves(coil)
|
184
193
|
coil.autosizeNominalCapacity() # set it back to autosize
|
185
194
|
end
|
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.4
|
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-11-27 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
@@ -117,28 +117,28 @@ dependencies:
|
|
117
117
|
requirements:
|
118
118
|
- - '='
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.
|
120
|
+
version: 0.6.0
|
121
121
|
type: :runtime
|
122
122
|
prerelease: false
|
123
123
|
version_requirements: !ruby/object:Gem::Requirement
|
124
124
|
requirements:
|
125
125
|
- - '='
|
126
126
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0.
|
127
|
+
version: 0.6.0
|
128
128
|
- !ruby/object:Gem::Dependency
|
129
129
|
name: openstudio-standards
|
130
130
|
requirement: !ruby/object:Gem::Requirement
|
131
131
|
requirements:
|
132
132
|
- - "~>"
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0.
|
134
|
+
version: 0.3.0
|
135
135
|
type: :runtime
|
136
136
|
prerelease: false
|
137
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
139
|
- - "~>"
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: 0.
|
141
|
+
version: 0.3.0
|
142
142
|
description: Library and measures for translating between Honeybee JSON schema and
|
143
143
|
OpenStudio Model schema (OSM).
|
144
144
|
email:
|