Module: OpenStudio::Metadata::Helpers
- Included in:
- Creator
- Defined in:
- lib/openstudio/metadata/helpers.rb
Instance Method Summary collapse
-
#create_ems_str(name) ⇒ Object
Format with no spaces or ‘-’ (can be used as EMS var name).
- #create_mapping_output_uuid(emsName, uuid) ⇒ Object
- #create_mapping_timevars(outvar_time, uuid) ⇒ Object
- #create_output_meter(model, meter_name, reporting_frequency: 'timestep') ⇒ Object
-
#create_output_variable_and_ems_sensor(system_node_property:, node:, ems_name:, model:, reporting_frequency: 'timestep', bcvtb: true) ⇒ Object
Create both an output variable and an energy management system sensor and register them to the model.
- #create_point_timevars(outvar_time, siteRef) ⇒ Object
- #create_point_uuid(type, id, siteRef, equipRef, floorRef, where, what, measurement, kind, unit) ⇒ Object
-
#haystack_create_uuid ⇒ String
Create a UUID and format as a Haystack ref (ie, “r:xxxxx”).
-
#haystack_format_as_num(str) ⇒ String
Return string formatted for numbers (ie, “n:xxxxx”).
-
#haystack_format_as_ref(id) ⇒ String
Return string formatted for Ref (ie, “r:xxxxx”) with uuid of object.
-
#haystack_format_as_str(str) ⇒ String
Return string formatted for strings (ie, “s:xxxxx”).
Instance Method Details
#create_ems_str(name) ⇒ Object
Format with no spaces or ‘-’ (can be used as EMS var name)
43 44 45 |
# File 'lib/openstudio/metadata/helpers.rb', line 43 def create_ems_str(name) return name.gsub(/[\s-]/, '_').to_s end |
#create_mapping_output_uuid(emsName, uuid) ⇒ Object
173 174 175 176 177 178 179 180 181 |
# File 'lib/openstudio/metadata/helpers.rb', line 173 def create_mapping_output_uuid(emsName, uuid) json = {} json[:id] = haystack_format_as_ref(uuid) json[:source] = 'Ptolemy' json[:name] = '' json[:type] = '' json[:variable] = emsName return json end |
#create_mapping_timevars(outvar_time, uuid) ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/openstudio/metadata/helpers.rb', line 139 def create_mapping_timevars(outvar_time, uuid) # this function will use the uuid generated from create_point_timevars(), to make a mapping. # the uuid is unique to be used for mapping purpose; uuid is the belt to connect point_json and mapping_json # the mapping_json below contains all the necessary tags mapping_json = {} mapping_json[:id] = uuid mapping_json[:source] = 'EnergyPlus' mapping_json[:name] = 'EMS' mapping_json[:type] = outvar_time.nameString mapping_json[:variable] = '' return mapping_json end |
#create_output_meter(model, meter_name, reporting_frequency: 'timestep') ⇒ Object
110 111 112 113 114 115 |
# File 'lib/openstudio/metadata/helpers.rb', line 110 def create_output_meter(model, meter_name, reporting_frequency: 'timestep') meter = OpenStudio::Model::OutputMeter.new(model) meter.setName(meter_name) meter.setReportingFrequency(reporting_frequency) return meter end |
#create_output_variable_and_ems_sensor(system_node_property:, node:, ems_name:, model:, reporting_frequency: 'timestep', bcvtb: true) ⇒ Object
Create both an output variable and an energy management system sensor and register them to the model
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/openstudio/metadata/helpers.rb', line 91 def create_output_variable_and_ems_sensor(system_node_property:, node:, ems_name:, model:, reporting_frequency: 'timestep', bcvtb: true) name = create_ems_str(ems_name) output_variable = OpenStudio::Model::OutputVariable.new(system_node_property, model) output_variable.setKeyValue(node.name.to_s) output_variable.setReportingFrequency(reporting_frequency) output_variable.setName(name) output_variable.setExportToBCVTB(bcvtb) # EMS sensors are used to declare an Erl variable that is linked to E+ output variables or meters sensor = OpenStudio::Model::EnergyManagementSystemSensor.new(model, output_variable) # The key reference for the specified output variable sensor.setKeyName(node.handle.to_s) # Unique name for the sensor that becomes the name of a variable for us in Erl programs. sensor.setName("EMS_#{name}") return output_variable end |
#create_point_timevars(outvar_time, siteRef) ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/openstudio/metadata/helpers.rb', line 117 def create_point_timevars(outvar_time, siteRef) # this function will add haystack tag to the time-variables created by user. # the time-variables are also written to variables.cfg file to coupling energyplus # the uuid is unique to be used for mapping purpose # the point_json generated here caontains the tags for the tim-variables point_json = {} # id = outvar_time.keyValue.to_s + outvar_time.name.to_s uuid = haystack_create_uuid point_json[:id] = uuid # point_json[:source] = create_str("EnergyPlus") # point_json[:type] = "Output:Variable" # point_json[:name] = create_str(outvar_time.name.to_s) # point_json[:variable] = create_str(outvar_time.name) point_json[:dis] = haystack_format_as_str(outvar_time.nameString) point_json[:siteRef] = haystack_format_as_ref(siteRef) point_json[:point] = 'm:' point_json[:cur] = 'm:' point_json[:curStatus] = 's:disabled' return point_json, uuid end |
#create_point_uuid(type, id, siteRef, equipRef, floorRef, where, what, measurement, kind, unit) ⇒ Object
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/openstudio/metadata/helpers.rb', line 153 def create_point_uuid(type, id, siteRef, equipRef, floorRef, where, what, measurement, kind, unit) point_json = {} uuid = haystack_create_uuid point_json[:id] = uuid point_json[:dis] = haystack_format_as_str(id) point_json[:siteRef] = haystack_format_as_ref(siteRef) point_json[:equipRef] = haystack_format_as_ref(equipRef) point_json[:floorRef] = haystack_format_as_ref(floorRef) point_json[:point] = 'm:' point_json[type.to_s] = 'm:' point_json[measurement.to_s] = 'm:' point_json[where.to_s] = 'm:' point_json[what.to_s] = 'm:' point_json[:kind] = haystack_format_as_str(kind) point_json[:unit] = haystack_format_as_str(unit) point_json[:cur] = 'm:' point_json[:curStatus] = 's:disabled' return point_json, uuid end |
#haystack_create_uuid ⇒ String
Create a UUID and format as a Haystack ref (ie, “r:xxxxx”)
51 52 53 |
# File 'lib/openstudio/metadata/helpers.rb', line 51 def haystack_create_uuid return "r:#{OpenStudio.removeBraces(OpenStudio.createUUID)}" end |
#haystack_format_as_num(str) ⇒ String
Return string formatted for numbers (ie, “n:xxxxx”)
78 79 80 |
# File 'lib/openstudio/metadata/helpers.rb', line 78 def haystack_format_as_num(str) return "n:#{str}" end |
#haystack_format_as_ref(id) ⇒ String
Return string formatted for Ref (ie, “r:xxxxx”) with uuid of object
60 61 62 |
# File 'lib/openstudio/metadata/helpers.rb', line 60 def haystack_format_as_ref(id) return "r:#{OpenStudio.removeBraces(id)}" end |
#haystack_format_as_str(str) ⇒ String
Return string formatted for strings (ie, “s:xxxxx”)
69 70 71 |
# File 'lib/openstudio/metadata/helpers.rb', line 69 def haystack_format_as_str(str) return "s:#{str}" end |