honeybee-openstudio 2.38.17 → 2.38.19
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/.github/workflows/ci.yaml +2 -2
- data/Gemfile +1 -1
- data/honeybee-openstudio.gemspec +9 -9
- data/lib/files/urbanopt_Gemfile +25 -30
- data/lib/to_openstudio/geometry/room.rb +1 -1
- data/lib/to_openstudio/hvac/Model.hvac.rb +12 -5
- data/lib/to_openstudio/hvac/template.rb +35 -21
- data/lib/to_openstudio/ventcool/control.rb +1 -1
- 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: e3cb96d15a4b1fde5b1354b59121e61656e90a48488fb2317ea5f80820c370bd
|
4
|
+
data.tar.gz: ee8db24c3ab578357370e1c1ccda92f2be87d6ae742e04b476f06c3940387fb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90cbe284f8a97f36a8bc9bcc0cf9da55dc37fd5543f06ffdf6b007c600320b6f65c7c13b016370e2051f41841103f4effaa32b6a9be8abb7f5a554a220608c2c
|
7
|
+
data.tar.gz: bc16d6dd07b2a1646a157cb4b2d2086deb961994ddf5c3df7fd24893b938ae1626bb84eea1c01747fc77a40ad6b44895824f7b658249ae5d5fd7b1d2e162b933
|
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.9.0
|
19
|
+
docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.9.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.8.3'
|
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.38.
|
7
|
+
spec.version = '2.38.19'
|
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
|
|
@@ -21,18 +21,18 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
|
-
if /^2.
|
25
|
-
spec.required_ruby_version = "~> 2.
|
24
|
+
if /^3.2.2/.match(RUBY_VERSION)
|
25
|
+
spec.required_ruby_version = "~> 3.2.2"
|
26
26
|
|
27
|
-
spec.add_development_dependency "bundler", "~> 2.
|
28
|
-
spec.add_development_dependency "public_suffix", "~> 5.
|
29
|
-
spec.add_development_dependency "json-schema", "~>
|
30
|
-
spec.add_development_dependency "rake", "~> 13.
|
27
|
+
spec.add_development_dependency "bundler", "~> 2.4.10"
|
28
|
+
spec.add_development_dependency "public_suffix", "~> 5.1.1"
|
29
|
+
spec.add_development_dependency "json-schema", "~> 4.3.1"
|
30
|
+
spec.add_development_dependency "rake", "~> 13.2.1"
|
31
31
|
spec.add_development_dependency "rspec", "~> 3.9"
|
32
32
|
spec.add_development_dependency "rubocop", "~> 1.15.0"
|
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.8.3'
|
37
|
+
spec.add_dependency 'openstudio-standards', '~> 0.7.1'
|
38
38
|
end
|
data/lib/files/urbanopt_Gemfile
CHANGED
@@ -1,66 +1,61 @@
|
|
1
1
|
source 'http://rubygems.org'
|
2
2
|
|
3
|
-
ruby '~> 2.
|
3
|
+
ruby '~> 3.2.2'
|
4
4
|
|
5
5
|
# pin these dependencies to prevent releases of gems from breaking URBANopt
|
6
6
|
gem 'addressable', '2.8.1'
|
7
7
|
gem 'ansi', '1.5.0'
|
8
|
-
gem 'ast', '2.4.
|
9
|
-
gem 'bcl', '0.
|
8
|
+
gem 'ast', '2.4.3'
|
9
|
+
gem 'bcl', '0.8.0'
|
10
10
|
gem 'builder', '3.2.4'
|
11
11
|
gem 'docile', '1.4.1'
|
12
12
|
gem 'faraday', '1.0.1'
|
13
13
|
gem 'git', '1.12.0'
|
14
|
-
gem 'json-schema', '
|
14
|
+
gem 'json-schema', '4.3.1'
|
15
15
|
gem 'json_pure', '2.8.1'
|
16
16
|
gem 'macaddr', '1.7.2'
|
17
17
|
gem 'matrix', '0.4.2'
|
18
18
|
gem 'minitar', '0.12.1'
|
19
19
|
gem 'minitest', '5.14.4'
|
20
20
|
gem 'minitest-reporters', '1.4.3'
|
21
|
-
gem 'multipart-post', '2.4.
|
21
|
+
gem 'multipart-post', '2.4.0'
|
22
22
|
gem 'octokit', '4.18.0'
|
23
|
-
gem 'openstudio_measure_tester', '0.
|
24
|
-
gem 'openstudio-calibration', '0.
|
25
|
-
gem 'openstudio-common-measures', '0.
|
26
|
-
gem 'openstudio-ee', '0.
|
27
|
-
gem 'openstudio-extension', '0.
|
28
|
-
gem 'openstudio-geb', '0.
|
29
|
-
gem 'openstudio-load-flexibility-measures', '0.
|
30
|
-
gem 'openstudio-model-articulation', '0.
|
31
|
-
gem 'openstudio-standards', '0.
|
32
|
-
gem 'openstudio-workflow', '2.
|
23
|
+
gem 'openstudio_measure_tester', '0.4.1'
|
24
|
+
gem 'openstudio-calibration', '0.11.1'
|
25
|
+
gem 'openstudio-common-measures', '0.11.1'
|
26
|
+
gem 'openstudio-ee', '0.11.1'
|
27
|
+
gem 'openstudio-extension', '0.8.3'
|
28
|
+
gem 'openstudio-geb', '0.6.0'
|
29
|
+
gem 'openstudio-load-flexibility-measures', '0.10.1'
|
30
|
+
gem 'openstudio-model-articulation', '0.11.1'
|
31
|
+
gem 'openstudio-standards', '0.7.1'
|
32
|
+
gem 'openstudio-workflow', '2.4.0'
|
33
33
|
gem 'oslg', '0.3.0'
|
34
34
|
gem 'osut', '0.6.0'
|
35
|
-
gem 'parallel', '1.19.
|
35
|
+
gem 'parallel', '1.19.1'
|
36
36
|
gem 'parser', '3.2.2.2'
|
37
37
|
gem 'public_suffix', '5.1.1'
|
38
|
-
gem 'rainbow', '3.1.1'
|
39
38
|
gem 'rake', '13.2.1'
|
40
|
-
gem 'rchardet', '1.
|
41
|
-
gem 'regexp_parser', '2.9.
|
39
|
+
gem 'rchardet', '1.9.0'
|
40
|
+
gem 'regexp_parser', '2.9.0'
|
42
41
|
gem 'rexml', '3.2.5'
|
43
|
-
gem 'rubocop', '1.15.0'
|
44
|
-
gem 'rubocop-ast', '1.30.0'
|
45
|
-
gem 'rubocop-checkstyle_formatter', '0.4.0'
|
46
|
-
gem 'rubocop-performance', '1.11.5'
|
47
42
|
gem 'ruby-ole', '1.2.13.1'
|
48
43
|
gem 'ruby-progressbar', '1.13.0'
|
49
44
|
gem 'rubyzip', '2.3.2'
|
50
45
|
gem 'sawyer', '0.8.2'
|
51
|
-
gem '
|
46
|
+
gem 'simplecov_json_formatter', '0.1.4'
|
47
|
+
gem 'simplecov', '0.22.0'
|
52
48
|
gem 'simplecov-html', '0.13.1'
|
53
49
|
gem 'spreadsheet', '1.2.9'
|
54
50
|
gem 'systemu', '2.6.5'
|
55
|
-
gem 'tbd', '3.4.
|
51
|
+
gem 'tbd', '3.4.4'
|
56
52
|
gem 'topolys', '0.6.2'
|
57
|
-
gem '
|
58
|
-
gem 'urbanopt-
|
59
|
-
gem 'urbanopt-
|
60
|
-
gem 'urbanopt-reporting', '0.10.1'
|
53
|
+
gem 'urbanopt-core', '1.0.0'
|
54
|
+
gem 'urbanopt-geojson', '1.0.1'
|
55
|
+
gem 'urbanopt-reporting', '1.0.0'
|
61
56
|
gem 'uuid', '2.3.9'
|
62
57
|
gem 'yamler', '0.1.0'
|
63
58
|
gem 'zliby', '0.0.5'
|
64
59
|
|
65
60
|
# include the honeybee-openstudio-gem
|
66
|
-
gem 'honeybee-openstudio', '2.38.
|
61
|
+
gem 'honeybee-openstudio', '2.38.19'
|
@@ -427,7 +427,7 @@ module Honeybee
|
|
427
427
|
end
|
428
428
|
end
|
429
429
|
end
|
430
|
-
# add the control
|
430
|
+
# add the control strategy of the ventilation openings using the EMS
|
431
431
|
if @hash[:properties][:energy][:window_vent_control]
|
432
432
|
vent_control = VentilationControlAbridged.new(@hash[:properties][:energy][:window_vent_control])
|
433
433
|
vent_control.to_openstudio(
|
@@ -42,11 +42,18 @@ class OpenStudio::Model::Model
|
|
42
42
|
# the 'zones' argument includes zones that have heating, cooling, or both
|
43
43
|
# if the HVAC system type serves a single zone, handle zones with only heating separately by adding unit heaters
|
44
44
|
# applies to system types PTAC, PTHP, PSZ-AC, and Window AC
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
if RUBY_VERSION >= '3.0'
|
46
|
+
heated_and_cooled_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
|
47
|
+
heated_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) }
|
48
|
+
cooled_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
|
49
|
+
cooled_only_zones = zones.select { |zone| !OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
|
50
|
+
else
|
51
|
+
heated_and_cooled_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
|
52
|
+
heated_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) }
|
53
|
+
cooled_zones = zones.select { |zone| standard.thermal_zone_cooled?(zone) }
|
54
|
+
cooled_only_zones = zones.select { |zone| !standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
|
55
|
+
heated_only_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && !standard.thermal_zone_cooled?(zone) }
|
56
|
+
end
|
50
57
|
system_zones = heated_and_cooled_zones + cooled_only_zones
|
51
58
|
|
52
59
|
# system type naming convention:
|
@@ -275,20 +275,37 @@ module Honeybee
|
|
275
275
|
end
|
276
276
|
end
|
277
277
|
end
|
278
|
+
|
279
|
+
unless os_air_loops.empty?
|
280
|
+
# have an always available schedule ready to use if there are no user controls
|
281
|
+
always_avail_name = 'Building HVAC Always Available'
|
282
|
+
schedule = openstudio_model.getScheduleByName(always_avail_name)
|
283
|
+
unless schedule.empty?
|
284
|
+
always_avail = schedule.get
|
285
|
+
else
|
286
|
+
always_avail = OpenStudio::Model::ScheduleRuleset.new(openstudio_model)
|
287
|
+
always_avail.setName(always_avail_name)
|
288
|
+
def_day_sch = always_avail.defaultDaySchedule
|
289
|
+
time_until = OpenStudio::Time.new(0, 24, 0, 0)
|
290
|
+
def_day_sch.addValue(time_until, 1)
|
291
|
+
end
|
278
292
|
|
279
|
-
|
280
|
-
|
281
|
-
|
293
|
+
# assign the DOAS availability schedule if there's an air loop and it is specified
|
294
|
+
avail_sch = nil
|
295
|
+
if @hash[:doas_availability_schedule]
|
282
296
|
schedule = openstudio_model.getScheduleByName(@hash[:doas_availability_schedule])
|
283
297
|
unless schedule.empty?
|
284
298
|
avail_sch = schedule.get
|
285
|
-
os_air_loop.setAvailabilitySchedule(avail_sch)
|
286
299
|
end
|
287
300
|
end
|
288
|
-
|
301
|
+
unless avail_sch
|
302
|
+
avail_sch = always_avail
|
303
|
+
end
|
304
|
+
os_air_loops.each do |os_air_loop|
|
305
|
+
os_air_loop.setAvailabilitySchedule(avail_sch)
|
306
|
+
end
|
289
307
|
|
290
|
-
|
291
|
-
if !os_air_loops.empty?
|
308
|
+
# set the outdoor air controller to respect room-level ventilation schedules if they exist
|
292
309
|
oa_sch, oa_sch_name = nil, nil
|
293
310
|
zones.each do |zone|
|
294
311
|
oa_spec = zone.spaces[0].designSpecificationOutdoorAir
|
@@ -309,16 +326,17 @@ module Honeybee
|
|
309
326
|
end
|
310
327
|
end
|
311
328
|
end
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
329
|
+
unless oa_sch
|
330
|
+
oa_sch = always_avail
|
331
|
+
end
|
332
|
+
|
333
|
+
os_air_loops.each do |os_air_loop|
|
334
|
+
oasys = os_air_loop.airLoopHVACOutdoorAirSystem
|
335
|
+
unless oasys.empty?
|
336
|
+
os_oasys = oasys.get
|
337
|
+
oactrl = os_oasys.getControllerOutdoorAir
|
338
|
+
oactrl.resetMinimumFractionofOutdoorAirSchedule
|
339
|
+
oactrl.setMinimumOutdoorAirSchedule(oa_sch)
|
322
340
|
end
|
323
341
|
end
|
324
342
|
end
|
@@ -413,12 +431,8 @@ module Honeybee
|
|
413
431
|
heat_ex.setName(@hash[:identifier] + '_Heat Recovery Unit')
|
414
432
|
heat_ex.setSensibleEffectivenessat100CoolingAirFlow(0)
|
415
433
|
heat_ex.setSensibleEffectivenessat100HeatingAirFlow(0)
|
416
|
-
heat_ex.setSensibleEffectivenessat75CoolingAirFlow(0)
|
417
|
-
heat_ex.setSensibleEffectivenessat75HeatingAirFlow(0)
|
418
434
|
heat_ex.setLatentEffectivenessat100CoolingAirFlow(0)
|
419
435
|
heat_ex.setLatentEffectivenessat100HeatingAirFlow(0)
|
420
|
-
heat_ex.setLatentEffectivenessat75CoolingAirFlow(0)
|
421
|
-
heat_ex.setLatentEffectivenessat75HeatingAirFlow(0)
|
422
436
|
|
423
437
|
# add the heat exchanger to the air loop
|
424
438
|
outdoor_node = os_air_loop.reliefAirNode
|
@@ -103,7 +103,7 @@ module Honeybee
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
-
# create the actuators for each of the
|
106
|
+
# create the actuators for each of the operable windows
|
107
107
|
actuator_names = []
|
108
108
|
vent_opening_surfaces.each do |vent_srf|
|
109
109
|
window_act = OpenStudio::Model::EnergyManagementSystemActuator.new(
|
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.38.
|
4
|
+
version: 2.38.19
|
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:
|
14
|
+
date: 2025-04-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json_pure
|
@@ -33,28 +33,28 @@ dependencies:
|
|
33
33
|
requirements:
|
34
34
|
- - '='
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.
|
36
|
+
version: 0.8.3
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - '='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.
|
43
|
+
version: 0.8.3
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: openstudio-standards
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - "~>"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
50
|
+
version: 0.7.1
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.
|
57
|
+
version: 0.7.1
|
58
58
|
description: Library and measures for translating between Honeybee JSON schema and
|
59
59
|
OpenStudio Model schema (OSM).
|
60
60
|
email:
|