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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b186cfee90a5b7844b5c7dab43611b384ab476decc61033066c5dbe3befd437
4
- data.tar.gz: a216707dc66e588978cc855fdee27bcc5b4291082322ad80faba60e4e57d702d
3
+ metadata.gz: e3cb96d15a4b1fde5b1354b59121e61656e90a48488fb2317ea5f80820c370bd
4
+ data.tar.gz: ee8db24c3ab578357370e1c1ccda92f2be87d6ae742e04b476f06c3940387fb9
5
5
  SHA512:
6
- metadata.gz: 277979e0ea12fa67cbd08dbe286a60849d8d3b00543e229ae9936950c86966923c07b49214199d70f5694704e54ee7fc185861e931fa28358f3378d5a529cd4f
7
- data.tar.gz: b2df403658dd3de48695a16fa10cc4b6fd27b260fec025f8bd4d3ed1a988d8a57baebf51ccf203708dff5e2c6f5d69eb329f9369853c431eb9a27c3423e59925
6
+ metadata.gz: 90cbe284f8a97f36a8bc9bcc0cf9da55dc37fd5543f06ffdf6b007c600320b6f65c7c13b016370e2051f41841103f4effaa32b6a9be8abb7f5a554a220608c2c
7
+ data.tar.gz: bc16d6dd07b2a1646a157cb4b2d2086deb961994ddf5c3df7fd24893b938ae1626bb84eea1c01747fc77a40ad6b44895824f7b658249ae5d5fd7b1d2e162b933
@@ -15,8 +15,8 @@ jobs:
15
15
  run: |
16
16
  echo $(pwd)
17
17
  echo $(ls)
18
- docker pull nrel/openstudio:3.7.0
19
- docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.7.0
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.7.1'
10
+ gem 'openstudio-extension', '0.8.3'
11
11
  end
12
12
 
13
13
  # coveralls gem is used to generate coverage reports through CI
@@ -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.17'
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.7/.match(RUBY_VERSION)
25
- spec.required_ruby_version = "~> 2.7.0"
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.1"
28
- spec.add_development_dependency "public_suffix", "~> 5.0.3"
29
- spec.add_development_dependency "json-schema", "~> 2.7.0"
30
- spec.add_development_dependency "rake", "~> 13.0.6"
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.7.1'
37
- spec.add_dependency 'openstudio-standards', '~> 0.5.0'
36
+ spec.add_dependency 'openstudio-extension', '0.8.3'
37
+ spec.add_dependency 'openstudio-standards', '~> 0.7.1'
38
38
  end
@@ -1,66 +1,61 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- ruby '~> 2.7.0'
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.2'
9
- gem 'bcl', '0.7.1'
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', '2.7.0'
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.1'
21
+ gem 'multipart-post', '2.4.0'
22
22
  gem 'octokit', '4.18.0'
23
- gem 'openstudio_measure_tester', '0.3.3'
24
- gem 'openstudio-calibration', '0.9.0'
25
- gem 'openstudio-common-measures', '0.9.0'
26
- gem 'openstudio-ee', '0.9.0'
27
- gem 'openstudio-extension', '0.7.1'
28
- gem 'openstudio-geb', '0.4.0'
29
- gem 'openstudio-load-flexibility-measures', '0.8.0'
30
- gem 'openstudio-model-articulation', '0.9.0'
31
- gem 'openstudio-standards', '0.5.0'
32
- gem 'openstudio-workflow', '2.3.1'
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.2'
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.8.0'
41
- gem 'regexp_parser', '2.9.2'
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 'simplecov', '0.18.5'
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.1'
51
+ gem 'tbd', '3.4.4'
56
52
  gem 'topolys', '0.6.2'
57
- gem 'unicode-display_width', '2.6.0'
58
- gem 'urbanopt-core', '0.11.0'
59
- gem 'urbanopt-geojson', '0.11.2'
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.15'
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 startegy of the ventilation openings using the EMS
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
- heated_and_cooled_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
46
- heated_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) }
47
- cooled_zones = zones.select { |zone| standard.thermal_zone_cooled?(zone) }
48
- cooled_only_zones = zones.select { |zone| !standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
49
- heated_only_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && !standard.thermal_zone_cooled?(zone) }
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
- # assign the DOAS availability schedule if there's an air loop and it is specified
280
- if @hash[:doas_availability_schedule] && !os_air_loops.empty?
281
- os_air_loops.each do |os_air_loop|
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
- end
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
- # set the outdoor air controller to respect room-level ventilation schedules if they exist
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
- if oa_sch
314
- os_air_loops.each do |os_air_loop|
315
- oasys = os_air_loop.airLoopHVACOutdoorAirSystem
316
- unless oasys.empty?
317
- os_oasys = oasys.get
318
- oactrl = os_oasys.getControllerOutdoorAir
319
- oactrl.resetMinimumFractionofOutdoorAirSchedule
320
- oactrl.setMinimumOutdoorAirSchedule(oa_sch)
321
- end
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 operaable windows
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.17
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: 2024-12-17 00:00:00.000000000 Z
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.7.1
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.7.1
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.5.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.5.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: