BMS Event Bus 1.0.0

View as Markdown

Telemetry and control event catalog for the Building Management System (BMS) over MQTT. Provides real-time point values and point metadata for all supported object and point types.

How to use this spec

Each monitored point follows a Value / Metadata pattern:

  • Value messages carry the live reading (value, timestamp, quality).

    Subscribe to a value channel to receive real-time telemetry. Values are published whenever they change and republished every 100 seconds when they do not change.

  • Metadata messages describe the point (units, identifiers, relationships).

    Always receive metadata before interpreting values. Metadata is retained and published once at startup. It is subsequently published every 100 seconds.

Topic structure

PublisherTopic TypePattern
BMSValueBMS/v1/PUB/Value/{objectType}/{pointType}/{tagPath}
BMSMetadataBMS/v1/PUB/Metadata/{objectType}/{pointType}/{tagPath}
IntegrationValueBMS/v1/{integration}/Value/{objectType}/{pointType}/{tagPath}

The {tagPath} is a vendor-defined hierarchical path and may contain multiple / segments. Each {tagPath} must be unique for each point and is usually derived from the BMS system based on the BMS point name.

Use # to subscribe to all topics under a given hierarchy (multi-level wildcard).

Use + to match exactly one topic level (single-level wildcard).

Publisher rules

  • BMS publishes all metadata — including for points whose values are written by integrations.

  • BMS publishes its own point values on BMS/v1/PUB/Value/....

  • Integrations are any system (MQTT Client) external to the BMS. Whenever they need to directly send messages to the BMS, they publish values on BMS/v1/{integration}/Value/.... Integrations do not publish metadata.

Integration publishing contract

This rule applies globally to every integration-published point across all objectTypes.

BMS publishes metadata for every monitored point — including points whose values are written by external integrations. For such points the metadata payload contains an integration field identifying which integration owns that point’s value.

Metadata fieldTypeMeaning
integrationstringIdentifier of the integration that must publish the value for this point

Topic derivation rule

The value topic is derived methodically from the respective metadata topic (published by BMS) that carried the integration field. DSX Exchange Access Control Lists will typically be created so that MQTT Clients are provided access to publish and subscribe to specific namespaces that align with the [Publisher]:

BMS/v1/[Publisher]/[TopicType]/{objectType}/{pointType}/{tagPath}

SegmentMetadata topicValue topic
PublisherPUBvalue of integration field in metadata
TopicTypeMetadataValue
Remainder{objectType}/{pointType}/{tagPath}{objectType}/{pointType}/{tagPath}

In other words, the Publisher integration will derive the following value topic to publish based on the corresponding BMS metadata:

BMS/v1/PUB/Metadata/{objectType}/{pointType}/{tagPath}
↓ replace PUB → {integration}, Metadata → Value
BMS/v1/{integration}/Value/{objectType}/{pointType}/{tagPath}

Contract

When an integration receives a BMS metadata message and the integration field matches its own identifier, the integration MUST:

  1. Note the full metadata topic it arrived on.
  2. Derive the value topic by substituting PUB → own identifier and MetadataValue, keeping {objectType}/{pointType}/{tagPath} unchanged.
  3. Publish value messages to that derived topic.

Integrations MUST NOT:

  • Publish values for points whose metadata integration field does not match their own identifier.

  • Publish metadata (BMS is the sole metadata publisher).

Example flow

BMS publishes metadata →
Topic: BMS/v1/PUB/Metadata/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5
Payload: { ..., "integration": "MEPAI", ... }
Integration "MEPAI" receives the metadata, recognises its identifier,
derives its value topic →
BMS/v1/PUB/Metadata/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5
↓ PUB→MEPAI, Metadata→Value
BMS/v1/MEPAI/Value/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5

MEPAI publishes its setpoint reading to that derived topic.

The same contract governs all other integration-published points, including Rack/RackLeakDetectTray, Rack/RackLiquidIsolationRequest, Rack/RackElectricalIsolationRequest, System/HeartbeatTimestampIntegration, System/HeartbeatEchoIntegration, CDU/LiquidTemperatureSpRequest, and any future integration-owned pointTypes.

Metadata types and concepts

  • objectType: Object Types are restricted to specific strings in accordance with this AsyncAPI. They typically represent BMS equipment or devices.

    • System: A System can be the BMS or an Integration to the BMS. Heartbeat points and system-to-system communication point types are typically defined inside of a System object type. System Heartbeat point types are expected to operate as follows. An integration may choose to use the Echo points or not.

      Naming convention: the BMS/Integration suffix indicates the publisher of the point.

      All four heartbeat pointTypes require objectName and objectId in metadata to identify which System the heartbeat belongs to. By convention, an integration’s objectId matches the same string used as its integration metadata field on its other points (so MEPAI1’s System object has objectId: "MEPAI1").

      • HeartbeatTimestampBms — Publisher: BMS. The BMS publishes its own timestamp every 10 seconds. One instance globally. objectId identifies the BMS (e.g., "BMS"). integration field: not used.

      • HeartbeatTimestampIntegration — Publisher: Integration. Each integration publishes its own timestamp every 10 seconds, one per integration. objectId identifies the integration publishing (e.g., "MEPAI1"). integration field: required (drives topic).

      • HeartbeatEchoBms — Publisher: BMS. The BMS reads each integration’s HeartbeatTimestampIntegration value and re-publishes it on this point type, allowing each integration to confirm round-trip. One instance per connected integration. objectId identifies the integration whose timestamp is being echoed (e.g., "MEPAI1"). integration field: not used.

      • HeartbeatEchoIntegration — Publisher: Integration. Each integration reads the BMS’s HeartbeatTimestampBms value and re-publishes it on this point type, allowing the BMS to confirm round-trip with that integration. One per connected integration. objectId identifies the BMS being echoed (e.g., "BMS"). integration field: required (drives topic).

    • Rack: A Rack is a special object type and has specific point types that can only be used with a Rack object type. Many integrations and MQTT Clients will only ingest data from the Rack object type. Other integrations will consider Rack data as the most important or interesting data in the AI Factory. Mechanical and Electrical design (and therefore BMS Data) at the rack is also more standardized than mechanical and electrical systems as you move out of the white space and to the gray space of the AI Factory. For these reasons, the point types associated with a Rack object type are generally more specific than any other object type, making ingesting and understanding rack data more straight-forward.

    • PowerMeter: A PowerMeter is a special object type and has specific point types that can only be used with a PowerMeter object type. PowerMeter point types contain the metadata needed to understand electrical power path. This data is used by integrations / MQTT Clients for power management strategies.

    • Electrical Equipment: This is a general category, and several object types exist in this AsyncAPI for electrical equipment. Electrical equipment point types typically use metadata to associate the object / equipment with a power meter to show where the equipment lands in the power path.

    • Mechanical Equipment: This is a general category, and several object types exist in this AsyncAPI for mechanical equipment.

    • GenericObject: This object type is reserved and should not be used unless no other object type is applicable.

  • pointType: Point Types are restricted to specific strings in accordance with this AsyncAPI. Point types are also restricted to specific object types. Some point types apply to multiple object types while others are restricted to specific object types.

  • engUnit: Engineering Units describe the units of measure for the point / topic. If engineering units are used, then state text does not apply.

  • stateText: State Text describes what a binary or integer value means. Each binary or integer value will have a state text identified. If state text is used, then engineering units do not apply.

  • rackLocationName: This is the human readable name given to a rack location.

  • rackLocationId: This is the unique identifier for a rack location. It can be the same as the rackLocationName if human readable and unique. This must allow the IT side integrations and OT side BMS to associate a point with the same physical rack (same identifier on both systems).

  • objectName: This is the human readable name given to the object.

  • objectId: This is the unique identifier for an object. It can be the same as the objectName if human readable and unique.

  • associateId: This will list the objectId of an associated object. The intent is for this object to be considered part of the other object, especially for servesId metadata. Commonly used to prevent parallel power paths (parallel “serves” relationships) when electrical equipment objects need to be associated with power meters. Also applicable to mechanical equipment object types to prevent liquid and air flow parallel paths where not intended.

  • servesId: This will list the objectId of the object that is served by this object. Creates a one-way relationship. Typically used to indicate electrical power path or liquid/air fluid flow path towards the rack.

  • processArea: This is used to provide more information on the point location or purpose. In general, process area metadata should be used, in conjunction with other metadata, to make points unique and allow integrations / MQTT Clients to clearly understand what a point represents in the AI factory. Example: for a CDU object type and LiquidTemperature point type, the process area metadata could include "Secondary" and "Supply". This would make it clear that the temperature sensor was located on the secondary side of the CDU and on the supply line.

  • phase: This is used to identify which phase, of a 3-phase electrical system, the point is associated with.

  • isSetpoint: This can be set to true (unquoted, lowercase) to indicate that a point is a setpoint rather than a sensor reading. A setpoint is a target or ideal value that a system is trying to maintain a process variable at.

  • scope: Scope is used for System heartbeat points. If the BMS has multiple MQTT Clients connected to DSX Exchange, each could be publishing different data to the MQTT Broker. In this case each MQTT Client should have separate heartbeat points. Scope can be used in this case to identify what MQTT Topics / Namespace the heartbeat point is associated with — and thereby what topics are impacted when a heartbeat is lost.

  • integration: Integration metadata is used to indicate which integration a point is associated with. It also indicates the namespace [Publisher] an integration is required to write the corresponding value back to.

Raw AsyncAPI Spec

1# Copyright 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4asyncapi: 3.1.0
5
6info:
7 title: BMS Event Bus
8 version: 1.0.0
9 description: |
10 Telemetry and control event catalog for the Building Management System (BMS)
11 over MQTT. Provides real-time point values and point metadata for all supported
12 object and point types.
13
14 ## How to use this spec
15
16 Each monitored point follows a **Value / Metadata** pattern:
17
18 - **Value** messages carry the live reading (`value`, `timestamp`, `quality`).
19
20 Subscribe to a value channel to receive real-time telemetry. Values are published whenever they change and republished every 100 seconds when they do not change.
21
22 - **Metadata** messages describe the point (units, identifiers, relationships).
23
24 **Always receive metadata before interpreting values.** Metadata is retained and published once at startup. It is subsequently published every 100 seconds.
25
26 ## Topic structure
27
28 | Publisher | Topic Type | Pattern |
29 | :---------- | :--------- | :--------------------------------------------------------------- |
30 | BMS | Value | `BMS/v1/PUB/Value/{objectType}/{pointType}/{tagPath}` |
31 | BMS | Metadata | `BMS/v1/PUB/Metadata/{objectType}/{pointType}/{tagPath}` |
32 | Integration | Value | `BMS/v1/{integration}/Value/{objectType}/{pointType}/{tagPath}` |
33
34 The `{tagPath}` is a vendor-defined hierarchical path and may contain multiple `/` segments. Each `{tagPath}` must be unique for each point and is usually derived from the BMS system based on the BMS point name.
35
36 Use `#` to subscribe to all topics under a given hierarchy (multi-level wildcard).
37
38 Use `+` to match exactly one topic level (single-level wildcard).
39
40 ## Publisher rules
41
42 - **BMS** publishes all metadata — including for points whose values are written by integrations.
43
44 - **BMS** publishes its own point values on `BMS/v1/PUB/Value/...`.
45
46 - **Integrations** are any system (MQTT Client) external to the BMS. Whenever they need to directly send messages to the BMS, they publish values on `BMS/v1/{integration}/Value/...`. Integrations do **not** publish metadata.
47
48 ## Integration publishing contract
49
50 > **This rule applies globally to every integration-published point across all
51 > objectTypes.**
52
53 BMS publishes metadata for every monitored point — including points whose _values_ are written by external integrations. For such points the metadata payload contains an `integration` field identifying which integration owns that point's value.
54
55 | Metadata field | Type | Meaning |
56 | :------------- | :--- | :------ |
57 | `integration` | string | Identifier of the integration that must publish the value for this point |
58
59 ### Topic derivation rule
60
61 The value topic is derived **methodically** from the respective metadata topic (published by BMS) that carried the `integration` field. DSX Exchange Access Control Lists will typically be created so that MQTT Clients are provided access to publish and subscribe to specific namespaces that align with the `[Publisher]`:
62
63 BMS/v1/**[Publisher]/[TopicType]**/{objectType}/{pointType}/{tagPath}
64
65 | Segment | Metadata topic | Value topic |
66 | :------ | :------------- | :---------- |
67 | Publisher | `PUB` | value of `integration` field in metadata |
68 | TopicType | `Metadata` | `Value` |
69 | Remainder | `{objectType}/{pointType}/{tagPath}` | `{objectType}/{pointType}/{tagPath}` |
70
71 In other words, the Publisher integration will derive the following value topic to publish based on the corresponding BMS metadata:
72
73 ```text
74 BMS/v1/PUB/Metadata/\{objectType\}/\{pointType\}/\{tagPath\}
75 ↓ replace PUB → \{integration\}, Metadata → Value
76 BMS/v1/\{integration\}/Value/\{objectType\}/\{pointType\}/\{tagPath\}
77 ```
78
79 ### Contract
80
81 When an integration receives a BMS metadata message and the `integration` field **matches its own identifier**, the integration **MUST**:
82
83 1. Note the full metadata topic it arrived on.
84 2. Derive the value topic by substituting `PUB` → own identifier and `Metadata` → `Value`, keeping `{objectType}/{pointType}/{tagPath}` unchanged.
85 3. Publish value messages to that derived topic.
86
87 Integrations **MUST NOT**:
88
89 - Publish values for points whose metadata `integration` field does not match their own identifier.
90
91 - Publish metadata (BMS is the sole metadata publisher).
92
93 ### Example flow
94
95 ```text
96 BMS publishes metadata →
97 Topic: BMS/v1/PUB/Metadata/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5
98 Payload: \{ ..., "integration": "MEPAI", ... \}
99
100 Integration "MEPAI" receives the metadata, recognises its identifier,
101 derives its value topic →
102 BMS/v1/PUB/Metadata/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5
103 ↓ PUB→MEPAI, Metadata→Value
104 BMS/v1/MEPAI/Value/CDU/LiquidTemperatureSpRequest/site1/row3/cdu5
105 ```
106
107 MEPAI publishes its setpoint reading to that derived topic.
108
109 The same contract governs all other integration-published points, including `Rack/RackLeakDetectTray`, `Rack/RackLiquidIsolationRequest`, `Rack/RackElectricalIsolationRequest`, `System/HeartbeatTimestampIntegration`, `System/HeartbeatEchoIntegration`, `CDU/LiquidTemperatureSpRequest`, and any future integration-owned pointTypes.
110
111 ## Metadata types and concepts
112
113 - **objectType**: Object Types are restricted to specific strings in accordance with this AsyncAPI. They typically represent BMS equipment or devices.
114
115 - **System**: A System can be the BMS or an Integration to the BMS. Heartbeat points and system-to-system communication point types are typically defined inside of a System object type. System Heartbeat point types are expected to operate as follows. An integration may choose to use the Echo points or not.
116
117 Naming convention: the `BMS`/`Integration` suffix indicates the publisher of the point.
118
119 All four heartbeat pointTypes require `objectName` and `objectId` in metadata to identify which System the heartbeat belongs to. By convention, an integration's `objectId` matches the same string used as its `integration` metadata field on its other points (so MEPAI1's System object has `objectId: "MEPAI1"`).
120
121 - **HeartbeatTimestampBms** — Publisher: BMS. The BMS publishes its own timestamp every 10 seconds. One instance globally. `objectId` identifies the BMS (e.g., `"BMS"`). `integration` field: not used.
122
123 - **HeartbeatTimestampIntegration** — Publisher: Integration. Each integration publishes its own timestamp every 10 seconds, one per integration. `objectId` identifies the integration publishing (e.g., `"MEPAI1"`). `integration` field: required (drives topic).
124
125 - **HeartbeatEchoBms** — Publisher: BMS. The BMS reads each integration's `HeartbeatTimestampIntegration` value and re-publishes it on this point type, allowing each integration to confirm round-trip. One instance per connected integration. `objectId` identifies the integration whose timestamp is being echoed (e.g., `"MEPAI1"`). `integration` field: not used.
126
127 - **HeartbeatEchoIntegration** — Publisher: Integration. Each integration reads the BMS's `HeartbeatTimestampBms` value and re-publishes it on this point type, allowing the BMS to confirm round-trip with that integration. One per connected integration. `objectId` identifies the BMS being echoed (e.g., `"BMS"`). `integration` field: required (drives topic).
128
129 - **Rack**: A Rack is a special object type and has specific point types that can only be used with a Rack object type. Many integrations and MQTT Clients will only ingest data from the Rack object type. Other integrations will consider Rack data as the most important or interesting data in the AI Factory. Mechanical and Electrical design (and therefore BMS Data) at the rack is also more standardized than mechanical and electrical systems as you move out of the white space and to the gray space of the AI Factory. For these reasons, the point types associated with a Rack object type are generally more specific than any other object type, making ingesting and understanding rack data more straight-forward.
130
131 - **PowerMeter**: A PowerMeter is a special object type and has specific point types that can only be used with a PowerMeter object type. PowerMeter point types contain the metadata needed to understand electrical power path. This data is used by integrations / MQTT Clients for power management strategies.
132
133 - **Electrical Equipment**: This is a general category, and several object types exist in this AsyncAPI for electrical equipment. Electrical equipment point types typically use metadata to associate the object / equipment with a power meter to show where the equipment lands in the power path.
134
135 - **Mechanical Equipment**: This is a general category, and several object types exist in this AsyncAPI for mechanical equipment.
136
137 - **GenericObject**: This object type is reserved and should not be used unless no other object type is applicable.
138
139 - **pointType**: Point Types are restricted to specific strings in accordance with this AsyncAPI. Point types are also restricted to specific object types. Some point types apply to multiple object types while others are restricted to specific object types.
140
141 - **engUnit**: Engineering Units describe the units of measure for the point / topic. If engineering units are used, then state text does not apply.
142
143 - **stateText**: State Text describes what a binary or integer value means. Each binary or integer value will have a state text identified. If state text is used, then engineering units do not apply.
144
145 - **rackLocationName**: This is the human readable name given to a rack location.
146
147 - **rackLocationId**: This is the unique identifier for a rack location. It can be the same as the rackLocationName if human readable and unique. This must allow the IT side integrations and OT side BMS to associate a point with the same physical rack (same identifier on both systems).
148
149 - **objectName**: This is the human readable name given to the object.
150
151 - **objectId**: This is the unique identifier for an object. It can be the same as the objectName if human readable and unique.
152
153 - **associateId**: This will list the objectId of an associated object. The intent is for this object to be considered part of the other object, especially for `servesId` metadata. Commonly used to prevent parallel power paths (parallel "serves" relationships) when electrical equipment objects need to be associated with power meters. Also applicable to mechanical equipment object types to prevent liquid and air flow parallel paths where not intended.
154
155 - **servesId**: This will list the objectId of the object that is served by this object. Creates a one-way relationship. Typically used to indicate electrical power path or liquid/air fluid flow path towards the rack.
156
157 - **processArea**: This is used to provide more information on the point location or purpose. In general, process area metadata should be used, in conjunction with other metadata, to make points unique and allow integrations / MQTT Clients to clearly understand what a point represents in the AI factory. Example: for a CDU object type and LiquidTemperature point type, the process area metadata could include `"Secondary"` and `"Supply"`. This would make it clear that the temperature sensor was located on the secondary side of the CDU and on the supply line.
158
159 - **phase**: This is used to identify which phase, of a 3-phase electrical system, the point is associated with.
160
161 - **isSetpoint**: This can be set to `true` (unquoted, lowercase) to indicate that a point is a setpoint rather than a sensor reading. A setpoint is a target or ideal value that a system is trying to maintain a process variable at.
162
163 - **scope**: Scope is used for System heartbeat points. If the BMS has multiple MQTT Clients connected to DSX Exchange, each could be publishing different data to the MQTT Broker. In this case each MQTT Client should have separate heartbeat points. Scope can be used in this case to identify what MQTT Topics / Namespace the heartbeat point is associated with — and thereby what topics are impacted when a heartbeat is lost.
164
165 - **integration**: Integration metadata is used to indicate which integration a point is associated with. It also indicates the namespace `[Publisher]` an integration is required to write the corresponding value back to.
166
167# =============================================================================
168# Servers
169# =============================================================================
170
171# servers:
172# production:
173# host: broker.example.com
174# protocol: mqtt
175# description: MQTT broker for BMS telemetry and control
176
177# =============================================================================
178# Channels
179# =============================================================================
180
181channels:
182
183 # ---------------------------------------------------------------------------
184 # Rack
185 # ---------------------------------------------------------------------------
186
187 rackBmsValue:
188 address: 'BMS/v1/PUB/Value/Rack/{pointType}/{tagPath}'
189 description: |
190 Real-time values published by the BMS for all Rack monitoring points.
191
192 **MQTT wildcard examples**
193
194 - All rack values: `BMS/v1/PUB/Value/Rack/#`
195 parameters:
196 pointType:
197 enum:
198 - RackLiquidSupplyTemperature
199 - RackLiquidReturnTemperature
200 - RackLiquidFlow
201 - RackLiquidDifferentialPressure
202 - RackLiquidDifferentialPressureSp
203 - RackControlValvePosition
204 - RackPower
205 - RackLeakDetect
206 - RackLeakSensorFault
207 - RackLiquidIsolationStatus
208 - RackElectricalIsolationStatus
209 description: BMS-published Rack point type.
210 tagPath:
211 description: Vendor-defined hierarchical tag path.
212 messages:
213 valueMessage:
214 $ref: '#/components/messages/ValueMessage'
215
216 rackMetadata:
217 address: 'BMS/v1/PUB/Metadata/Rack/{pointType}/{tagPath}'
218 description: |
219 BMS-published metadata for all Rack points.
220 Includes integration-owned points which carries the `integration` field.
221
222 **MQTT wildcard examples**
223
224 - All rack metadata: `BMS/v1/PUB/Metadata/Rack/#`
225 parameters:
226 pointType:
227 enum:
228 - RackLiquidSupplyTemperature
229 - RackLiquidReturnTemperature
230 - RackLiquidFlow
231 - RackLiquidDifferentialPressure
232 - RackLiquidDifferentialPressureSp
233 - RackControlValvePosition
234 - RackPower
235 - RackLeakDetect
236 - RackLeakSensorFault
237 - RackLeakDetectTray
238 - RackLiquidIsolationStatus
239 - RackElectricalIsolationStatus
240 - RackLiquidIsolationRequest
241 - RackElectricalIsolationRequest
242 description: Rack point type.
243 tagPath:
244 description: Must match the tagPath of the corresponding value topic exactly.
245 messages:
246 rackLiquidSupplyTemperature:
247 $ref: '#/components/messages/RackLiquidSupplyTemperatureMsg'
248 rackLiquidReturnTemperature:
249 $ref: '#/components/messages/RackLiquidReturnTemperatureMsg'
250 rackLiquidFlow:
251 $ref: '#/components/messages/RackLiquidFlowMsg'
252 rackLiquidDifferentialPressure:
253 $ref: '#/components/messages/RackLiquidDifferentialPressureMsg'
254 rackLiquidDifferentialPressureSp:
255 $ref: '#/components/messages/RackLiquidDifferentialPressureSpMsg'
256 rackControlValvePosition:
257 $ref: '#/components/messages/RackControlValvePositionMsg'
258 rackPower:
259 $ref: '#/components/messages/RackPowerMsg'
260 rackLeakDetect:
261 $ref: '#/components/messages/RackLeakDetectMsg'
262 rackLeakSensorFault:
263 $ref: '#/components/messages/RackLeakSensorFaultMsg'
264 rackLeakDetectTray:
265 $ref: '#/components/messages/RackLeakDetectTrayMsg'
266 rackLiquidIsolationStatus:
267 $ref: '#/components/messages/RackLiquidIsolationStatusMsg'
268 rackElectricalIsolationStatus:
269 $ref: '#/components/messages/RackElectricalIsolationStatusMsg'
270 rackLiquidIsolationRequest:
271 $ref: '#/components/messages/RackLiquidIsolationRequestMsg'
272 rackElectricalIsolationRequest:
273 $ref: '#/components/messages/RackElectricalIsolationRequestMsg'
274
275 rackIntegrationValue:
276 address: 'BMS/v1/{integration}/Value/Rack/{pointType}/{tagPath}'
277 description: |
278 Values published by integrations for Rack control points.
279 Subscribe to `BMS/v1/PUB/Metadata/Rack/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
280 That matching metadata payload indicates the integration can publish values to this topic.
281
282 **MQTT wildcard examples**
283
284 - All integration Rack values: `BMS/v1/+/Value/Rack/#`
285 parameters:
286 integration:
287 description: Integration identifier.
288 pointType:
289 enum:
290 - RackLeakDetectTray
291 - RackLiquidIsolationRequest
292 - RackElectricalIsolationRequest
293 description: Integration-published Rack point type.
294 tagPath:
295 description: Must match the tagPath from the corresponding BMS metadata exactly.
296 messages:
297 valueMessage:
298 $ref: '#/components/messages/ValueMessage'
299
300 # ---------------------------------------------------------------------------
301 # PowerMeter
302 # ---------------------------------------------------------------------------
303
304 powerMeterValue:
305 address: 'BMS/v1/PUB/Value/PowerMeter/{pointType}/{tagPath}'
306 description: |
307 Real-time values published by the BMS for all PowerMeter points.
308
309 **MQTT wildcard examples**
310
311 - All power meter values: `BMS/v1/PUB/Value/PowerMeter/#`
312 parameters:
313 pointType:
314 enum:
315 - Voltage
316 - PowerFactor
317 - Frequency
318 - ApparentPower
319 - ActivePower
320 - Current
321 - CurrentLimit
322 - PhaseCurrent
323 - GenericPoint
324 description: PowerMeter point type.
325 tagPath:
326 description: Vendor-defined hierarchical tag path.
327 messages:
328 valueMessage:
329 $ref: '#/components/messages/ValueMessage'
330
331 powerMeterMetadata:
332 address: 'BMS/v1/PUB/Metadata/PowerMeter/{pointType}/{tagPath}'
333 description: |
334 BMS-published metadata for all PowerMeter points.
335
336 **MQTT wildcard examples**
337
338 - All power meter metadata: `BMS/v1/PUB/Metadata/PowerMeter/#`
339 parameters:
340 pointType:
341 enum:
342 - Voltage
343 - PowerFactor
344 - Frequency
345 - ApparentPower
346 - ActivePower
347 - Current
348 - CurrentLimit
349 - PhaseCurrent
350 - GenericPoint
351 description: PowerMeter point type.
352 tagPath:
353 description: Vendor-defined hierarchical tag path.
354 messages:
355 voltage:
356 $ref: '#/components/messages/PowerMeterVoltageMsg'
357 powerFactor:
358 $ref: '#/components/messages/PowerMeterPowerFactorMsg'
359 frequency:
360 $ref: '#/components/messages/PowerMeterFrequencyMsg'
361 apparentPower:
362 $ref: '#/components/messages/PowerMeterApparentPowerMsg'
363 activePower:
364 $ref: '#/components/messages/PowerMeterActivePowerMsg'
365 current:
366 $ref: '#/components/messages/PowerMeterCurrentMsg'
367 currentLimit:
368 $ref: '#/components/messages/PowerMeterCurrentLimitMsg'
369 genericPoint:
370 $ref: '#/components/messages/GenericPowerMeterPointMsg'
371 phaseCurrent:
372 $ref: '#/components/messages/PowerMeterPhaseCurrentMsg'
373
374 powerMeterIntegrationValue:
375 address: 'BMS/v1/{integration}/Value/PowerMeter/{pointType}/{tagPath}'
376 description: |
377 Values published by integrations for PowerMeter control points.
378 Subscribe to `BMS/v1/PUB/Metadata/PowerMeter/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
379 That matching metadata payload indicates the integration can publish values to this topic.
380
381 **MQTT wildcard examples**
382
383 - All integration PowerMeter values: `BMS/v1/+/Value/PowerMeter/#`
384 parameters:
385 integration:
386 description: Integration identifier.
387 pointType:
388 enum:
389 - GenericPoint
390 description: Integration-published PowerMeter point type.
391 tagPath:
392 description: Must match the tagPath from the corresponding BMS metadata exactly.
393 messages:
394 valueMessage:
395 $ref: '#/components/messages/ValueMessage'
396
397 # ---------------------------------------------------------------------------
398 # BESS
399 # ---------------------------------------------------------------------------
400
401 bessValue:
402 address: 'BMS/v1/PUB/Value/BESS/{pointType}/{tagPath}'
403 description: |
404 Real-time values published by the BMS for BESS points.
405 Extensible: additional vendor-specific pointTypes may be present.
406
407 **MQTT wildcard examples**
408
409 - All BESS values: `BMS/v1/PUB/Value/BESS/#`
410 parameters:
411 pointType:
412 enum:
413 - Status
414 - Available
415 - GenericPoint
416 description: BMS-published BESS point type.
417 tagPath:
418 description: Vendor-defined hierarchical tag path.
419 messages:
420 valueMessage:
421 $ref: '#/components/messages/ValueMessage'
422
423 bessMetadata:
424 address: 'BMS/v1/PUB/Metadata/BESS/{pointType}/{tagPath}'
425 description: |
426 BMS-published metadata for BESS points.
427
428 **MQTT wildcard examples**
429
430 - All BESS metadata: `BMS/v1/PUB/Metadata/BESS/#`
431 parameters:
432 pointType:
433 enum:
434 - Status
435 - Available
436 - GenericPoint
437 description: BESS point type.
438 tagPath:
439 description: Vendor-defined hierarchical tag path.
440 messages:
441 status:
442 $ref: '#/components/messages/BESSStatusMsg'
443 genericPoint:
444 $ref: '#/components/messages/GenericEquipmentPointMsg'
445 available:
446 $ref: '#/components/messages/BESSAvailableMsg'
447
448 bessIntegrationValue:
449 address: 'BMS/v1/{integration}/Value/BESS/{pointType}/{tagPath}'
450 description: |
451 Values published by integrations for BESS control points.
452 Subscribe to `BMS/v1/PUB/Metadata/BESS/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
453 That matching metadata payload indicates the integration can publish values to this topic.
454
455 **MQTT wildcard examples**
456
457 - All integration BESS values: `BMS/v1/+/Value/BESS/#`
458 parameters:
459 integration:
460 description: Integration identifier.
461 pointType:
462 enum:
463 - GenericPoint
464 description: Integration-published BESS point type.
465 tagPath:
466 description: Must match the tagPath from the corresponding BMS metadata exactly.
467 messages:
468 valueMessage:
469 $ref: '#/components/messages/ValueMessage'
470
471 # ---------------------------------------------------------------------------
472 # UPS
473 # ---------------------------------------------------------------------------
474
475 upsValue:
476 address: 'BMS/v1/PUB/Value/UPS/{pointType}/{tagPath}'
477 description: |
478 Real-time values published by the BMS for UPS points.
479 Extensible: additional vendor-specific pointTypes may be present.
480
481 **MQTT wildcard examples**
482
483 - All UPS values: `BMS/v1/PUB/Value/UPS/#`
484 parameters:
485 pointType:
486 enum:
487 - Status
488 - Available
489 - GenericPoint
490 description: BMS-published UPS point type.
491 tagPath:
492 description: Vendor-defined hierarchical tag path.
493 messages:
494 valueMessage:
495 $ref: '#/components/messages/ValueMessage'
496
497 upsMetadata:
498 address: 'BMS/v1/PUB/Metadata/UPS/{pointType}/{tagPath}'
499 description: |
500 BMS-published metadata for UPS points.
501
502 **MQTT wildcard examples**
503
504 - All UPS metadata: `BMS/v1/PUB/Metadata/UPS/#`
505 parameters:
506 pointType:
507 enum:
508 - Status
509 - Available
510 - GenericPoint
511 description: UPS point type.
512 tagPath:
513 description: Vendor-defined hierarchical tag path.
514 messages:
515 status:
516 $ref: '#/components/messages/UPSStatusMsg'
517 genericPoint:
518 $ref: '#/components/messages/GenericEquipmentPointMsg'
519 available:
520 $ref: '#/components/messages/UPSAvailableMsg'
521
522 upsIntegrationValue:
523 address: 'BMS/v1/{integration}/Value/UPS/{pointType}/{tagPath}'
524 description: |
525 Values published by integrations for UPS control points.
526 Subscribe to `BMS/v1/PUB/Metadata/UPS/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
527 That matching metadata payload indicates the integration can publish values to this topic.
528
529 **MQTT wildcard examples**
530
531 - All integration UPS values: `BMS/v1/+/Value/UPS/#`
532 parameters:
533 integration:
534 description: Integration identifier.
535 pointType:
536 enum:
537 - GenericPoint
538 description: Integration-published UPS point type.
539 tagPath:
540 description: Must match the tagPath from the corresponding BMS metadata exactly.
541 messages:
542 valueMessage:
543 $ref: '#/components/messages/ValueMessage'
544
545 # ---------------------------------------------------------------------------
546 # ATS
547 # ---------------------------------------------------------------------------
548
549 atsValue:
550 address: 'BMS/v1/PUB/Value/ATS/{pointType}/{tagPath}'
551 description: |
552 Real-time values published by the BMS for ATS points.
553 Extensible: additional vendor-specific pointTypes may be present.
554
555 **MQTT wildcard examples**
556
557 - All ATS values: `BMS/v1/PUB/Value/ATS/#`
558 parameters:
559 pointType:
560 enum:
561 - Status
562 - Available
563 - GenericPoint
564 description: BMS-published ATS point type.
565 tagPath:
566 description: Vendor-defined hierarchical tag path.
567 messages:
568 valueMessage:
569 $ref: '#/components/messages/ValueMessage'
570
571 atsMetadata:
572 address: 'BMS/v1/PUB/Metadata/ATS/{pointType}/{tagPath}'
573 description: |
574 BMS-published metadata for ATS points.
575
576 **MQTT wildcard examples**
577
578 - All ATS metadata: `BMS/v1/PUB/Metadata/ATS/#`
579 parameters:
580 pointType:
581 enum:
582 - Status
583 - Available
584 - GenericPoint
585 description: ATS point type.
586 tagPath:
587 description: Vendor-defined hierarchical tag path.
588 messages:
589 status:
590 $ref: '#/components/messages/ATSStatusMsg'
591 genericPoint:
592 $ref: '#/components/messages/GenericEquipmentPointMsg'
593 available:
594 $ref: '#/components/messages/ATSAvailableMsg'
595
596 atsIntegrationValue:
597 address: 'BMS/v1/{integration}/Value/ATS/{pointType}/{tagPath}'
598 description: |
599 Values published by integrations for ATS control points.
600 Subscribe to `BMS/v1/PUB/Metadata/ATS/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
601 That matching metadata payload indicates the integration can publish values to this topic.
602
603 **MQTT wildcard examples**
604
605 - All integration ATS values: `BMS/v1/+/Value/ATS/#`
606 parameters:
607 integration:
608 description: Integration identifier.
609 pointType:
610 enum:
611 - GenericPoint
612 description: Integration-published ATS point type.
613 tagPath:
614 description: Must match the tagPath from the corresponding BMS metadata exactly.
615 messages:
616 valueMessage:
617 $ref: '#/components/messages/ValueMessage'
618
619 # ---------------------------------------------------------------------------
620 # Generator
621 # ---------------------------------------------------------------------------
622
623 generatorValue:
624 address: 'BMS/v1/PUB/Value/Generator/{pointType}/{tagPath}'
625 description: |
626 Real-time values published by the BMS for Generator points.
627 Extensible: additional vendor-specific pointTypes may be present.
628
629 **MQTT wildcard examples**
630
631 - All Generator values: `BMS/v1/PUB/Value/Generator/#`
632 parameters:
633 pointType:
634 enum:
635 - Status
636 - Available
637 - GenericPoint
638 description: BMS-published Generator point type.
639 tagPath:
640 description: Vendor-defined hierarchical tag path.
641 messages:
642 valueMessage:
643 $ref: '#/components/messages/ValueMessage'
644
645 generatorMetadata:
646 address: 'BMS/v1/PUB/Metadata/Generator/{pointType}/{tagPath}'
647 description: |
648 BMS-published metadata for Generator points.
649
650 **MQTT wildcard examples**
651
652 - All Generator metadata: `BMS/v1/PUB/Metadata/Generator/#`
653 parameters:
654 pointType:
655 enum:
656 - Status
657 - Available
658 - GenericPoint
659 description: Generator point type.
660 tagPath:
661 description: Vendor-defined hierarchical tag path.
662 messages:
663 status:
664 $ref: '#/components/messages/GeneratorStatusMsg'
665 genericPoint:
666 $ref: '#/components/messages/GenericEquipmentPointMsg'
667 available:
668 $ref: '#/components/messages/GeneratorAvailableMsg'
669
670 generatorIntegrationValue:
671 address: 'BMS/v1/{integration}/Value/Generator/{pointType}/{tagPath}'
672 description: |
673 Values published by integrations for Generator control points.
674 Subscribe to `BMS/v1/PUB/Metadata/Generator/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
675 That matching metadata payload indicates the integration can publish values to this topic.
676
677 **MQTT wildcard examples**
678
679 - All integration Generator values: `BMS/v1/+/Value/Generator/#`
680 parameters:
681 integration:
682 description: Integration identifier.
683 pointType:
684 enum:
685 - GenericPoint
686 description: Integration-published Generator point type.
687 tagPath:
688 description: Must match the tagPath from the corresponding BMS metadata exactly.
689 messages:
690 valueMessage:
691 $ref: '#/components/messages/ValueMessage'
692
693 # ---------------------------------------------------------------------------
694 # Shunt
695 # ---------------------------------------------------------------------------
696
697 shuntValue:
698 address: 'BMS/v1/PUB/Value/Shunt/{pointType}/{tagPath}'
699 description: |
700 Real-time values published by the BMS for Shunt points.
701
702 **MQTT wildcard examples**
703
704 - All Shunt values: `BMS/v1/PUB/Value/Shunt/#`
705 parameters:
706 pointType:
707 enum:
708 - Status
709 - Available
710 - GenericPoint
711 description: BMS-published Shunt point type.
712 tagPath:
713 description: Vendor-defined hierarchical tag path.
714 messages:
715 valueMessage:
716 $ref: '#/components/messages/ValueMessage'
717
718 shuntMetadata:
719 address: 'BMS/v1/PUB/Metadata/Shunt/{pointType}/{tagPath}'
720 description: |
721 BMS-published metadata for Shunt points.
722
723 **MQTT wildcard examples**
724
725 - All Shunt metadata: `BMS/v1/PUB/Metadata/Shunt/#`
726 parameters:
727 pointType:
728 enum:
729 - Status
730 - Available
731 - GenericPoint
732 description: Shunt point type.
733 tagPath:
734 description: Vendor-defined hierarchical tag path.
735 messages:
736 status:
737 $ref: '#/components/messages/ShuntStatusMsg'
738 genericPoint:
739 $ref: '#/components/messages/GenericEquipmentPointMsg'
740 available:
741 $ref: '#/components/messages/ShuntAvailableMsg'
742
743 shuntIntegrationValue:
744 address: 'BMS/v1/{integration}/Value/Shunt/{pointType}/{tagPath}'
745 description: |
746 Values published by integrations for Shunt control points.
747 Subscribe to `BMS/v1/PUB/Metadata/Shunt/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
748 That matching metadata payload indicates the integration can publish values to this topic.
749
750 **MQTT wildcard examples**
751
752 - All integration Shunt values: `BMS/v1/+/Value/Shunt/#`
753 parameters:
754 integration:
755 description: Integration identifier.
756 pointType:
757 enum:
758 - GenericPoint
759 description: Integration-published Shunt point type.
760 tagPath:
761 description: Must match the tagPath from the corresponding BMS metadata exactly.
762 messages:
763 valueMessage:
764 $ref: '#/components/messages/ValueMessage'
765
766 # ---------------------------------------------------------------------------
767 # Breaker
768 # ---------------------------------------------------------------------------
769
770 breakerValue:
771 address: 'BMS/v1/PUB/Value/Breaker/{pointType}/{tagPath}'
772 description: |
773 Real-time values published by the BMS for Breaker points.
774
775 **MQTT wildcard examples**
776
777 - All Breaker values: `BMS/v1/PUB/Value/Breaker/#`
778 parameters:
779 pointType:
780 enum:
781 - Status
782 - Available
783 - GenericPoint
784 description: BMS-published Breaker point type.
785 tagPath:
786 description: Vendor-defined hierarchical tag path.
787 messages:
788 valueMessage:
789 $ref: '#/components/messages/ValueMessage'
790
791 breakerMetadata:
792 address: 'BMS/v1/PUB/Metadata/Breaker/{pointType}/{tagPath}'
793 description: |
794 BMS-published metadata for Breaker points.
795
796 **MQTT wildcard examples**
797
798 - All Breaker metadata: `BMS/v1/PUB/Metadata/Breaker/#`
799 parameters:
800 pointType:
801 enum:
802 - Status
803 - Available
804 - GenericPoint
805 description: Breaker point type.
806 tagPath:
807 description: Vendor-defined hierarchical tag path.
808 messages:
809 status:
810 $ref: '#/components/messages/BreakerStatusMsg'
811 genericPoint:
812 $ref: '#/components/messages/GenericEquipmentPointMsg'
813 available:
814 $ref: '#/components/messages/BreakerAvailableMsg'
815
816 breakerIntegrationValue:
817 address: 'BMS/v1/{integration}/Value/Breaker/{pointType}/{tagPath}'
818 description: |
819 Values published by integrations for Breaker control points.
820 Subscribe to `BMS/v1/PUB/Metadata/Breaker/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
821 That matching metadata payload indicates the integration can publish values to this topic.
822
823 **MQTT wildcard examples**
824
825 - All integration Breaker values: `BMS/v1/+/Value/Breaker/#`
826 parameters:
827 integration:
828 description: Integration identifier.
829 pointType:
830 enum:
831 - GenericPoint
832 description: Integration-published Breaker point type.
833 tagPath:
834 description: Must match the tagPath from the corresponding BMS metadata exactly.
835 messages:
836 valueMessage:
837 $ref: '#/components/messages/ValueMessage'
838
839 # ---------------------------------------------------------------------------
840 # CDU
841 # ---------------------------------------------------------------------------
842
843 cduValue:
844 address: 'BMS/v1/PUB/Value/CDU/{pointType}/{tagPath}'
845 description: |
846 Real-time values published by the BMS for CDU points.
847
848 **MQTT wildcard examples**
849
850 - All CDU values: `BMS/v1/PUB/Value/CDU/#`
851 parameters:
852 pointType:
853 enum:
854 - LiquidTemperature
855 - LiquidDifferentialPressure
856 - LiquidFlow
857 - LiquidPressure
858 - Status
859 - Available
860 - ValvePosition
861 - PumpSpeed
862 - FanSpeed
863 - DamperPosition
864 - AirTemperature
865 - AirDifferentialPressure
866 - AirRelativeHumidity
867 - AirFlow
868 - AirPressure
869 - LeakDetect
870 - GenericPoint
871 description: BMS-published CDU point type.
872 tagPath:
873 description: Vendor-defined hierarchical tag path.
874 messages:
875 valueMessage:
876 $ref: '#/components/messages/ValueMessage'
877
878 cduMetadata:
879 address: 'BMS/v1/PUB/Metadata/CDU/{pointType}/{tagPath}'
880 description: |
881 BMS-published metadata for CDU points.
882 Includes integration-owned points which carries the `integration` field.
883
884 **MQTT wildcard examples**
885
886 - All CDU metadata: `BMS/v1/PUB/Metadata/CDU/#`
887 parameters:
888 pointType:
889 enum:
890 - LiquidTemperature
891 - LiquidDifferentialPressure
892 - LiquidFlow
893 - LiquidPressure
894 - Status
895 - Available
896 - ValvePosition
897 - PumpSpeed
898 - FanSpeed
899 - DamperPosition
900 - AirTemperature
901 - AirDifferentialPressure
902 - AirRelativeHumidity
903 - AirFlow
904 - AirPressure
905 - LeakDetect
906 - LiquidTemperatureSpRequest
907 - GenericPoint
908 description: CDU point type.
909 tagPath:
910 description: Vendor-defined hierarchical tag path.
911 messages:
912 liquidTemperature:
913 $ref: '#/components/messages/CDULiquidTemperatureMsg'
914 liquidDifferentialPressure:
915 $ref: '#/components/messages/CDULiquidDifferentialPressureMsg'
916 liquidFlow:
917 $ref: '#/components/messages/CDULiquidFlowMsg'
918 liquidPressure:
919 $ref: '#/components/messages/CDULiquidPressureMsg'
920 status:
921 $ref: '#/components/messages/CDUStatusMsg'
922 available:
923 $ref: '#/components/messages/CDUAvailableMsg'
924 valvePosition:
925 $ref: '#/components/messages/CDUValvePositionMsg'
926 pumpSpeed:
927 $ref: '#/components/messages/CDUPumpSpeedMsg'
928 fanSpeed:
929 $ref: '#/components/messages/CDUFanSpeedMsg'
930 damperPosition:
931 $ref: '#/components/messages/CDUDamperPositionMsg'
932 airTemperature:
933 $ref: '#/components/messages/CDUAirTemperatureMsg'
934 airDifferentialPressure:
935 $ref: '#/components/messages/CDUAirDifferentialPressureMsg'
936 airRelativeHumidity:
937 $ref: '#/components/messages/CDUAirRelativeHumidityMsg'
938 airFlow:
939 $ref: '#/components/messages/CDUAirFlowMsg'
940 airPressure:
941 $ref: '#/components/messages/CDUAirPressureMsg'
942 leakDetect:
943 $ref: '#/components/messages/CDULeakDetectMsg'
944 liquidTemperatureSpRequest:
945 $ref: '#/components/messages/LiquidTemperatureSpRequestMsg'
946 genericPoint:
947 $ref: '#/components/messages/GenericEquipmentPointMsg'
948
949 cduIntegrationValue:
950 address: 'BMS/v1/{integration}/Value/CDU/{pointType}/{tagPath}'
951 description: |
952 Values published by integrations for CDU control points.
953 Subscribe to `BMS/v1/PUB/Metadata/CDU/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
954 That matching metadata payload indicates the integration can publish values to this topic.
955
956 **MQTT wildcard examples**
957
958 - All integration CDU values: `BMS/v1/+/Value/CDU/#`
959 parameters:
960 integration:
961 description: Integration identifier.
962 pointType:
963 enum:
964 - LiquidTemperatureSpRequest
965 - GenericPoint
966 description: Integration-published CDU point type.
967 tagPath:
968 description: Must match the tagPath from the corresponding BMS metadata exactly.
969 messages:
970 valueMessage:
971 $ref: '#/components/messages/ValueMessage'
972
973 # ---------------------------------------------------------------------------
974 # CoolingTower
975 # ---------------------------------------------------------------------------
976
977 coolingTowerValue:
978 address: 'BMS/v1/PUB/Value/CoolingTower/{pointType}/{tagPath}'
979 description: |
980 Real-time values published by the BMS for CoolingTower points.
981
982 **MQTT wildcard examples**
983
984 - All CoolingTower values: `BMS/v1/PUB/Value/CoolingTower/#`
985 parameters:
986 pointType:
987 enum:
988 - LiquidTemperature
989 - LiquidDifferentialPressure
990 - LiquidFlow
991 - LiquidPressure
992 - Status
993 - Available
994 - ValvePosition
995 - PumpSpeed
996 - FanSpeed
997 - DamperPosition
998 - AirTemperature
999 - AirDifferentialPressure
1000 - AirRelativeHumidity
1001 - AirFlow
1002 - AirPressure
1003 - LeakDetect
1004 - GenericPoint
1005 description: BMS-published CoolingTower point type.
1006 tagPath:
1007 description: Vendor-defined hierarchical tag path.
1008 messages:
1009 valueMessage:
1010 $ref: '#/components/messages/ValueMessage'
1011
1012 coolingTowerMetadata:
1013 address: 'BMS/v1/PUB/Metadata/CoolingTower/{pointType}/{tagPath}'
1014 description: |
1015 BMS-published metadata for CoolingTower points.
1016
1017 **MQTT wildcard examples**
1018
1019 - All CoolingTower metadata: `BMS/v1/PUB/Metadata/CoolingTower/#`
1020 parameters:
1021 pointType:
1022 enum:
1023 - LiquidTemperature
1024 - LiquidDifferentialPressure
1025 - LiquidFlow
1026 - LiquidPressure
1027 - Status
1028 - Available
1029 - ValvePosition
1030 - PumpSpeed
1031 - FanSpeed
1032 - DamperPosition
1033 - AirTemperature
1034 - AirDifferentialPressure
1035 - AirRelativeHumidity
1036 - AirFlow
1037 - AirPressure
1038 - LeakDetect
1039 - GenericPoint
1040 description: CoolingTower point type.
1041 tagPath:
1042 description: Vendor-defined hierarchical tag path.
1043 messages:
1044 liquidTemperature:
1045 $ref: '#/components/messages/CoolingTowerLiquidTemperatureMsg'
1046 liquidDifferentialPressure:
1047 $ref: '#/components/messages/CoolingTowerLiquidDifferentialPressureMsg'
1048 liquidFlow:
1049 $ref: '#/components/messages/CoolingTowerLiquidFlowMsg'
1050 liquidPressure:
1051 $ref: '#/components/messages/CoolingTowerLiquidPressureMsg'
1052 status:
1053 $ref: '#/components/messages/CoolingTowerStatusMsg'
1054 available:
1055 $ref: '#/components/messages/CoolingTowerAvailableMsg'
1056 valvePosition:
1057 $ref: '#/components/messages/CoolingTowerValvePositionMsg'
1058 pumpSpeed:
1059 $ref: '#/components/messages/CoolingTowerPumpSpeedMsg'
1060 fanSpeed:
1061 $ref: '#/components/messages/CoolingTowerFanSpeedMsg'
1062 damperPosition:
1063 $ref: '#/components/messages/CoolingTowerDamperPositionMsg'
1064 airTemperature:
1065 $ref: '#/components/messages/CoolingTowerAirTemperatureMsg'
1066 airDifferentialPressure:
1067 $ref: '#/components/messages/CoolingTowerAirDifferentialPressureMsg'
1068 airRelativeHumidity:
1069 $ref: '#/components/messages/CoolingTowerAirRelativeHumidityMsg'
1070 airFlow:
1071 $ref: '#/components/messages/CoolingTowerAirFlowMsg'
1072 airPressure:
1073 $ref: '#/components/messages/CoolingTowerAirPressureMsg'
1074 leakDetect:
1075 $ref: '#/components/messages/CoolingTowerLeakDetectMsg'
1076 genericPoint:
1077 $ref: '#/components/messages/GenericEquipmentPointMsg'
1078
1079 coolingTowerIntegrationValue:
1080 address: 'BMS/v1/{integration}/Value/CoolingTower/{pointType}/{tagPath}'
1081 description: |
1082 Values published by integrations for CoolingTower control points.
1083 Subscribe to `BMS/v1/PUB/Metadata/CoolingTower/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1084 That matching metadata payload indicates the integration can publish values to this topic.
1085
1086 **MQTT wildcard examples**
1087
1088 - All integration CoolingTower values: `BMS/v1/+/Value/CoolingTower/#`
1089 parameters:
1090 integration:
1091 description: Integration identifier.
1092 pointType:
1093 enum:
1094 - GenericPoint
1095 description: Integration-published CoolingTower point type.
1096 tagPath:
1097 description: Must match the tagPath from the corresponding BMS metadata exactly.
1098 messages:
1099 valueMessage:
1100 $ref: '#/components/messages/ValueMessage'
1101
1102 # ---------------------------------------------------------------------------
1103 # HX
1104 # ---------------------------------------------------------------------------
1105
1106 hxValue:
1107 address: 'BMS/v1/PUB/Value/HX/{pointType}/{tagPath}'
1108 description: |
1109 Real-time values published by the BMS for HX points.
1110
1111 **MQTT wildcard examples**
1112
1113 - All HX values: `BMS/v1/PUB/Value/HX/#`
1114 parameters:
1115 pointType:
1116 enum:
1117 - LiquidTemperature
1118 - LiquidDifferentialPressure
1119 - LiquidFlow
1120 - LiquidPressure
1121 - Status
1122 - Available
1123 - ValvePosition
1124 - PumpSpeed
1125 - FanSpeed
1126 - DamperPosition
1127 - AirTemperature
1128 - AirDifferentialPressure
1129 - AirRelativeHumidity
1130 - AirFlow
1131 - AirPressure
1132 - LeakDetect
1133 - GenericPoint
1134 description: BMS-published HX point type.
1135 tagPath:
1136 description: Vendor-defined hierarchical tag path.
1137 messages:
1138 valueMessage:
1139 $ref: '#/components/messages/ValueMessage'
1140
1141 hxMetadata:
1142 address: 'BMS/v1/PUB/Metadata/HX/{pointType}/{tagPath}'
1143 description: |
1144 BMS-published metadata for HX points.
1145
1146 **MQTT wildcard examples**
1147
1148 - All HX metadata: `BMS/v1/PUB/Metadata/HX/#`
1149 parameters:
1150 pointType:
1151 enum:
1152 - LiquidTemperature
1153 - LiquidDifferentialPressure
1154 - LiquidFlow
1155 - LiquidPressure
1156 - Status
1157 - Available
1158 - ValvePosition
1159 - PumpSpeed
1160 - FanSpeed
1161 - DamperPosition
1162 - AirTemperature
1163 - AirDifferentialPressure
1164 - AirRelativeHumidity
1165 - AirFlow
1166 - AirPressure
1167 - LeakDetect
1168 - GenericPoint
1169 description: HX point type.
1170 tagPath:
1171 description: Vendor-defined hierarchical tag path.
1172 messages:
1173 liquidTemperature:
1174 $ref: '#/components/messages/HXLiquidTemperatureMsg'
1175 liquidDifferentialPressure:
1176 $ref: '#/components/messages/HXLiquidDifferentialPressureMsg'
1177 liquidFlow:
1178 $ref: '#/components/messages/HXLiquidFlowMsg'
1179 liquidPressure:
1180 $ref: '#/components/messages/HXLiquidPressureMsg'
1181 status:
1182 $ref: '#/components/messages/HXStatusMsg'
1183 available:
1184 $ref: '#/components/messages/HXAvailableMsg'
1185 valvePosition:
1186 $ref: '#/components/messages/HXValvePositionMsg'
1187 pumpSpeed:
1188 $ref: '#/components/messages/HXPumpSpeedMsg'
1189 fanSpeed:
1190 $ref: '#/components/messages/HXFanSpeedMsg'
1191 damperPosition:
1192 $ref: '#/components/messages/HXDamperPositionMsg'
1193 airTemperature:
1194 $ref: '#/components/messages/HXAirTemperatureMsg'
1195 airDifferentialPressure:
1196 $ref: '#/components/messages/HXAirDifferentialPressureMsg'
1197 airRelativeHumidity:
1198 $ref: '#/components/messages/HXAirRelativeHumidityMsg'
1199 airFlow:
1200 $ref: '#/components/messages/HXAirFlowMsg'
1201 airPressure:
1202 $ref: '#/components/messages/HXAirPressureMsg'
1203 leakDetect:
1204 $ref: '#/components/messages/HXLeakDetectMsg'
1205 genericPoint:
1206 $ref: '#/components/messages/GenericEquipmentPointMsg'
1207
1208 hxIntegrationValue:
1209 address: 'BMS/v1/{integration}/Value/HX/{pointType}/{tagPath}'
1210 description: |
1211 Values published by integrations for HX control points.
1212 Subscribe to `BMS/v1/PUB/Metadata/HX/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1213 That matching metadata payload indicates the integration can publish values to this topic.
1214
1215 **MQTT wildcard examples**
1216
1217 - All integration HX values: `BMS/v1/+/Value/HX/#`
1218 parameters:
1219 integration:
1220 description: Integration identifier.
1221 pointType:
1222 enum:
1223 - GenericPoint
1224 description: Integration-published HX point type.
1225 tagPath:
1226 description: Must match the tagPath from the corresponding BMS metadata exactly.
1227 messages:
1228 valueMessage:
1229 $ref: '#/components/messages/ValueMessage'
1230
1231 # ---------------------------------------------------------------------------
1232 # CRAH
1233 # ---------------------------------------------------------------------------
1234
1235 crahValue:
1236 address: 'BMS/v1/PUB/Value/CRAH/{pointType}/{tagPath}'
1237 description: |
1238 Real-time values published by the BMS for CRAH points.
1239
1240 **MQTT wildcard examples**
1241
1242 - All CRAH values: `BMS/v1/PUB/Value/CRAH/#`
1243 parameters:
1244 pointType:
1245 enum:
1246 - LiquidTemperature
1247 - LiquidDifferentialPressure
1248 - LiquidFlow
1249 - LiquidPressure
1250 - Status
1251 - Available
1252 - ValvePosition
1253 - PumpSpeed
1254 - FanSpeed
1255 - DamperPosition
1256 - AirTemperature
1257 - AirDifferentialPressure
1258 - AirRelativeHumidity
1259 - AirFlow
1260 - AirPressure
1261 - LeakDetect
1262 - GenericPoint
1263 description: BMS-published CRAH point type.
1264 tagPath:
1265 description: Vendor-defined hierarchical tag path.
1266 messages:
1267 valueMessage:
1268 $ref: '#/components/messages/ValueMessage'
1269
1270 crahMetadata:
1271 address: 'BMS/v1/PUB/Metadata/CRAH/{pointType}/{tagPath}'
1272 description: |
1273 BMS-published metadata for CRAH points.
1274
1275 **MQTT wildcard examples**
1276
1277 - All CRAH metadata: `BMS/v1/PUB/Metadata/CRAH/#`
1278 parameters:
1279 pointType:
1280 enum:
1281 - LiquidTemperature
1282 - LiquidDifferentialPressure
1283 - LiquidFlow
1284 - LiquidPressure
1285 - Status
1286 - Available
1287 - ValvePosition
1288 - PumpSpeed
1289 - FanSpeed
1290 - DamperPosition
1291 - AirTemperature
1292 - AirDifferentialPressure
1293 - AirRelativeHumidity
1294 - AirFlow
1295 - AirPressure
1296 - LeakDetect
1297 - GenericPoint
1298 description: CRAH point type.
1299 tagPath:
1300 description: Vendor-defined hierarchical tag path.
1301 messages:
1302 liquidTemperature:
1303 $ref: '#/components/messages/CRAHLiquidTemperatureMsg'
1304 liquidDifferentialPressure:
1305 $ref: '#/components/messages/CRAHLiquidDifferentialPressureMsg'
1306 liquidFlow:
1307 $ref: '#/components/messages/CRAHLiquidFlowMsg'
1308 liquidPressure:
1309 $ref: '#/components/messages/CRAHLiquidPressureMsg'
1310 status:
1311 $ref: '#/components/messages/CRAHStatusMsg'
1312 available:
1313 $ref: '#/components/messages/CRAHAvailableMsg'
1314 valvePosition:
1315 $ref: '#/components/messages/CRAHValvePositionMsg'
1316 pumpSpeed:
1317 $ref: '#/components/messages/CRAHPumpSpeedMsg'
1318 fanSpeed:
1319 $ref: '#/components/messages/CRAHFanSpeedMsg'
1320 damperPosition:
1321 $ref: '#/components/messages/CRAHDamperPositionMsg'
1322 airTemperature:
1323 $ref: '#/components/messages/CRAHAirTemperatureMsg'
1324 airDifferentialPressure:
1325 $ref: '#/components/messages/CRAHAirDifferentialPressureMsg'
1326 airRelativeHumidity:
1327 $ref: '#/components/messages/CRAHAirRelativeHumidityMsg'
1328 airFlow:
1329 $ref: '#/components/messages/CRAHAirFlowMsg'
1330 airPressure:
1331 $ref: '#/components/messages/CRAHAirPressureMsg'
1332 leakDetect:
1333 $ref: '#/components/messages/CRAHLeakDetectMsg'
1334 genericPoint:
1335 $ref: '#/components/messages/GenericEquipmentPointMsg'
1336
1337 crahIntegrationValue:
1338 address: 'BMS/v1/{integration}/Value/CRAH/{pointType}/{tagPath}'
1339 description: |
1340 Values published by integrations for CRAH control points.
1341 Subscribe to `BMS/v1/PUB/Metadata/CRAH/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1342 That matching metadata payload indicates the integration can publish values to this topic.
1343
1344 **MQTT wildcard examples**
1345
1346 - All integration CRAH values: `BMS/v1/+/Value/CRAH/#`
1347 parameters:
1348 integration:
1349 description: Integration identifier.
1350 pointType:
1351 enum:
1352 - GenericPoint
1353 description: Integration-published CRAH point type.
1354 tagPath:
1355 description: Must match the tagPath from the corresponding BMS metadata exactly.
1356 messages:
1357 valueMessage:
1358 $ref: '#/components/messages/ValueMessage'
1359
1360 # ---------------------------------------------------------------------------
1361 # CRAC
1362 # ---------------------------------------------------------------------------
1363
1364 cracValue:
1365 address: 'BMS/v1/PUB/Value/CRAC/{pointType}/{tagPath}'
1366 description: |
1367 Real-time values published by the BMS for CRAC points.
1368
1369 **MQTT wildcard examples**
1370
1371 - All CRAC values: `BMS/v1/PUB/Value/CRAC/#`
1372 parameters:
1373 pointType:
1374 enum:
1375 - LiquidTemperature
1376 - LiquidDifferentialPressure
1377 - LiquidFlow
1378 - LiquidPressure
1379 - Status
1380 - Available
1381 - ValvePosition
1382 - PumpSpeed
1383 - FanSpeed
1384 - DamperPosition
1385 - AirTemperature
1386 - AirDifferentialPressure
1387 - AirRelativeHumidity
1388 - AirFlow
1389 - AirPressure
1390 - LeakDetect
1391 - GenericPoint
1392 description: BMS-published CRAC point type.
1393 tagPath:
1394 description: Vendor-defined hierarchical tag path.
1395 messages:
1396 valueMessage:
1397 $ref: '#/components/messages/ValueMessage'
1398
1399 cracMetadata:
1400 address: 'BMS/v1/PUB/Metadata/CRAC/{pointType}/{tagPath}'
1401 description: |
1402 BMS-published metadata for CRAC points.
1403
1404 **MQTT wildcard examples**
1405
1406 - All CRAC metadata: `BMS/v1/PUB/Metadata/CRAC/#`
1407 parameters:
1408 pointType:
1409 enum:
1410 - LiquidTemperature
1411 - LiquidDifferentialPressure
1412 - LiquidFlow
1413 - LiquidPressure
1414 - Status
1415 - Available
1416 - ValvePosition
1417 - PumpSpeed
1418 - FanSpeed
1419 - DamperPosition
1420 - AirTemperature
1421 - AirDifferentialPressure
1422 - AirRelativeHumidity
1423 - AirFlow
1424 - AirPressure
1425 - LeakDetect
1426 - GenericPoint
1427 description: CRAC point type.
1428 tagPath:
1429 description: Vendor-defined hierarchical tag path.
1430 messages:
1431 liquidTemperature:
1432 $ref: '#/components/messages/CRACLiquidTemperatureMsg'
1433 liquidDifferentialPressure:
1434 $ref: '#/components/messages/CRACLiquidDifferentialPressureMsg'
1435 liquidFlow:
1436 $ref: '#/components/messages/CRACLiquidFlowMsg'
1437 liquidPressure:
1438 $ref: '#/components/messages/CRACLiquidPressureMsg'
1439 status:
1440 $ref: '#/components/messages/CRACStatusMsg'
1441 available:
1442 $ref: '#/components/messages/CRACAvailableMsg'
1443 valvePosition:
1444 $ref: '#/components/messages/CRACValvePositionMsg'
1445 pumpSpeed:
1446 $ref: '#/components/messages/CRACPumpSpeedMsg'
1447 fanSpeed:
1448 $ref: '#/components/messages/CRACFanSpeedMsg'
1449 damperPosition:
1450 $ref: '#/components/messages/CRACDamperPositionMsg'
1451 airTemperature:
1452 $ref: '#/components/messages/CRACAirTemperatureMsg'
1453 airDifferentialPressure:
1454 $ref: '#/components/messages/CRACAirDifferentialPressureMsg'
1455 airRelativeHumidity:
1456 $ref: '#/components/messages/CRACAirRelativeHumidityMsg'
1457 airFlow:
1458 $ref: '#/components/messages/CRACAirFlowMsg'
1459 airPressure:
1460 $ref: '#/components/messages/CRACAirPressureMsg'
1461 leakDetect:
1462 $ref: '#/components/messages/CRACLeakDetectMsg'
1463 genericPoint:
1464 $ref: '#/components/messages/GenericEquipmentPointMsg'
1465
1466 cracIntegrationValue:
1467 address: 'BMS/v1/{integration}/Value/CRAC/{pointType}/{tagPath}'
1468 description: |
1469 Values published by integrations for CRAC control points.
1470 Subscribe to `BMS/v1/PUB/Metadata/CRAC/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1471 That matching metadata payload indicates the integration can publish values to this topic.
1472
1473 **MQTT wildcard examples**
1474
1475 - All integration CRAC values: `BMS/v1/+/Value/CRAC/#`
1476 parameters:
1477 integration:
1478 description: Integration identifier.
1479 pointType:
1480 enum:
1481 - GenericPoint
1482 description: Integration-published CRAC point type.
1483 tagPath:
1484 description: Must match the tagPath from the corresponding BMS metadata exactly.
1485 messages:
1486 valueMessage:
1487 $ref: '#/components/messages/ValueMessage'
1488
1489 # ---------------------------------------------------------------------------
1490 # AHU
1491 # ---------------------------------------------------------------------------
1492
1493 ahuValue:
1494 address: 'BMS/v1/PUB/Value/AHU/{pointType}/{tagPath}'
1495 description: |
1496 Real-time values published by the BMS for AHU points.
1497
1498 **MQTT wildcard examples**
1499
1500 - All AHU values: `BMS/v1/PUB/Value/AHU/#`
1501 parameters:
1502 pointType:
1503 enum:
1504 - LiquidTemperature
1505 - LiquidDifferentialPressure
1506 - LiquidFlow
1507 - LiquidPressure
1508 - Status
1509 - Available
1510 - ValvePosition
1511 - PumpSpeed
1512 - FanSpeed
1513 - DamperPosition
1514 - AirTemperature
1515 - AirDifferentialPressure
1516 - AirRelativeHumidity
1517 - AirFlow
1518 - AirPressure
1519 - LeakDetect
1520 - GenericPoint
1521 description: BMS-published AHU point type.
1522 tagPath:
1523 description: Vendor-defined hierarchical tag path.
1524 messages:
1525 valueMessage:
1526 $ref: '#/components/messages/ValueMessage'
1527
1528 ahuMetadata:
1529 address: 'BMS/v1/PUB/Metadata/AHU/{pointType}/{tagPath}'
1530 description: |
1531 BMS-published metadata for AHU points.
1532
1533 **MQTT wildcard examples**
1534
1535 - All AHU metadata: `BMS/v1/PUB/Metadata/AHU/#`
1536 parameters:
1537 pointType:
1538 enum:
1539 - LiquidTemperature
1540 - LiquidDifferentialPressure
1541 - LiquidFlow
1542 - LiquidPressure
1543 - Status
1544 - Available
1545 - ValvePosition
1546 - PumpSpeed
1547 - FanSpeed
1548 - DamperPosition
1549 - AirTemperature
1550 - AirDifferentialPressure
1551 - AirRelativeHumidity
1552 - AirFlow
1553 - AirPressure
1554 - LeakDetect
1555 - GenericPoint
1556 description: AHU point type.
1557 tagPath:
1558 description: Vendor-defined hierarchical tag path.
1559 messages:
1560 liquidTemperature:
1561 $ref: '#/components/messages/AHULiquidTemperatureMsg'
1562 liquidDifferentialPressure:
1563 $ref: '#/components/messages/AHULiquidDifferentialPressureMsg'
1564 liquidFlow:
1565 $ref: '#/components/messages/AHULiquidFlowMsg'
1566 liquidPressure:
1567 $ref: '#/components/messages/AHULiquidPressureMsg'
1568 status:
1569 $ref: '#/components/messages/AHUStatusMsg'
1570 available:
1571 $ref: '#/components/messages/AHUAvailableMsg'
1572 valvePosition:
1573 $ref: '#/components/messages/AHUValvePositionMsg'
1574 pumpSpeed:
1575 $ref: '#/components/messages/AHUPumpSpeedMsg'
1576 fanSpeed:
1577 $ref: '#/components/messages/AHUFanSpeedMsg'
1578 damperPosition:
1579 $ref: '#/components/messages/AHUDamperPositionMsg'
1580 airTemperature:
1581 $ref: '#/components/messages/AHUAirTemperatureMsg'
1582 airDifferentialPressure:
1583 $ref: '#/components/messages/AHUAirDifferentialPressureMsg'
1584 airRelativeHumidity:
1585 $ref: '#/components/messages/AHUAirRelativeHumidityMsg'
1586 airFlow:
1587 $ref: '#/components/messages/AHUAirFlowMsg'
1588 airPressure:
1589 $ref: '#/components/messages/AHUAirPressureMsg'
1590 leakDetect:
1591 $ref: '#/components/messages/AHULeakDetectMsg'
1592 genericPoint:
1593 $ref: '#/components/messages/GenericEquipmentPointMsg'
1594
1595 ahuIntegrationValue:
1596 address: 'BMS/v1/{integration}/Value/AHU/{pointType}/{tagPath}'
1597 description: |
1598 Values published by integrations for AHU control points.
1599 Subscribe to `BMS/v1/PUB/Metadata/AHU/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1600 That matching metadata payload indicates the integration can publish values to this topic.
1601
1602 **MQTT wildcard examples**
1603
1604 - All integration AHU values: `BMS/v1/+/Value/AHU/#`
1605 parameters:
1606 integration:
1607 description: Integration identifier.
1608 pointType:
1609 enum:
1610 - GenericPoint
1611 description: Integration-published AHU point type.
1612 tagPath:
1613 description: Must match the tagPath from the corresponding BMS metadata exactly.
1614 messages:
1615 valueMessage:
1616 $ref: '#/components/messages/ValueMessage'
1617
1618 # ---------------------------------------------------------------------------
1619 # Chiller
1620 # ---------------------------------------------------------------------------
1621
1622 chillerValue:
1623 address: 'BMS/v1/PUB/Value/Chiller/{pointType}/{tagPath}'
1624 description: |
1625 Real-time values published by the BMS for Chiller points.
1626
1627 **MQTT wildcard examples**
1628
1629 - All Chiller values: `BMS/v1/PUB/Value/Chiller/#`
1630 parameters:
1631 pointType:
1632 enum:
1633 - LiquidTemperature
1634 - LiquidDifferentialPressure
1635 - LiquidFlow
1636 - LiquidPressure
1637 - Status
1638 - Available
1639 - ValvePosition
1640 - PumpSpeed
1641 - FanSpeed
1642 - DamperPosition
1643 - AirTemperature
1644 - AirDifferentialPressure
1645 - AirRelativeHumidity
1646 - AirFlow
1647 - AirPressure
1648 - LeakDetect
1649 - GenericPoint
1650 description: BMS-published Chiller point type.
1651 tagPath:
1652 description: Vendor-defined hierarchical tag path.
1653 messages:
1654 valueMessage:
1655 $ref: '#/components/messages/ValueMessage'
1656
1657 chillerMetadata:
1658 address: 'BMS/v1/PUB/Metadata/Chiller/{pointType}/{tagPath}'
1659 description: |
1660 BMS-published metadata for Chiller points.
1661
1662 **MQTT wildcard examples**
1663
1664 - All Chiller metadata: `BMS/v1/PUB/Metadata/Chiller/#`
1665 parameters:
1666 pointType:
1667 enum:
1668 - LiquidTemperature
1669 - LiquidDifferentialPressure
1670 - LiquidFlow
1671 - LiquidPressure
1672 - Status
1673 - Available
1674 - ValvePosition
1675 - PumpSpeed
1676 - FanSpeed
1677 - DamperPosition
1678 - AirTemperature
1679 - AirDifferentialPressure
1680 - AirRelativeHumidity
1681 - AirFlow
1682 - AirPressure
1683 - LeakDetect
1684 - GenericPoint
1685 description: Chiller point type.
1686 tagPath:
1687 description: Vendor-defined hierarchical tag path.
1688 messages:
1689 liquidTemperature:
1690 $ref: '#/components/messages/ChillerLiquidTemperatureMsg'
1691 liquidDifferentialPressure:
1692 $ref: '#/components/messages/ChillerLiquidDifferentialPressureMsg'
1693 liquidFlow:
1694 $ref: '#/components/messages/ChillerLiquidFlowMsg'
1695 liquidPressure:
1696 $ref: '#/components/messages/ChillerLiquidPressureMsg'
1697 status:
1698 $ref: '#/components/messages/ChillerStatusMsg'
1699 available:
1700 $ref: '#/components/messages/ChillerAvailableMsg'
1701 valvePosition:
1702 $ref: '#/components/messages/ChillerValvePositionMsg'
1703 pumpSpeed:
1704 $ref: '#/components/messages/ChillerPumpSpeedMsg'
1705 fanSpeed:
1706 $ref: '#/components/messages/ChillerFanSpeedMsg'
1707 damperPosition:
1708 $ref: '#/components/messages/ChillerDamperPositionMsg'
1709 airTemperature:
1710 $ref: '#/components/messages/ChillerAirTemperatureMsg'
1711 airDifferentialPressure:
1712 $ref: '#/components/messages/ChillerAirDifferentialPressureMsg'
1713 airRelativeHumidity:
1714 $ref: '#/components/messages/ChillerAirRelativeHumidityMsg'
1715 airFlow:
1716 $ref: '#/components/messages/ChillerAirFlowMsg'
1717 airPressure:
1718 $ref: '#/components/messages/ChillerAirPressureMsg'
1719 leakDetect:
1720 $ref: '#/components/messages/ChillerLeakDetectMsg'
1721 genericPoint:
1722 $ref: '#/components/messages/GenericEquipmentPointMsg'
1723
1724 chillerIntegrationValue:
1725 address: 'BMS/v1/{integration}/Value/Chiller/{pointType}/{tagPath}'
1726 description: |
1727 Values published by integrations for Chiller control points.
1728 Subscribe to `BMS/v1/PUB/Metadata/Chiller/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1729 That matching metadata payload indicates the integration can publish values to this topic.
1730
1731 **MQTT wildcard examples**
1732
1733 - All integration Chiller values: `BMS/v1/+/Value/Chiller/#`
1734 parameters:
1735 integration:
1736 description: Integration identifier.
1737 pointType:
1738 enum:
1739 - GenericPoint
1740 description: Integration-published Chiller point type.
1741 tagPath:
1742 description: Must match the tagPath from the corresponding BMS metadata exactly.
1743 messages:
1744 valueMessage:
1745 $ref: '#/components/messages/ValueMessage'
1746
1747 # ---------------------------------------------------------------------------
1748 # Valve
1749 # ---------------------------------------------------------------------------
1750
1751 valveValue:
1752 address: 'BMS/v1/PUB/Value/Valve/{pointType}/{tagPath}'
1753 description: |
1754 Real-time values published by the BMS for Valve points.
1755
1756 **MQTT wildcard examples**
1757
1758 - All Valve values: `BMS/v1/PUB/Value/Valve/#`
1759 parameters:
1760 pointType:
1761 enum:
1762 - ValvePosition
1763 - Available
1764 - GenericPoint
1765 description: BMS-published Valve point type.
1766 tagPath:
1767 description: Vendor-defined hierarchical tag path.
1768 messages:
1769 valueMessage:
1770 $ref: '#/components/messages/ValueMessage'
1771
1772 valveMetadata:
1773 address: 'BMS/v1/PUB/Metadata/Valve/{pointType}/{tagPath}'
1774 description: |
1775 BMS-published metadata for Valve points.
1776
1777 **MQTT wildcard examples**
1778
1779 - All Valve metadata: `BMS/v1/PUB/Metadata/Valve/#`
1780 parameters:
1781 pointType:
1782 enum:
1783 - ValvePosition
1784 - Available
1785 - GenericPoint
1786 description: Valve point type.
1787 tagPath:
1788 description: Vendor-defined hierarchical tag path.
1789 messages:
1790 valvePosition:
1791 $ref: '#/components/messages/ValveValvePositionMsg'
1792 available:
1793 $ref: '#/components/messages/ValveAvailableMsg'
1794 genericPoint:
1795 $ref: '#/components/messages/GenericEquipmentPointMsg'
1796
1797 valveIntegrationValue:
1798 address: 'BMS/v1/{integration}/Value/Valve/{pointType}/{tagPath}'
1799 description: |
1800 Values published by integrations for Valve control points.
1801 Subscribe to `BMS/v1/PUB/Metadata/Valve/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1802 That matching metadata payload indicates the integration can publish values to this topic.
1803
1804 **MQTT wildcard examples**
1805
1806 - All integration Valve values: `BMS/v1/+/Value/Valve/#`
1807 parameters:
1808 integration:
1809 description: Integration identifier.
1810 pointType:
1811 enum:
1812 - GenericPoint
1813 description: Integration-published Valve point type.
1814 tagPath:
1815 description: Must match the tagPath from the corresponding BMS metadata exactly.
1816 messages:
1817 valueMessage:
1818 $ref: '#/components/messages/ValueMessage'
1819
1820 # ---------------------------------------------------------------------------
1821 # Pump
1822 # ---------------------------------------------------------------------------
1823
1824 pumpValue:
1825 address: 'BMS/v1/PUB/Value/Pump/{pointType}/{tagPath}'
1826 description: |
1827 Real-time values published by the BMS for Pump points.
1828
1829 **MQTT wildcard examples**
1830
1831 - All Pump values: `BMS/v1/PUB/Value/Pump/#`
1832 parameters:
1833 pointType:
1834 enum:
1835 - PumpSpeed
1836 - Available
1837 - GenericPoint
1838 description: BMS-published Pump point type.
1839 tagPath:
1840 description: Vendor-defined hierarchical tag path.
1841 messages:
1842 valueMessage:
1843 $ref: '#/components/messages/ValueMessage'
1844
1845 pumpMetadata:
1846 address: 'BMS/v1/PUB/Metadata/Pump/{pointType}/{tagPath}'
1847 description: |
1848 BMS-published metadata for Pump points.
1849
1850 **MQTT wildcard examples**
1851
1852 - All Pump metadata: `BMS/v1/PUB/Metadata/Pump/#`
1853 parameters:
1854 pointType:
1855 enum:
1856 - PumpSpeed
1857 - Available
1858 - GenericPoint
1859 description: Pump point type.
1860 tagPath:
1861 description: Vendor-defined hierarchical tag path.
1862 messages:
1863 pumpSpeed:
1864 $ref: '#/components/messages/PumpPumpSpeedMsg'
1865 available:
1866 $ref: '#/components/messages/PumpAvailableMsg'
1867 genericPoint:
1868 $ref: '#/components/messages/GenericEquipmentPointMsg'
1869
1870 pumpIntegrationValue:
1871 address: 'BMS/v1/{integration}/Value/Pump/{pointType}/{tagPath}'
1872 description: |
1873 Values published by integrations for Pump control points.
1874 Subscribe to `BMS/v1/PUB/Metadata/Pump/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1875 That matching metadata payload indicates the integration can publish values to this topic.
1876
1877 **MQTT wildcard examples**
1878
1879 - All integration Pump values: `BMS/v1/+/Value/Pump/#`
1880 parameters:
1881 integration:
1882 description: Integration identifier.
1883 pointType:
1884 enum:
1885 - GenericPoint
1886 description: Integration-published Pump point type.
1887 tagPath:
1888 description: Must match the tagPath from the corresponding BMS metadata exactly.
1889 messages:
1890 valueMessage:
1891 $ref: '#/components/messages/ValueMessage'
1892
1893 # ---------------------------------------------------------------------------
1894 # Fan
1895 # ---------------------------------------------------------------------------
1896
1897 fanValue:
1898 address: 'BMS/v1/PUB/Value/Fan/{pointType}/{tagPath}'
1899 description: |
1900 Real-time values published by the BMS for Fan points.
1901
1902 **MQTT wildcard examples**
1903
1904 - All Fan values: `BMS/v1/PUB/Value/Fan/#`
1905 parameters:
1906 pointType:
1907 enum:
1908 - FanSpeed
1909 - Available
1910 - GenericPoint
1911 description: BMS-published Fan point type.
1912 tagPath:
1913 description: Vendor-defined hierarchical tag path.
1914 messages:
1915 valueMessage:
1916 $ref: '#/components/messages/ValueMessage'
1917
1918 fanMetadata:
1919 address: 'BMS/v1/PUB/Metadata/Fan/{pointType}/{tagPath}'
1920 description: |
1921 BMS-published metadata for Fan points.
1922
1923 **MQTT wildcard examples**
1924
1925 - All Fan metadata: `BMS/v1/PUB/Metadata/Fan/#`
1926 parameters:
1927 pointType:
1928 enum:
1929 - FanSpeed
1930 - Available
1931 - GenericPoint
1932 description: Fan point type.
1933 tagPath:
1934 description: Vendor-defined hierarchical tag path.
1935 messages:
1936 fanSpeed:
1937 $ref: '#/components/messages/FanFanSpeedMsg'
1938 available:
1939 $ref: '#/components/messages/FanAvailableMsg'
1940 genericPoint:
1941 $ref: '#/components/messages/GenericEquipmentPointMsg'
1942
1943 fanIntegrationValue:
1944 address: 'BMS/v1/{integration}/Value/Fan/{pointType}/{tagPath}'
1945 description: |
1946 Values published by integrations for Fan control points.
1947 Subscribe to `BMS/v1/PUB/Metadata/Fan/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
1948 That matching metadata payload indicates the integration can publish values to this topic.
1949
1950 **MQTT wildcard examples**
1951
1952 - All integration Fan values: `BMS/v1/+/Value/Fan/#`
1953 parameters:
1954 integration:
1955 description: Integration identifier.
1956 pointType:
1957 enum:
1958 - GenericPoint
1959 description: Integration-published Fan point type.
1960 tagPath:
1961 description: Must match the tagPath from the corresponding BMS metadata exactly.
1962 messages:
1963 valueMessage:
1964 $ref: '#/components/messages/ValueMessage'
1965
1966 # ---------------------------------------------------------------------------
1967 # Damper
1968 # ---------------------------------------------------------------------------
1969
1970 damperValue:
1971 address: 'BMS/v1/PUB/Value/Damper/{pointType}/{tagPath}'
1972 description: |
1973 Real-time values published by the BMS for Damper points.
1974
1975 **MQTT wildcard examples**
1976
1977 - All Damper values: `BMS/v1/PUB/Value/Damper/#`
1978 parameters:
1979 pointType:
1980 enum:
1981 - DamperPosition
1982 - Available
1983 - GenericPoint
1984 description: BMS-published Damper point type.
1985 tagPath:
1986 description: Vendor-defined hierarchical tag path.
1987 messages:
1988 valueMessage:
1989 $ref: '#/components/messages/ValueMessage'
1990
1991 damperMetadata:
1992 address: 'BMS/v1/PUB/Metadata/Damper/{pointType}/{tagPath}'
1993 description: |
1994 BMS-published metadata for Damper points.
1995
1996 **MQTT wildcard examples**
1997
1998 - All Damper metadata: `BMS/v1/PUB/Metadata/Damper/#`
1999 parameters:
2000 pointType:
2001 enum:
2002 - DamperPosition
2003 - Available
2004 - GenericPoint
2005 description: Damper point type.
2006 tagPath:
2007 description: Vendor-defined hierarchical tag path.
2008 messages:
2009 damperPosition:
2010 $ref: '#/components/messages/DamperDamperPositionMsg'
2011 available:
2012 $ref: '#/components/messages/DamperAvailableMsg'
2013 genericPoint:
2014 $ref: '#/components/messages/GenericEquipmentPointMsg'
2015
2016 damperIntegrationValue:
2017 address: 'BMS/v1/{integration}/Value/Damper/{pointType}/{tagPath}'
2018 description: |
2019 Values published by integrations for Damper control points.
2020 Subscribe to `BMS/v1/PUB/Metadata/Damper/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
2021 That matching metadata payload indicates the integration can publish values to this topic.
2022
2023 **MQTT wildcard examples**
2024
2025 - All integration Damper values: `BMS/v1/+/Value/Damper/#`
2026 parameters:
2027 integration:
2028 description: Integration identifier.
2029 pointType:
2030 enum:
2031 - GenericPoint
2032 description: Integration-published Damper point type.
2033 tagPath:
2034 description: Must match the tagPath from the corresponding BMS metadata exactly.
2035 messages:
2036 valueMessage:
2037 $ref: '#/components/messages/ValueMessage'
2038
2039 # ---------------------------------------------------------------------------
2040 # Sensor
2041 # ---------------------------------------------------------------------------
2042
2043 sensorValue:
2044 address: 'BMS/v1/PUB/Value/Sensor/{pointType}/{tagPath}'
2045 description: |
2046 Real-time values published by the BMS for Sensor points.
2047
2048 **MQTT wildcard examples**
2049
2050 - All Sensor values: `BMS/v1/PUB/Value/Sensor/#`
2051 parameters:
2052 pointType:
2053 enum:
2054 - LiquidTemperature
2055 - LiquidDifferentialPressure
2056 - LiquidFlow
2057 - LiquidPressure
2058 - AirTemperature
2059 - AirDifferentialPressure
2060 - AirRelativeHumidity
2061 - AirFlow
2062 - AirPressure
2063 - LeakDetect
2064 - Sound
2065 - Available
2066 - GenericPoint
2067 description: BMS-published Sensor point type.
2068 tagPath:
2069 description: Vendor-defined hierarchical tag path.
2070 messages:
2071 valueMessage:
2072 $ref: '#/components/messages/ValueMessage'
2073
2074 sensorMetadata:
2075 address: 'BMS/v1/PUB/Metadata/Sensor/{pointType}/{tagPath}'
2076 description: |
2077 BMS-published metadata for Sensor points.
2078
2079 **MQTT wildcard examples**
2080
2081 - All Sensor metadata: `BMS/v1/PUB/Metadata/Sensor/#`
2082 parameters:
2083 pointType:
2084 enum:
2085 - LiquidTemperature
2086 - LiquidDifferentialPressure
2087 - LiquidFlow
2088 - LiquidPressure
2089 - AirTemperature
2090 - AirDifferentialPressure
2091 - AirRelativeHumidity
2092 - AirFlow
2093 - AirPressure
2094 - LeakDetect
2095 - Sound
2096 - Available
2097 - GenericPoint
2098 description: Sensor point type.
2099 tagPath:
2100 description: Vendor-defined hierarchical tag path.
2101 messages:
2102 liquidTemperature:
2103 $ref: '#/components/messages/SensorLiquidTemperatureMsg'
2104 liquidDifferentialPressure:
2105 $ref: '#/components/messages/SensorLiquidDifferentialPressureMsg'
2106 liquidFlow:
2107 $ref: '#/components/messages/SensorLiquidFlowMsg'
2108 liquidPressure:
2109 $ref: '#/components/messages/SensorLiquidPressureMsg'
2110 airTemperature:
2111 $ref: '#/components/messages/SensorAirTemperatureMsg'
2112 airDifferentialPressure:
2113 $ref: '#/components/messages/SensorAirDifferentialPressureMsg'
2114 airRelativeHumidity:
2115 $ref: '#/components/messages/SensorAirRelativeHumidityMsg'
2116 airFlow:
2117 $ref: '#/components/messages/SensorAirFlowMsg'
2118 airPressure:
2119 $ref: '#/components/messages/SensorAirPressureMsg'
2120 leakDetect:
2121 $ref: '#/components/messages/SensorLeakDetectMsg'
2122 available:
2123 $ref: '#/components/messages/SensorAvailableMsg'
2124 genericPoint:
2125 $ref: '#/components/messages/GenericEquipmentPointMsg'
2126 sound:
2127 $ref: '#/components/messages/SensorSoundMsg'
2128
2129 sensorIntegrationValue:
2130 address: 'BMS/v1/{integration}/Value/Sensor/{pointType}/{tagPath}'
2131 description: |
2132 Values published by integrations for Sensor control points.
2133 Subscribe to `BMS/v1/PUB/Metadata/Sensor/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
2134 That matching metadata payload indicates the integration can publish values to this topic.
2135
2136 **MQTT wildcard examples**
2137
2138 - All integration Sensor values: `BMS/v1/+/Value/Sensor/#`
2139 parameters:
2140 integration:
2141 description: Integration identifier.
2142 pointType:
2143 enum:
2144 - GenericPoint
2145 description: Integration-published Sensor point type.
2146 tagPath:
2147 description: Must match the tagPath from the corresponding BMS metadata exactly.
2148 messages:
2149 valueMessage:
2150 $ref: '#/components/messages/ValueMessage'
2151
2152 # ---------------------------------------------------------------------------
2153 # Tank
2154 # ---------------------------------------------------------------------------
2155
2156 tankValue:
2157 address: 'BMS/v1/PUB/Value/Tank/{pointType}/{tagPath}'
2158 description: |
2159 Real-time values published by the BMS for Tank points.
2160 Supports both liquid and air tanks.
2161
2162 **MQTT wildcard examples**
2163
2164 - All Tank values: `BMS/v1/PUB/Value/Tank/#`
2165 parameters:
2166 pointType:
2167 enum:
2168 - LiquidTemperature
2169 - LiquidDifferentialPressure
2170 - LiquidFlow
2171 - LiquidPressure
2172 - Status
2173 - Available
2174 - ValvePosition
2175 - PumpSpeed
2176 - FanSpeed
2177 - DamperPosition
2178 - AirTemperature
2179 - AirDifferentialPressure
2180 - AirRelativeHumidity
2181 - AirFlow
2182 - AirPressure
2183 - LeakDetect
2184 - GenericPoint
2185 description: BMS-published Tank point type.
2186 tagPath:
2187 description: Vendor-defined hierarchical tag path.
2188 messages:
2189 valueMessage:
2190 $ref: '#/components/messages/ValueMessage'
2191
2192 tankMetadata:
2193 address: 'BMS/v1/PUB/Metadata/Tank/{pointType}/{tagPath}'
2194 description: |
2195 BMS-published metadata for Tank points.
2196 Includes integration-owned points which carries the `integration` field.
2197
2198 **MQTT wildcard examples**
2199
2200 - All Tank metadata: `BMS/v1/PUB/Metadata/Tank/#`
2201 parameters:
2202 pointType:
2203 enum:
2204 - LiquidTemperature
2205 - LiquidDifferentialPressure
2206 - LiquidFlow
2207 - LiquidPressure
2208 - Status
2209 - Available
2210 - ValvePosition
2211 - PumpSpeed
2212 - FanSpeed
2213 - DamperPosition
2214 - AirTemperature
2215 - AirDifferentialPressure
2216 - AirRelativeHumidity
2217 - AirFlow
2218 - AirPressure
2219 - LeakDetect
2220 - GenericPoint
2221 description: Tank point type.
2222 tagPath:
2223 description: Vendor-defined hierarchical tag path.
2224 messages:
2225 liquidTemperature:
2226 $ref: '#/components/messages/TankLiquidTemperatureMsg'
2227 liquidDifferentialPressure:
2228 $ref: '#/components/messages/TankLiquidDifferentialPressureMsg'
2229 liquidFlow:
2230 $ref: '#/components/messages/TankLiquidFlowMsg'
2231 liquidPressure:
2232 $ref: '#/components/messages/TankLiquidPressureMsg'
2233 status:
2234 $ref: '#/components/messages/TankStatusMsg'
2235 available:
2236 $ref: '#/components/messages/TankAvailableMsg'
2237 valvePosition:
2238 $ref: '#/components/messages/TankValvePositionMsg'
2239 pumpSpeed:
2240 $ref: '#/components/messages/TankPumpSpeedMsg'
2241 fanSpeed:
2242 $ref: '#/components/messages/TankFanSpeedMsg'
2243 damperPosition:
2244 $ref: '#/components/messages/TankDamperPositionMsg'
2245 airTemperature:
2246 $ref: '#/components/messages/TankAirTemperatureMsg'
2247 airDifferentialPressure:
2248 $ref: '#/components/messages/TankAirDifferentialPressureMsg'
2249 airRelativeHumidity:
2250 $ref: '#/components/messages/TankAirRelativeHumidityMsg'
2251 airFlow:
2252 $ref: '#/components/messages/TankAirFlowMsg'
2253 airPressure:
2254 $ref: '#/components/messages/TankAirPressureMsg'
2255 leakDetect:
2256 $ref: '#/components/messages/TankLeakDetectMsg'
2257 genericPoint:
2258 $ref: '#/components/messages/GenericEquipmentPointMsg'
2259
2260 tankIntegrationValue:
2261 address: 'BMS/v1/{integration}/Value/Tank/{pointType}/{tagPath}'
2262 description: |
2263 Values published by integrations for Tank control points.
2264 Subscribe to `BMS/v1/PUB/Metadata/Tank/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
2265 That matching metadata payload indicates the integration can publish values to this topic.
2266
2267 **MQTT wildcard examples**
2268
2269 - All integration Tank values: `BMS/v1/+/Value/Tank/#`
2270 parameters:
2271 integration:
2272 description: Integration identifier.
2273 pointType:
2274 enum:
2275 - GenericPoint
2276 description: Integration-published Tank point type.
2277 tagPath:
2278 description: Must match the tagPath from the corresponding BMS metadata exactly.
2279 messages:
2280 valueMessage:
2281 $ref: '#/components/messages/ValueMessage'
2282
2283 # ---------------------------------------------------------------------------
2284 # GenericObject
2285 # ---------------------------------------------------------------------------
2286
2287 genericObjectValue:
2288 address: 'BMS/v1/PUB/Value/GenericObject/{pointType}/{tagPath}'
2289 description: |
2290 Real-time values published by the BMS for GenericObject points.
2291 Use for any equipment type not covered by a named objectType.
2292
2293 **MQTT wildcard examples**
2294
2295 - All GenericObject values: `BMS/v1/PUB/Value/GenericObject/#`
2296 parameters:
2297 pointType:
2298 enum:
2299 - LiquidTemperature
2300 - LiquidDifferentialPressure
2301 - LiquidFlow
2302 - LiquidPressure
2303 - Status
2304 - Available
2305 - ValvePosition
2306 - PumpSpeed
2307 - FanSpeed
2308 - DamperPosition
2309 - AirTemperature
2310 - AirDifferentialPressure
2311 - AirRelativeHumidity
2312 - AirFlow
2313 - AirPressure
2314 - LeakDetect
2315 - Sound
2316 - GenericPoint
2317 description: BMS-published GenericObject point type.
2318 tagPath:
2319 description: Vendor-defined hierarchical tag path.
2320 messages:
2321 valueMessage:
2322 $ref: '#/components/messages/ValueMessage'
2323
2324 genericObjectMetadata:
2325 address: 'BMS/v1/PUB/Metadata/GenericObject/{pointType}/{tagPath}'
2326 description: |
2327 BMS-published metadata for GenericObject points.
2328 Includes integration-owned points which carries the `integration` field.
2329
2330 **MQTT wildcard examples**
2331
2332 - All GenericObject metadata: `BMS/v1/PUB/Metadata/GenericObject/#`
2333 parameters:
2334 pointType:
2335 enum:
2336 - LiquidTemperature
2337 - LiquidDifferentialPressure
2338 - LiquidFlow
2339 - LiquidPressure
2340 - Status
2341 - Available
2342 - ValvePosition
2343 - PumpSpeed
2344 - FanSpeed
2345 - DamperPosition
2346 - AirTemperature
2347 - AirDifferentialPressure
2348 - AirRelativeHumidity
2349 - AirFlow
2350 - AirPressure
2351 - LeakDetect
2352 - LiquidTemperatureSpRequest
2353 - Sound
2354 - GenericPoint
2355 description: GenericObject point type.
2356 tagPath:
2357 description: Vendor-defined hierarchical tag path.
2358 messages:
2359 liquidTemperature:
2360 $ref: '#/components/messages/GenericObjectLiquidTemperatureMsg'
2361 liquidDifferentialPressure:
2362 $ref: '#/components/messages/GenericObjectLiquidDifferentialPressureMsg'
2363 liquidFlow:
2364 $ref: '#/components/messages/GenericObjectLiquidFlowMsg'
2365 liquidPressure:
2366 $ref: '#/components/messages/GenericObjectLiquidPressureMsg'
2367 status:
2368 $ref: '#/components/messages/GenericObjectStatusMsg'
2369 available:
2370 $ref: '#/components/messages/GenericObjectAvailableMsg'
2371 valvePosition:
2372 $ref: '#/components/messages/GenericObjectValvePositionMsg'
2373 pumpSpeed:
2374 $ref: '#/components/messages/GenericObjectPumpSpeedMsg'
2375 fanSpeed:
2376 $ref: '#/components/messages/GenericObjectFanSpeedMsg'
2377 damperPosition:
2378 $ref: '#/components/messages/GenericObjectDamperPositionMsg'
2379 airTemperature:
2380 $ref: '#/components/messages/GenericObjectAirTemperatureMsg'
2381 airDifferentialPressure:
2382 $ref: '#/components/messages/GenericObjectAirDifferentialPressureMsg'
2383 airRelativeHumidity:
2384 $ref: '#/components/messages/GenericObjectAirRelativeHumidityMsg'
2385 airFlow:
2386 $ref: '#/components/messages/GenericObjectAirFlowMsg'
2387 airPressure:
2388 $ref: '#/components/messages/GenericObjectAirPressureMsg'
2389 leakDetect:
2390 $ref: '#/components/messages/GenericObjectLeakDetectMsg'
2391 liquidTemperatureSpRequest:
2392 $ref: '#/components/messages/GenericObjectLiquidTemperatureSpRequestMsg'
2393 sound:
2394 $ref: '#/components/messages/GenericObjectSoundMsg'
2395 genericPoint:
2396 $ref: '#/components/messages/GenericEquipmentPointMsg'
2397
2398 genericObjectIntegrationValue:
2399 address: 'BMS/v1/{integration}/Value/GenericObject/{pointType}/{tagPath}'
2400 description: |
2401 Values published by integrations for GenericObject control points.
2402 Subscribe to `BMS/v1/PUB/Metadata/GenericObject/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
2403 That matching metadata payload indicates the integration can publish values to this topic.
2404
2405 **MQTT wildcard examples**
2406
2407 - All integration GenericObject values: `BMS/v1/+/Value/GenericObject/#`
2408 parameters:
2409 integration:
2410 description: Integration identifier.
2411 pointType:
2412 enum:
2413 - LiquidTemperatureSpRequest
2414 - GenericPoint
2415 description: Integration-published GenericObject point type.
2416 tagPath:
2417 description: Must match the tagPath from the corresponding BMS metadata exactly.
2418 messages:
2419 valueMessage:
2420 $ref: '#/components/messages/ValueMessage'
2421
2422 # ---------------------------------------------------------------------------
2423 # System
2424 # ---------------------------------------------------------------------------
2425
2426 systemBmsValue:
2427 address: 'BMS/v1/PUB/Value/System/{pointType}/{tagPath}'
2428 description: |
2429 BMS-published System values.
2430
2431 **MQTT wildcard examples**
2432
2433 - All System values: `BMS/v1/PUB/Value/System/#`
2434 parameters:
2435 pointType:
2436 enum:
2437 - HeartbeatTimestampBms
2438 - HeartbeatEchoBms
2439 - Status
2440 - Available
2441 - GenericPoint
2442 description: BMS-published System point type.
2443 tagPath:
2444 description: Vendor-defined hierarchical tag path.
2445 messages:
2446 valueMessage:
2447 $ref: '#/components/messages/ValueMessage'
2448
2449 systemMetadata:
2450 address: 'BMS/v1/PUB/Metadata/System/{pointType}/{tagPath}'
2451 description: |
2452 BMS-published metadata for all System point types.
2453
2454 **MQTT wildcard examples**
2455
2456 - All System metadata: `BMS/v1/PUB/Metadata/System/#`
2457 parameters:
2458 pointType:
2459 enum:
2460 - HeartbeatTimestampBms
2461 - HeartbeatEchoBms
2462 - HeartbeatTimestampIntegration
2463 - HeartbeatEchoIntegration
2464 - Status
2465 - Available
2466 - GenericPoint
2467 description: System point type.
2468 tagPath:
2469 description: Vendor-defined hierarchical tag path.
2470 messages:
2471 heartbeatTimestampBms:
2472 $ref: '#/components/messages/SystemHeartbeatTimestampBmsMsg'
2473 heartbeatEchoBms:
2474 $ref: '#/components/messages/SystemHeartbeatEchoBmsMsg'
2475 heartbeatTimestampIntegration:
2476 $ref: '#/components/messages/SystemHeartbeatTimestampIntegrationMsg'
2477 heartbeatEchoIntegration:
2478 $ref: '#/components/messages/SystemHeartbeatEchoIntegrationMsg'
2479 status:
2480 $ref: '#/components/messages/SystemStatusMsg'
2481 available:
2482 $ref: '#/components/messages/SystemAvailableMsg'
2483 genericPoint:
2484 $ref: '#/components/messages/GenericEquipmentPointMsg'
2485
2486 systemIntegrationValue:
2487 address: 'BMS/v1/{integration}/Value/System/{pointType}/{tagPath}'
2488 description: |
2489 Values published by integrations for System points (Integration heartbeats, Status, Available, and GenericPoint).
2490 Subscribe to `BMS/v1/PUB/Metadata/System/#` and publish only when that metadata payload includes an `integration` field whose value matches the publishing integration identifier.
2491 That matching metadata payload indicates the integration can publish values to this topic.
2492
2493 **MQTT wildcard examples**
2494
2495 - All integration System values: `BMS/v1/+/Value/System/#`
2496 parameters:
2497 integration:
2498 description: Integration identifier.
2499 pointType:
2500 enum:
2501 - HeartbeatTimestampIntegration
2502 - HeartbeatEchoIntegration
2503 - Status
2504 - Available
2505 - GenericPoint
2506 description: Integration-published System point type.
2507 tagPath:
2508 description: Vendor-defined hierarchical tag path.
2509 messages:
2510 valueMessage:
2511 $ref: '#/components/messages/ValueMessage'
2512
2513# =============================================================================
2514# Operations
2515# =============================================================================
2516
2517operations:
2518
2519 receiveRackValue:
2520 action: receive
2521 channel:
2522 $ref: '#/channels/rackBmsValue'
2523 messages:
2524 - $ref: '#/channels/rackBmsValue/messages/valueMessage'
2525 description: Subscribe to real-time BMS-published values for all Rack points.
2526
2527 receiveRackMetadata:
2528 action: receive
2529 channel:
2530 $ref: '#/channels/rackMetadata'
2531 messages:
2532 - $ref: '#/channels/rackMetadata/messages/rackLiquidSupplyTemperature'
2533 - $ref: '#/channels/rackMetadata/messages/rackLiquidReturnTemperature'
2534 - $ref: '#/channels/rackMetadata/messages/rackLiquidFlow'
2535 - $ref: '#/channels/rackMetadata/messages/rackLiquidDifferentialPressure'
2536 - $ref: '#/channels/rackMetadata/messages/rackLiquidDifferentialPressureSp'
2537 - $ref: '#/channels/rackMetadata/messages/rackControlValvePosition'
2538 - $ref: '#/channels/rackMetadata/messages/rackPower'
2539 - $ref: '#/channels/rackMetadata/messages/rackLeakDetect'
2540 - $ref: '#/channels/rackMetadata/messages/rackLeakSensorFault'
2541 - $ref: '#/channels/rackMetadata/messages/rackLeakDetectTray'
2542 - $ref: '#/channels/rackMetadata/messages/rackLiquidIsolationStatus'
2543 - $ref: '#/channels/rackMetadata/messages/rackElectricalIsolationStatus'
2544 - $ref: '#/channels/rackMetadata/messages/rackLiquidIsolationRequest'
2545 - $ref: '#/channels/rackMetadata/messages/rackElectricalIsolationRequest'
2546 description: Subscribe to BMS-published metadata for all Rack point types.
2547
2548 publishRackIntegrationValue:
2549 action: send
2550 channel:
2551 $ref: '#/channels/rackIntegrationValue'
2552 messages:
2553 - $ref: '#/channels/rackIntegrationValue/messages/valueMessage'
2554 description: Publish integration values for Rack control points.
2555
2556 receivePowerMeterValue:
2557 action: receive
2558 channel:
2559 $ref: '#/channels/powerMeterValue'
2560 messages:
2561 - $ref: '#/channels/powerMeterValue/messages/valueMessage'
2562 description: Subscribe to real-time BMS-published values for all PowerMeter points.
2563
2564 receivePowerMeterMetadata:
2565 action: receive
2566 channel:
2567 $ref: '#/channels/powerMeterMetadata'
2568 messages:
2569 - $ref: '#/channels/powerMeterMetadata/messages/voltage'
2570 - $ref: '#/channels/powerMeterMetadata/messages/powerFactor'
2571 - $ref: '#/channels/powerMeterMetadata/messages/frequency'
2572 - $ref: '#/channels/powerMeterMetadata/messages/apparentPower'
2573 - $ref: '#/channels/powerMeterMetadata/messages/activePower'
2574 - $ref: '#/channels/powerMeterMetadata/messages/current'
2575 - $ref: '#/channels/powerMeterMetadata/messages/currentLimit'
2576 - $ref: '#/channels/powerMeterMetadata/messages/phaseCurrent'
2577 - $ref: '#/channels/powerMeterMetadata/messages/genericPoint'
2578 description: Subscribe to BMS-published metadata for all PowerMeter points.
2579
2580 publishPowerMeterIntegrationValue:
2581 action: send
2582 channel:
2583 $ref: '#/channels/powerMeterIntegrationValue'
2584 messages:
2585 - $ref: '#/channels/powerMeterIntegrationValue/messages/valueMessage'
2586 description: Publish integration values for PowerMeter control points.
2587
2588 receiveBESSValue:
2589 action: receive
2590 channel:
2591 $ref: '#/channels/bessValue'
2592 messages:
2593 - $ref: '#/channels/bessValue/messages/valueMessage'
2594 description: Subscribe to real-time BMS-published values for BESS points.
2595
2596 receiveBESSMetadata:
2597 action: receive
2598 channel:
2599 $ref: '#/channels/bessMetadata'
2600 messages:
2601 - $ref: '#/channels/bessMetadata/messages/status'
2602 - $ref: '#/channels/bessMetadata/messages/available'
2603 - $ref: '#/channels/bessMetadata/messages/genericPoint'
2604 description: Subscribe to BMS-published metadata for BESS points.
2605
2606 publishBESSIntegrationValue:
2607 action: send
2608 channel:
2609 $ref: '#/channels/bessIntegrationValue'
2610 messages:
2611 - $ref: '#/channels/bessIntegrationValue/messages/valueMessage'
2612 description: Publish integration values for BESS control points.
2613
2614 receiveUPSValue:
2615 action: receive
2616 channel:
2617 $ref: '#/channels/upsValue'
2618 messages:
2619 - $ref: '#/channels/upsValue/messages/valueMessage'
2620 description: Subscribe to real-time BMS-published values for UPS points.
2621
2622 receiveUPSMetadata:
2623 action: receive
2624 channel:
2625 $ref: '#/channels/upsMetadata'
2626 messages:
2627 - $ref: '#/channels/upsMetadata/messages/status'
2628 - $ref: '#/channels/upsMetadata/messages/available'
2629 - $ref: '#/channels/upsMetadata/messages/genericPoint'
2630 description: Subscribe to BMS-published metadata for UPS points.
2631
2632 publishUPSIntegrationValue:
2633 action: send
2634 channel:
2635 $ref: '#/channels/upsIntegrationValue'
2636 messages:
2637 - $ref: '#/channels/upsIntegrationValue/messages/valueMessage'
2638 description: Publish integration values for UPS control points.
2639
2640 receiveATSValue:
2641 action: receive
2642 channel:
2643 $ref: '#/channels/atsValue'
2644 messages:
2645 - $ref: '#/channels/atsValue/messages/valueMessage'
2646 description: Subscribe to real-time BMS-published values for ATS points.
2647
2648 receiveATSMetadata:
2649 action: receive
2650 channel:
2651 $ref: '#/channels/atsMetadata'
2652 messages:
2653 - $ref: '#/channels/atsMetadata/messages/status'
2654 - $ref: '#/channels/atsMetadata/messages/available'
2655 - $ref: '#/channels/atsMetadata/messages/genericPoint'
2656 description: Subscribe to BMS-published metadata for ATS points.
2657
2658 publishATSIntegrationValue:
2659 action: send
2660 channel:
2661 $ref: '#/channels/atsIntegrationValue'
2662 messages:
2663 - $ref: '#/channels/atsIntegrationValue/messages/valueMessage'
2664 description: Publish integration values for ATS control points.
2665
2666 receiveGeneratorValue:
2667 action: receive
2668 channel:
2669 $ref: '#/channels/generatorValue'
2670 messages:
2671 - $ref: '#/channels/generatorValue/messages/valueMessage'
2672 description: Subscribe to real-time BMS-published values for Generator points.
2673
2674 receiveGeneratorMetadata:
2675 action: receive
2676 channel:
2677 $ref: '#/channels/generatorMetadata'
2678 messages:
2679 - $ref: '#/channels/generatorMetadata/messages/status'
2680 - $ref: '#/channels/generatorMetadata/messages/available'
2681 - $ref: '#/channels/generatorMetadata/messages/genericPoint'
2682 description: Subscribe to BMS-published metadata for Generator points.
2683
2684 publishGeneratorIntegrationValue:
2685 action: send
2686 channel:
2687 $ref: '#/channels/generatorIntegrationValue'
2688 messages:
2689 - $ref: '#/channels/generatorIntegrationValue/messages/valueMessage'
2690 description: Publish integration values for Generator control points.
2691
2692 receiveShuntValue:
2693 action: receive
2694 channel:
2695 $ref: '#/channels/shuntValue'
2696 messages:
2697 - $ref: '#/channels/shuntValue/messages/valueMessage'
2698 description: Subscribe to real-time BMS-published values for Shunt points.
2699
2700 receiveShuntMetadata:
2701 action: receive
2702 channel:
2703 $ref: '#/channels/shuntMetadata'
2704 messages:
2705 - $ref: '#/channels/shuntMetadata/messages/status'
2706 - $ref: '#/channels/shuntMetadata/messages/available'
2707 - $ref: '#/channels/shuntMetadata/messages/genericPoint'
2708 description: Subscribe to BMS-published metadata for Shunt points.
2709
2710 publishShuntIntegrationValue:
2711 action: send
2712 channel:
2713 $ref: '#/channels/shuntIntegrationValue'
2714 messages:
2715 - $ref: '#/channels/shuntIntegrationValue/messages/valueMessage'
2716 description: Publish integration values for Shunt control points.
2717
2718 receiveBreakerValue:
2719 action: receive
2720 channel:
2721 $ref: '#/channels/breakerValue'
2722 messages:
2723 - $ref: '#/channels/breakerValue/messages/valueMessage'
2724 description: Subscribe to real-time BMS-published values for Breaker points.
2725
2726 receiveBreakerMetadata:
2727 action: receive
2728 channel:
2729 $ref: '#/channels/breakerMetadata'
2730 messages:
2731 - $ref: '#/channels/breakerMetadata/messages/status'
2732 - $ref: '#/channels/breakerMetadata/messages/available'
2733 - $ref: '#/channels/breakerMetadata/messages/genericPoint'
2734 description: Subscribe to BMS-published metadata for Breaker points.
2735
2736 publishBreakerIntegrationValue:
2737 action: send
2738 channel:
2739 $ref: '#/channels/breakerIntegrationValue'
2740 messages:
2741 - $ref: '#/channels/breakerIntegrationValue/messages/valueMessage'
2742 description: Publish integration values for Breaker control points.
2743
2744 receiveCDUValue:
2745 action: receive
2746 channel:
2747 $ref: '#/channels/cduValue'
2748 messages:
2749 - $ref: '#/channels/cduValue/messages/valueMessage'
2750 description: Subscribe to real-time BMS-published values for CDU points.
2751
2752 receiveCDUMetadata:
2753 action: receive
2754 channel:
2755 $ref: '#/channels/cduMetadata'
2756 messages:
2757 - $ref: '#/channels/cduMetadata/messages/liquidTemperature'
2758 - $ref: '#/channels/cduMetadata/messages/liquidDifferentialPressure'
2759 - $ref: '#/channels/cduMetadata/messages/liquidFlow'
2760 - $ref: '#/channels/cduMetadata/messages/liquidPressure'
2761 - $ref: '#/channels/cduMetadata/messages/status'
2762 - $ref: '#/channels/cduMetadata/messages/available'
2763 - $ref: '#/channels/cduMetadata/messages/valvePosition'
2764 - $ref: '#/channels/cduMetadata/messages/pumpSpeed'
2765 - $ref: '#/channels/cduMetadata/messages/fanSpeed'
2766 - $ref: '#/channels/cduMetadata/messages/damperPosition'
2767 - $ref: '#/channels/cduMetadata/messages/airTemperature'
2768 - $ref: '#/channels/cduMetadata/messages/airDifferentialPressure'
2769 - $ref: '#/channels/cduMetadata/messages/airRelativeHumidity'
2770 - $ref: '#/channels/cduMetadata/messages/airFlow'
2771 - $ref: '#/channels/cduMetadata/messages/airPressure'
2772 - $ref: '#/channels/cduMetadata/messages/leakDetect'
2773 - $ref: '#/channels/cduMetadata/messages/liquidTemperatureSpRequest'
2774 - $ref: '#/channels/cduMetadata/messages/genericPoint'
2775 description: Subscribe to BMS-published metadata for CDU points.
2776
2777 publishCDUIntegrationValue:
2778 action: send
2779 channel:
2780 $ref: '#/channels/cduIntegrationValue'
2781 messages:
2782 - $ref: '#/channels/cduIntegrationValue/messages/valueMessage'
2783 description: Publish integration values for CDU control points.
2784
2785 receiveCoolingTowerValue:
2786 action: receive
2787 channel:
2788 $ref: '#/channels/coolingTowerValue'
2789 messages:
2790 - $ref: '#/channels/coolingTowerValue/messages/valueMessage'
2791 description: Subscribe to real-time BMS-published values for CoolingTower points.
2792
2793 receiveCoolingTowerMetadata:
2794 action: receive
2795 channel:
2796 $ref: '#/channels/coolingTowerMetadata'
2797 messages:
2798 - $ref: '#/channels/coolingTowerMetadata/messages/liquidTemperature'
2799 - $ref: '#/channels/coolingTowerMetadata/messages/liquidDifferentialPressure'
2800 - $ref: '#/channels/coolingTowerMetadata/messages/liquidFlow'
2801 - $ref: '#/channels/coolingTowerMetadata/messages/liquidPressure'
2802 - $ref: '#/channels/coolingTowerMetadata/messages/status'
2803 - $ref: '#/channels/coolingTowerMetadata/messages/available'
2804 - $ref: '#/channels/coolingTowerMetadata/messages/valvePosition'
2805 - $ref: '#/channels/coolingTowerMetadata/messages/pumpSpeed'
2806 - $ref: '#/channels/coolingTowerMetadata/messages/fanSpeed'
2807 - $ref: '#/channels/coolingTowerMetadata/messages/damperPosition'
2808 - $ref: '#/channels/coolingTowerMetadata/messages/airTemperature'
2809 - $ref: '#/channels/coolingTowerMetadata/messages/airDifferentialPressure'
2810 - $ref: '#/channels/coolingTowerMetadata/messages/airRelativeHumidity'
2811 - $ref: '#/channels/coolingTowerMetadata/messages/airFlow'
2812 - $ref: '#/channels/coolingTowerMetadata/messages/airPressure'
2813 - $ref: '#/channels/coolingTowerMetadata/messages/leakDetect'
2814 - $ref: '#/channels/coolingTowerMetadata/messages/genericPoint'
2815 description: Subscribe to BMS-published metadata for CoolingTower points.
2816
2817 publishCoolingTowerIntegrationValue:
2818 action: send
2819 channel:
2820 $ref: '#/channels/coolingTowerIntegrationValue'
2821 messages:
2822 - $ref: '#/channels/coolingTowerIntegrationValue/messages/valueMessage'
2823 description: Publish integration values for CoolingTower control points.
2824
2825 receiveHXValue:
2826 action: receive
2827 channel:
2828 $ref: '#/channels/hxValue'
2829 messages:
2830 - $ref: '#/channels/hxValue/messages/valueMessage'
2831 description: Subscribe to real-time BMS-published values for HX points.
2832
2833 receiveHXMetadata:
2834 action: receive
2835 channel:
2836 $ref: '#/channels/hxMetadata'
2837 messages:
2838 - $ref: '#/channels/hxMetadata/messages/liquidTemperature'
2839 - $ref: '#/channels/hxMetadata/messages/liquidDifferentialPressure'
2840 - $ref: '#/channels/hxMetadata/messages/liquidFlow'
2841 - $ref: '#/channels/hxMetadata/messages/liquidPressure'
2842 - $ref: '#/channels/hxMetadata/messages/status'
2843 - $ref: '#/channels/hxMetadata/messages/available'
2844 - $ref: '#/channels/hxMetadata/messages/valvePosition'
2845 - $ref: '#/channels/hxMetadata/messages/pumpSpeed'
2846 - $ref: '#/channels/hxMetadata/messages/fanSpeed'
2847 - $ref: '#/channels/hxMetadata/messages/damperPosition'
2848 - $ref: '#/channels/hxMetadata/messages/airTemperature'
2849 - $ref: '#/channels/hxMetadata/messages/airDifferentialPressure'
2850 - $ref: '#/channels/hxMetadata/messages/airRelativeHumidity'
2851 - $ref: '#/channels/hxMetadata/messages/airFlow'
2852 - $ref: '#/channels/hxMetadata/messages/airPressure'
2853 - $ref: '#/channels/hxMetadata/messages/leakDetect'
2854 - $ref: '#/channels/hxMetadata/messages/genericPoint'
2855 description: Subscribe to BMS-published metadata for HX points.
2856
2857 publishHXIntegrationValue:
2858 action: send
2859 channel:
2860 $ref: '#/channels/hxIntegrationValue'
2861 messages:
2862 - $ref: '#/channels/hxIntegrationValue/messages/valueMessage'
2863 description: Publish integration values for HX control points.
2864
2865 receiveCRAHValue:
2866 action: receive
2867 channel:
2868 $ref: '#/channels/crahValue'
2869 messages:
2870 - $ref: '#/channels/crahValue/messages/valueMessage'
2871 description: Subscribe to real-time BMS-published values for CRAH points.
2872
2873 receiveCRAHMetadata:
2874 action: receive
2875 channel:
2876 $ref: '#/channels/crahMetadata'
2877 messages:
2878 - $ref: '#/channels/crahMetadata/messages/liquidTemperature'
2879 - $ref: '#/channels/crahMetadata/messages/liquidDifferentialPressure'
2880 - $ref: '#/channels/crahMetadata/messages/liquidFlow'
2881 - $ref: '#/channels/crahMetadata/messages/liquidPressure'
2882 - $ref: '#/channels/crahMetadata/messages/status'
2883 - $ref: '#/channels/crahMetadata/messages/available'
2884 - $ref: '#/channels/crahMetadata/messages/valvePosition'
2885 - $ref: '#/channels/crahMetadata/messages/pumpSpeed'
2886 - $ref: '#/channels/crahMetadata/messages/fanSpeed'
2887 - $ref: '#/channels/crahMetadata/messages/damperPosition'
2888 - $ref: '#/channels/crahMetadata/messages/airTemperature'
2889 - $ref: '#/channels/crahMetadata/messages/airDifferentialPressure'
2890 - $ref: '#/channels/crahMetadata/messages/airRelativeHumidity'
2891 - $ref: '#/channels/crahMetadata/messages/airFlow'
2892 - $ref: '#/channels/crahMetadata/messages/airPressure'
2893 - $ref: '#/channels/crahMetadata/messages/leakDetect'
2894 - $ref: '#/channels/crahMetadata/messages/genericPoint'
2895 description: Subscribe to BMS-published metadata for CRAH points.
2896
2897 publishCRAHIntegrationValue:
2898 action: send
2899 channel:
2900 $ref: '#/channels/crahIntegrationValue'
2901 messages:
2902 - $ref: '#/channels/crahIntegrationValue/messages/valueMessage'
2903 description: Publish integration values for CRAH control points.
2904
2905 receiveCRACValue:
2906 action: receive
2907 channel:
2908 $ref: '#/channels/cracValue'
2909 messages:
2910 - $ref: '#/channels/cracValue/messages/valueMessage'
2911 description: Subscribe to real-time BMS-published values for CRAC points.
2912
2913 receiveCRACMetadata:
2914 action: receive
2915 channel:
2916 $ref: '#/channels/cracMetadata'
2917 messages:
2918 - $ref: '#/channels/cracMetadata/messages/liquidTemperature'
2919 - $ref: '#/channels/cracMetadata/messages/liquidDifferentialPressure'
2920 - $ref: '#/channels/cracMetadata/messages/liquidFlow'
2921 - $ref: '#/channels/cracMetadata/messages/liquidPressure'
2922 - $ref: '#/channels/cracMetadata/messages/status'
2923 - $ref: '#/channels/cracMetadata/messages/available'
2924 - $ref: '#/channels/cracMetadata/messages/valvePosition'
2925 - $ref: '#/channels/cracMetadata/messages/pumpSpeed'
2926 - $ref: '#/channels/cracMetadata/messages/fanSpeed'
2927 - $ref: '#/channels/cracMetadata/messages/damperPosition'
2928 - $ref: '#/channels/cracMetadata/messages/airTemperature'
2929 - $ref: '#/channels/cracMetadata/messages/airDifferentialPressure'
2930 - $ref: '#/channels/cracMetadata/messages/airRelativeHumidity'
2931 - $ref: '#/channels/cracMetadata/messages/airFlow'
2932 - $ref: '#/channels/cracMetadata/messages/airPressure'
2933 - $ref: '#/channels/cracMetadata/messages/leakDetect'
2934 - $ref: '#/channels/cracMetadata/messages/genericPoint'
2935 description: Subscribe to BMS-published metadata for CRAC points.
2936
2937 publishCRACIntegrationValue:
2938 action: send
2939 channel:
2940 $ref: '#/channels/cracIntegrationValue'
2941 messages:
2942 - $ref: '#/channels/cracIntegrationValue/messages/valueMessage'
2943 description: Publish integration values for CRAC control points.
2944
2945 receiveAHUValue:
2946 action: receive
2947 channel:
2948 $ref: '#/channels/ahuValue'
2949 messages:
2950 - $ref: '#/channels/ahuValue/messages/valueMessage'
2951 description: Subscribe to real-time BMS-published values for AHU points.
2952
2953 receiveAHUMetadata:
2954 action: receive
2955 channel:
2956 $ref: '#/channels/ahuMetadata'
2957 messages:
2958 - $ref: '#/channels/ahuMetadata/messages/liquidTemperature'
2959 - $ref: '#/channels/ahuMetadata/messages/liquidDifferentialPressure'
2960 - $ref: '#/channels/ahuMetadata/messages/liquidFlow'
2961 - $ref: '#/channels/ahuMetadata/messages/liquidPressure'
2962 - $ref: '#/channels/ahuMetadata/messages/status'
2963 - $ref: '#/channels/ahuMetadata/messages/available'
2964 - $ref: '#/channels/ahuMetadata/messages/valvePosition'
2965 - $ref: '#/channels/ahuMetadata/messages/pumpSpeed'
2966 - $ref: '#/channels/ahuMetadata/messages/fanSpeed'
2967 - $ref: '#/channels/ahuMetadata/messages/damperPosition'
2968 - $ref: '#/channels/ahuMetadata/messages/airTemperature'
2969 - $ref: '#/channels/ahuMetadata/messages/airDifferentialPressure'
2970 - $ref: '#/channels/ahuMetadata/messages/airRelativeHumidity'
2971 - $ref: '#/channels/ahuMetadata/messages/airFlow'
2972 - $ref: '#/channels/ahuMetadata/messages/airPressure'
2973 - $ref: '#/channels/ahuMetadata/messages/leakDetect'
2974 - $ref: '#/channels/ahuMetadata/messages/genericPoint'
2975 description: Subscribe to BMS-published metadata for AHU points.
2976
2977 publishAHUIntegrationValue:
2978 action: send
2979 channel:
2980 $ref: '#/channels/ahuIntegrationValue'
2981 messages:
2982 - $ref: '#/channels/ahuIntegrationValue/messages/valueMessage'
2983 description: Publish integration values for AHU control points.
2984
2985 receiveChillerValue:
2986 action: receive
2987 channel:
2988 $ref: '#/channels/chillerValue'
2989 messages:
2990 - $ref: '#/channels/chillerValue/messages/valueMessage'
2991 description: Subscribe to real-time BMS-published values for Chiller points.
2992
2993 receiveChillerMetadata:
2994 action: receive
2995 channel:
2996 $ref: '#/channels/chillerMetadata'
2997 messages:
2998 - $ref: '#/channels/chillerMetadata/messages/liquidTemperature'
2999 - $ref: '#/channels/chillerMetadata/messages/liquidDifferentialPressure'
3000 - $ref: '#/channels/chillerMetadata/messages/liquidFlow'
3001 - $ref: '#/channels/chillerMetadata/messages/liquidPressure'
3002 - $ref: '#/channels/chillerMetadata/messages/status'
3003 - $ref: '#/channels/chillerMetadata/messages/available'
3004 - $ref: '#/channels/chillerMetadata/messages/valvePosition'
3005 - $ref: '#/channels/chillerMetadata/messages/pumpSpeed'
3006 - $ref: '#/channels/chillerMetadata/messages/fanSpeed'
3007 - $ref: '#/channels/chillerMetadata/messages/damperPosition'
3008 - $ref: '#/channels/chillerMetadata/messages/airTemperature'
3009 - $ref: '#/channels/chillerMetadata/messages/airDifferentialPressure'
3010 - $ref: '#/channels/chillerMetadata/messages/airRelativeHumidity'
3011 - $ref: '#/channels/chillerMetadata/messages/airFlow'
3012 - $ref: '#/channels/chillerMetadata/messages/airPressure'
3013 - $ref: '#/channels/chillerMetadata/messages/leakDetect'
3014 - $ref: '#/channels/chillerMetadata/messages/genericPoint'
3015 description: Subscribe to BMS-published metadata for Chiller points.
3016
3017 publishChillerIntegrationValue:
3018 action: send
3019 channel:
3020 $ref: '#/channels/chillerIntegrationValue'
3021 messages:
3022 - $ref: '#/channels/chillerIntegrationValue/messages/valueMessage'
3023 description: Publish integration values for Chiller control points.
3024
3025 receiveValveValue:
3026 action: receive
3027 channel:
3028 $ref: '#/channels/valveValue'
3029 messages:
3030 - $ref: '#/channels/valveValue/messages/valueMessage'
3031 description: Subscribe to real-time BMS-published values for Valve points.
3032
3033 receiveValveMetadata:
3034 action: receive
3035 channel:
3036 $ref: '#/channels/valveMetadata'
3037 messages:
3038 - $ref: '#/channels/valveMetadata/messages/valvePosition'
3039 - $ref: '#/channels/valveMetadata/messages/available'
3040 - $ref: '#/channels/valveMetadata/messages/genericPoint'
3041 description: Subscribe to BMS-published metadata for Valve points.
3042
3043 publishValveIntegrationValue:
3044 action: send
3045 channel:
3046 $ref: '#/channels/valveIntegrationValue'
3047 messages:
3048 - $ref: '#/channels/valveIntegrationValue/messages/valueMessage'
3049 description: Publish integration values for Valve control points.
3050
3051 receivePumpValue:
3052 action: receive
3053 channel:
3054 $ref: '#/channels/pumpValue'
3055 messages:
3056 - $ref: '#/channels/pumpValue/messages/valueMessage'
3057 description: Subscribe to real-time BMS-published values for Pump points.
3058
3059 receivePumpMetadata:
3060 action: receive
3061 channel:
3062 $ref: '#/channels/pumpMetadata'
3063 messages:
3064 - $ref: '#/channels/pumpMetadata/messages/pumpSpeed'
3065 - $ref: '#/channels/pumpMetadata/messages/available'
3066 - $ref: '#/channels/pumpMetadata/messages/genericPoint'
3067 description: Subscribe to BMS-published metadata for Pump points.
3068
3069 publishPumpIntegrationValue:
3070 action: send
3071 channel:
3072 $ref: '#/channels/pumpIntegrationValue'
3073 messages:
3074 - $ref: '#/channels/pumpIntegrationValue/messages/valueMessage'
3075 description: Publish integration values for Pump control points.
3076
3077 receiveFanValue:
3078 action: receive
3079 channel:
3080 $ref: '#/channels/fanValue'
3081 messages:
3082 - $ref: '#/channels/fanValue/messages/valueMessage'
3083 description: Subscribe to real-time BMS-published values for Fan points.
3084
3085 receiveFanMetadata:
3086 action: receive
3087 channel:
3088 $ref: '#/channels/fanMetadata'
3089 messages:
3090 - $ref: '#/channels/fanMetadata/messages/fanSpeed'
3091 - $ref: '#/channels/fanMetadata/messages/available'
3092 - $ref: '#/channels/fanMetadata/messages/genericPoint'
3093 description: Subscribe to BMS-published metadata for Fan points.
3094
3095 publishFanIntegrationValue:
3096 action: send
3097 channel:
3098 $ref: '#/channels/fanIntegrationValue'
3099 messages:
3100 - $ref: '#/channels/fanIntegrationValue/messages/valueMessage'
3101 description: Publish integration values for Fan control points.
3102
3103 receiveDamperValue:
3104 action: receive
3105 channel:
3106 $ref: '#/channels/damperValue'
3107 messages:
3108 - $ref: '#/channels/damperValue/messages/valueMessage'
3109 description: Subscribe to real-time BMS-published values for Damper points.
3110
3111 receiveDamperMetadata:
3112 action: receive
3113 channel:
3114 $ref: '#/channels/damperMetadata'
3115 messages:
3116 - $ref: '#/channels/damperMetadata/messages/damperPosition'
3117 - $ref: '#/channels/damperMetadata/messages/available'
3118 - $ref: '#/channels/damperMetadata/messages/genericPoint'
3119 description: Subscribe to BMS-published metadata for Damper points.
3120
3121 publishDamperIntegrationValue:
3122 action: send
3123 channel:
3124 $ref: '#/channels/damperIntegrationValue'
3125 messages:
3126 - $ref: '#/channels/damperIntegrationValue/messages/valueMessage'
3127 description: Publish integration values for Damper control points.
3128
3129 receiveSensorValue:
3130 action: receive
3131 channel:
3132 $ref: '#/channels/sensorValue'
3133 messages:
3134 - $ref: '#/channels/sensorValue/messages/valueMessage'
3135 description: Subscribe to real-time BMS-published values for Sensor points.
3136
3137 receiveSensorMetadata:
3138 action: receive
3139 channel:
3140 $ref: '#/channels/sensorMetadata'
3141 messages:
3142 - $ref: '#/channels/sensorMetadata/messages/liquidTemperature'
3143 - $ref: '#/channels/sensorMetadata/messages/liquidDifferentialPressure'
3144 - $ref: '#/channels/sensorMetadata/messages/liquidFlow'
3145 - $ref: '#/channels/sensorMetadata/messages/liquidPressure'
3146 - $ref: '#/channels/sensorMetadata/messages/airTemperature'
3147 - $ref: '#/channels/sensorMetadata/messages/airDifferentialPressure'
3148 - $ref: '#/channels/sensorMetadata/messages/airRelativeHumidity'
3149 - $ref: '#/channels/sensorMetadata/messages/airFlow'
3150 - $ref: '#/channels/sensorMetadata/messages/airPressure'
3151 - $ref: '#/channels/sensorMetadata/messages/leakDetect'
3152 - $ref: '#/channels/sensorMetadata/messages/available'
3153 - $ref: '#/channels/sensorMetadata/messages/sound'
3154 - $ref: '#/channels/sensorMetadata/messages/genericPoint'
3155 description: Subscribe to BMS-published metadata for Sensor points.
3156
3157 publishSensorIntegrationValue:
3158 action: send
3159 channel:
3160 $ref: '#/channels/sensorIntegrationValue'
3161 messages:
3162 - $ref: '#/channels/sensorIntegrationValue/messages/valueMessage'
3163 description: Publish integration values for Sensor control points.
3164
3165 receiveTankValue:
3166 action: receive
3167 channel:
3168 $ref: '#/channels/tankValue'
3169 messages:
3170 - $ref: '#/channels/tankValue/messages/valueMessage'
3171 description: Subscribe to real-time BMS-published values for Tank points.
3172
3173 receiveTankMetadata:
3174 action: receive
3175 channel:
3176 $ref: '#/channels/tankMetadata'
3177 messages:
3178 - $ref: '#/channels/tankMetadata/messages/liquidTemperature'
3179 - $ref: '#/channels/tankMetadata/messages/liquidDifferentialPressure'
3180 - $ref: '#/channels/tankMetadata/messages/liquidFlow'
3181 - $ref: '#/channels/tankMetadata/messages/liquidPressure'
3182 - $ref: '#/channels/tankMetadata/messages/status'
3183 - $ref: '#/channels/tankMetadata/messages/available'
3184 - $ref: '#/channels/tankMetadata/messages/valvePosition'
3185 - $ref: '#/channels/tankMetadata/messages/pumpSpeed'
3186 - $ref: '#/channels/tankMetadata/messages/fanSpeed'
3187 - $ref: '#/channels/tankMetadata/messages/damperPosition'
3188 - $ref: '#/channels/tankMetadata/messages/airTemperature'
3189 - $ref: '#/channels/tankMetadata/messages/airDifferentialPressure'
3190 - $ref: '#/channels/tankMetadata/messages/airRelativeHumidity'
3191 - $ref: '#/channels/tankMetadata/messages/airFlow'
3192 - $ref: '#/channels/tankMetadata/messages/airPressure'
3193 - $ref: '#/channels/tankMetadata/messages/leakDetect'
3194 - $ref: '#/channels/tankMetadata/messages/genericPoint'
3195 description: Subscribe to BMS-published metadata for Tank points.
3196
3197 publishTankIntegrationValue:
3198 action: send
3199 channel:
3200 $ref: '#/channels/tankIntegrationValue'
3201 messages:
3202 - $ref: '#/channels/tankIntegrationValue/messages/valueMessage'
3203 description: Publish integration values for Tank control points.
3204
3205 receiveGenericObjectValue:
3206 action: receive
3207 channel:
3208 $ref: '#/channels/genericObjectValue'
3209 messages:
3210 - $ref: '#/channels/genericObjectValue/messages/valueMessage'
3211 description: Subscribe to real-time BMS-published values for GenericObject points.
3212
3213 receiveGenericObjectMetadata:
3214 action: receive
3215 channel:
3216 $ref: '#/channels/genericObjectMetadata'
3217 messages:
3218 - $ref: '#/channels/genericObjectMetadata/messages/liquidTemperature'
3219 - $ref: '#/channels/genericObjectMetadata/messages/liquidDifferentialPressure'
3220 - $ref: '#/channels/genericObjectMetadata/messages/liquidFlow'
3221 - $ref: '#/channels/genericObjectMetadata/messages/liquidPressure'
3222 - $ref: '#/channels/genericObjectMetadata/messages/status'
3223 - $ref: '#/channels/genericObjectMetadata/messages/available'
3224 - $ref: '#/channels/genericObjectMetadata/messages/valvePosition'
3225 - $ref: '#/channels/genericObjectMetadata/messages/pumpSpeed'
3226 - $ref: '#/channels/genericObjectMetadata/messages/fanSpeed'
3227 - $ref: '#/channels/genericObjectMetadata/messages/damperPosition'
3228 - $ref: '#/channels/genericObjectMetadata/messages/airTemperature'
3229 - $ref: '#/channels/genericObjectMetadata/messages/airDifferentialPressure'
3230 - $ref: '#/channels/genericObjectMetadata/messages/airRelativeHumidity'
3231 - $ref: '#/channels/genericObjectMetadata/messages/airFlow'
3232 - $ref: '#/channels/genericObjectMetadata/messages/airPressure'
3233 - $ref: '#/channels/genericObjectMetadata/messages/leakDetect'
3234 - $ref: '#/channels/genericObjectMetadata/messages/liquidTemperatureSpRequest'
3235 - $ref: '#/channels/genericObjectMetadata/messages/sound'
3236 - $ref: '#/channels/genericObjectMetadata/messages/genericPoint'
3237 description: Subscribe to BMS-published metadata for GenericObject points.
3238
3239 publishGenericObjectIntegrationValue:
3240 action: send
3241 channel:
3242 $ref: '#/channels/genericObjectIntegrationValue'
3243 messages:
3244 - $ref: '#/channels/genericObjectIntegrationValue/messages/valueMessage'
3245 description: Publish integration values for GenericObject control points.
3246
3247 receiveSystemBmsValue:
3248 action: receive
3249 channel:
3250 $ref: '#/channels/systemBmsValue'
3251 messages:
3252 - $ref: '#/channels/systemBmsValue/messages/valueMessage'
3253 description: Subscribe to BMS System values (heartbeat timestamps, status, etc.).
3254
3255 receiveSystemMetadata:
3256 action: receive
3257 channel:
3258 $ref: '#/channels/systemMetadata'
3259 messages:
3260 - $ref: '#/channels/systemMetadata/messages/heartbeatTimestampBms'
3261 - $ref: '#/channels/systemMetadata/messages/heartbeatEchoBms'
3262 - $ref: '#/channels/systemMetadata/messages/heartbeatTimestampIntegration'
3263 - $ref: '#/channels/systemMetadata/messages/heartbeatEchoIntegration'
3264 - $ref: '#/channels/systemMetadata/messages/status'
3265 - $ref: '#/channels/systemMetadata/messages/available'
3266 - $ref: '#/channels/systemMetadata/messages/genericPoint'
3267 description: Subscribe to System metadata for all System point types.
3268
3269 publishSystemIntegrationValue:
3270 action: send
3271 channel:
3272 $ref: '#/channels/systemIntegrationValue'
3273 messages:
3274 - $ref: '#/channels/systemIntegrationValue/messages/valueMessage'
3275 description: Publish integration System values to topics derived from BMS metadata.
3276
3277# =============================================================================
3278# Components
3279# =============================================================================
3280
3281components:
3282
3283 messages:
3284
3285 ValueMessage:
3286 name: ValueMessage
3287 title: Point Value
3288 description: |
3289 Live value message. Payload envelope is identical for all point types.
3290 The semantic meaning of `value` is determined by the corresponding
3291 metadata message.
3292 payload:
3293 type: object
3294 required:
3295 - value
3296 - timestamp
3297 - quality
3298 properties:
3299 value:
3300 oneOf:
3301 - type: number
3302 - type: 'null'
3303 description: >
3304 Live reading for the point (float). May be null when the BMS
3305 has no valid reading available.
3306 examples:
3307 - 22.96215
3308 - 0.239
3309 - null
3310 - 1
3311
3312 timestamp:
3313 type: integer
3314 description: Unix timestamp in epoch milliseconds (source event time).
3315 examples:
3316 - 1743620423000
3317 quality:
3318 type: integer
3319 description: >
3320 `1` = good quality. Any other integer indicates value is not trustworthy
3321 examples:
3322 - 1
3323 - 0
3324 additionalProperties: false
3325
3326 # Rack
3327 RackLiquidSupplyTemperatureMsg:
3328 name: RackLiquidSupplyTemperatureMsg
3329 title: Rack RackLiquidSupplyTemperature Metadata
3330 payload:
3331 $ref: '#/components/schemas/RackLiquidSupplyTemperatureMetadata'
3332 RackLiquidReturnTemperatureMsg:
3333 name: RackLiquidReturnTemperatureMsg
3334 title: Rack RackLiquidReturnTemperature Metadata
3335 payload:
3336 $ref: '#/components/schemas/RackLiquidReturnTemperatureMetadata'
3337 RackLiquidFlowMsg:
3338 name: RackLiquidFlowMsg
3339 title: Rack RackLiquidFlow Metadata
3340 payload:
3341 $ref: '#/components/schemas/RackLiquidFlowMetadata'
3342 RackLiquidDifferentialPressureMsg:
3343 name: RackLiquidDifferentialPressureMsg
3344 title: Rack RackLiquidDifferentialPressure Metadata
3345 payload:
3346 $ref: '#/components/schemas/RackLiquidDifferentialPressureMetadata'
3347 RackControlValvePositionMsg:
3348 name: RackControlValvePositionMsg
3349 title: Rack RackControlValvePosition Metadata
3350 payload:
3351 $ref: '#/components/schemas/RackControlValvePositionMetadata'
3352 RackPowerMsg:
3353 name: RackPowerMsg
3354 title: Rack RackPower Metadata
3355 payload:
3356 $ref: '#/components/schemas/RackPowerMetadata'
3357 RackLeakDetectMsg:
3358 name: RackLeakDetectMsg
3359 title: Rack RackLeakDetect Metadata
3360 payload:
3361 $ref: '#/components/schemas/RackLeakDetectMetadata'
3362 RackLeakSensorFaultMsg:
3363 name: RackLeakSensorFaultMsg
3364 title: Rack RackLeakSensorFault Metadata
3365 payload:
3366 $ref: '#/components/schemas/RackLeakSensorFaultMetadata'
3367 RackLiquidIsolationStatusMsg:
3368 name: RackLiquidIsolationStatusMsg
3369 title: Rack RackLiquidIsolationStatus Metadata
3370 payload:
3371 $ref: '#/components/schemas/RackLiquidIsolationStatusMetadata'
3372 RackElectricalIsolationStatusMsg:
3373 name: RackElectricalIsolationStatusMsg
3374 title: Rack RackElectricalIsolationStatus Metadata
3375 payload:
3376 $ref: '#/components/schemas/RackElectricalIsolationStatusMetadata'
3377 RackLeakDetectTrayMsg:
3378 name: RackLeakDetectTrayMsg
3379 title: Rack RackLeakDetectTray Metadata
3380 payload:
3381 $ref: '#/components/schemas/RackLeakDetectTrayMetadata'
3382 RackLiquidIsolationRequestMsg:
3383 name: RackLiquidIsolationRequestMsg
3384 title: Rack RackLiquidIsolationRequest Metadata
3385 payload:
3386 $ref: '#/components/schemas/RackLiquidIsolationRequestMetadata'
3387 RackElectricalIsolationRequestMsg:
3388 name: RackElectricalIsolationRequestMsg
3389 title: Rack RackElectricalIsolationRequest Metadata
3390 payload:
3391 $ref: '#/components/schemas/RackElectricalIsolationRequestMetadata'
3392
3393 # PowerMeter
3394 PowerMeterVoltageMsg:
3395 name: PowerMeterVoltageMsg
3396 title: PowerMeter Voltage Metadata
3397 payload:
3398 $ref: '#/components/schemas/PowerMeterVoltageMetadata'
3399 PowerMeterPowerFactorMsg:
3400 name: PowerMeterPowerFactorMsg
3401 title: PowerMeter PowerFactor Metadata
3402 payload:
3403 $ref: '#/components/schemas/PowerMeterPowerFactorMetadata'
3404 PowerMeterFrequencyMsg:
3405 name: PowerMeterFrequencyMsg
3406 title: PowerMeter Frequency Metadata
3407 payload:
3408 $ref: '#/components/schemas/PowerMeterFrequencyMetadata'
3409 PowerMeterApparentPowerMsg:
3410 name: PowerMeterApparentPowerMsg
3411 title: PowerMeter ApparentPower Metadata
3412 payload:
3413 $ref: '#/components/schemas/PowerMeterApparentPowerMetadata'
3414 PowerMeterActivePowerMsg:
3415 name: PowerMeterActivePowerMsg
3416 title: PowerMeter ActivePower Metadata
3417 payload:
3418 $ref: '#/components/schemas/PowerMeterActivePowerMetadata'
3419 PowerMeterCurrentMsg:
3420 name: PowerMeterCurrentMsg
3421 title: PowerMeter Current Metadata
3422 payload:
3423 $ref: '#/components/schemas/PowerMeterCurrentMetadata'
3424 PowerMeterCurrentLimitMsg:
3425 name: PowerMeterCurrentLimitMsg
3426 title: PowerMeter CurrentLimit Metadata
3427 payload:
3428 $ref: '#/components/schemas/PowerMeterCurrentLimitMetadata'
3429 PowerMeterPhaseCurrentMsg:
3430 name: PowerMeterPhaseCurrentMsg
3431 title: PowerMeter PhaseCurrent Metadata
3432 payload:
3433 $ref: '#/components/schemas/PowerMeterPhaseCurrentMetadata'
3434
3435 # Generic Equipment
3436 LiquidTemperatureMsg:
3437 name: LiquidTemperatureMsg
3438 title: LiquidTemperature Metadata
3439 payload:
3440 $ref: '#/components/schemas/LiquidTemperatureMetadata'
3441 LiquidDifferentialPressureMsg:
3442 name: LiquidDifferentialPressureMsg
3443 title: LiquidDifferentialPressure Metadata
3444 payload:
3445 $ref: '#/components/schemas/LiquidDifferentialPressureMetadata'
3446 LiquidFlowMsg:
3447 name: LiquidFlowMsg
3448 title: LiquidFlow Metadata
3449 payload:
3450 $ref: '#/components/schemas/LiquidFlowMetadata'
3451 LiquidPressureMsg:
3452 name: LiquidPressureMsg
3453 title: LiquidPressure Metadata
3454 payload:
3455 $ref: '#/components/schemas/LiquidPressureMetadata'
3456 StatusMsg:
3457 name: StatusMsg
3458 title: Status Metadata
3459 payload:
3460 $ref: '#/components/schemas/StatusMetadata'
3461 AvailableMsg:
3462 name: AvailableMsg
3463 title: Available Metadata
3464 payload:
3465 $ref: '#/components/schemas/AvailableMetadata'
3466 ValvePositionMsg:
3467 name: ValvePositionMsg
3468 title: ValvePosition Metadata
3469 payload:
3470 $ref: '#/components/schemas/ValvePositionMetadata'
3471 PumpSpeedMsg:
3472 name: PumpSpeedMsg
3473 title: PumpSpeed Metadata
3474 payload:
3475 $ref: '#/components/schemas/PumpSpeedMetadata'
3476 FanSpeedMsg:
3477 name: FanSpeedMsg
3478 title: FanSpeed Metadata
3479 payload:
3480 $ref: '#/components/schemas/FanSpeedMetadata'
3481 DamperPositionMsg:
3482 name: DamperPositionMsg
3483 title: DamperPosition Metadata
3484 payload:
3485 $ref: '#/components/schemas/DamperPositionMetadata'
3486 AirTemperatureMsg:
3487 name: AirTemperatureMsg
3488 title: AirTemperature Metadata
3489 payload:
3490 $ref: '#/components/schemas/AirTemperatureMetadata'
3491 AirDifferentialPressureMsg:
3492 name: AirDifferentialPressureMsg
3493 title: AirDifferentialPressure Metadata
3494 payload:
3495 $ref: '#/components/schemas/AirDifferentialPressureMetadata'
3496 AirFlowMsg:
3497 name: AirFlowMsg
3498 title: AirFlow Metadata
3499 payload:
3500 $ref: '#/components/schemas/AirFlowMetadata'
3501 AirPressureMsg:
3502 name: AirPressureMsg
3503 title: AirPressure Metadata
3504 payload:
3505 $ref: '#/components/schemas/AirPressureMetadata'
3506 LiquidTemperatureSpRequestMsg:
3507 name: LiquidTemperatureSpRequestMsg
3508 title: CDU LiquidTemperatureSpRequest Metadata
3509 payload:
3510 $ref: '#/components/schemas/LiquidTemperatureSpRequestMetadata'
3511 SoundMsg:
3512 name: SoundMsg
3513 title: Sound Metadata
3514 payload:
3515 $ref: '#/components/schemas/SoundMetadata'
3516
3517 # System
3518 SystemHeartbeatTimestampBmsMsg:
3519 name: SystemHeartbeatTimestampBmsMsg
3520 title: HeartbeatTimestampBms Metadata
3521 payload:
3522 $ref: '#/components/schemas/SystemHeartbeatTimestampBmsMetadata'
3523 SystemHeartbeatEchoBmsMsg:
3524 name: SystemHeartbeatEchoBmsMsg
3525 title: HeartbeatEchoBms Metadata
3526 payload:
3527 $ref: '#/components/schemas/SystemHeartbeatEchoBmsMetadata'
3528 SystemHeartbeatTimestampIntegrationMsg:
3529 name: SystemHeartbeatTimestampIntegrationMsg
3530 title: HeartbeatTimestampIntegration Metadata
3531 payload:
3532 $ref: '#/components/schemas/SystemHeartbeatTimestampIntegrationMetadata'
3533 SystemHeartbeatEchoIntegrationMsg:
3534 name: SystemHeartbeatEchoIntegrationMsg
3535 title: HeartbeatEchoIntegration Metadata
3536 payload:
3537 $ref: '#/components/schemas/SystemHeartbeatEchoIntegrationMetadata'
3538 SystemStatusMsg:
3539 name: SystemStatusMsg
3540 title: System Status Metadata
3541 payload:
3542 $ref: '#/components/schemas/SystemStatusMetadata'
3543 SystemAvailableMsg:
3544 name: SystemAvailableMsg
3545 title: System Available Metadata
3546 payload:
3547 $ref: '#/components/schemas/SystemAvailableMetadata'
3548
3549 # Generic Equipment
3550 # --- Per-objectType messages (objectType constraint) ---
3551
3552 BESSStatusMsg:
3553 name: BESSStatusMsg
3554 title: BESS Status Metadata
3555 payload:
3556 $ref: '#/components/schemas/BESSStatusMetadata'
3557
3558 BESSAvailableMsg:
3559 name: BESSAvailableMsg
3560 title: BESS Available Metadata
3561 payload:
3562 $ref: '#/components/schemas/BESSAvailableMetadata'
3563
3564 UPSStatusMsg:
3565 name: UPSStatusMsg
3566 title: UPS Status Metadata
3567 payload:
3568 $ref: '#/components/schemas/UPSStatusMetadata'
3569
3570 UPSAvailableMsg:
3571 name: UPSAvailableMsg
3572 title: UPS Available Metadata
3573 payload:
3574 $ref: '#/components/schemas/UPSAvailableMetadata'
3575
3576 ATSStatusMsg:
3577 name: ATSStatusMsg
3578 title: ATS Status Metadata
3579 payload:
3580 $ref: '#/components/schemas/ATSStatusMetadata'
3581
3582 ATSAvailableMsg:
3583 name: ATSAvailableMsg
3584 title: ATS Available Metadata
3585 payload:
3586 $ref: '#/components/schemas/ATSAvailableMetadata'
3587
3588 GeneratorStatusMsg:
3589 name: GeneratorStatusMsg
3590 title: Generator Status Metadata
3591 payload:
3592 $ref: '#/components/schemas/GeneratorStatusMetadata'
3593
3594 GeneratorAvailableMsg:
3595 name: GeneratorAvailableMsg
3596 title: Generator Available Metadata
3597 payload:
3598 $ref: '#/components/schemas/GeneratorAvailableMetadata'
3599
3600 ShuntStatusMsg:
3601 name: ShuntStatusMsg
3602 title: Shunt Status Metadata
3603 payload:
3604 $ref: '#/components/schemas/ShuntStatusMetadata'
3605
3606 ShuntAvailableMsg:
3607 name: ShuntAvailableMsg
3608 title: Shunt Available Metadata
3609 payload:
3610 $ref: '#/components/schemas/ShuntAvailableMetadata'
3611
3612 BreakerStatusMsg:
3613 name: BreakerStatusMsg
3614 title: Breaker Status Metadata
3615 payload:
3616 $ref: '#/components/schemas/BreakerStatusMetadata'
3617
3618 BreakerAvailableMsg:
3619 name: BreakerAvailableMsg
3620 title: Breaker Available Metadata
3621 payload:
3622 $ref: '#/components/schemas/BreakerAvailableMetadata'
3623
3624 ValveValvePositionMsg:
3625 name: ValveValvePositionMsg
3626 title: Valve ValvePosition Metadata
3627 payload:
3628 $ref: '#/components/schemas/ValveValvePositionMetadata'
3629
3630 PumpPumpSpeedMsg:
3631 name: PumpPumpSpeedMsg
3632 title: Pump PumpSpeed Metadata
3633 payload:
3634 $ref: '#/components/schemas/PumpPumpSpeedMetadata'
3635
3636 FanFanSpeedMsg:
3637 name: FanFanSpeedMsg
3638 title: Fan FanSpeed Metadata
3639 payload:
3640 $ref: '#/components/schemas/FanFanSpeedMetadata'
3641
3642 DamperDamperPositionMsg:
3643 name: DamperDamperPositionMsg
3644 title: Damper DamperPosition Metadata
3645 payload:
3646 $ref: '#/components/schemas/DamperDamperPositionMetadata'
3647
3648 SensorLiquidTemperatureMsg:
3649 name: SensorLiquidTemperatureMsg
3650 title: Sensor LiquidTemperature Metadata
3651 payload:
3652 $ref: '#/components/schemas/SensorLiquidTemperatureMetadata'
3653
3654 SensorLiquidDifferentialPressureMsg:
3655 name: SensorLiquidDifferentialPressureMsg
3656 title: Sensor LiquidDifferentialPressure Metadata
3657 payload:
3658 $ref: '#/components/schemas/SensorLiquidDifferentialPressureMetadata'
3659
3660 SensorLiquidFlowMsg:
3661 name: SensorLiquidFlowMsg
3662 title: Sensor LiquidFlow Metadata
3663 payload:
3664 $ref: '#/components/schemas/SensorLiquidFlowMetadata'
3665
3666 SensorLiquidPressureMsg:
3667 name: SensorLiquidPressureMsg
3668 title: Sensor LiquidPressure Metadata
3669 payload:
3670 $ref: '#/components/schemas/SensorLiquidPressureMetadata'
3671
3672 SensorAirTemperatureMsg:
3673 name: SensorAirTemperatureMsg
3674 title: Sensor AirTemperature Metadata
3675 payload:
3676 $ref: '#/components/schemas/SensorAirTemperatureMetadata'
3677
3678 SensorAirDifferentialPressureMsg:
3679 name: SensorAirDifferentialPressureMsg
3680 title: Sensor AirDifferentialPressure Metadata
3681 payload:
3682 $ref: '#/components/schemas/SensorAirDifferentialPressureMetadata'
3683
3684 SensorAirFlowMsg:
3685 name: SensorAirFlowMsg
3686 title: Sensor AirFlow Metadata
3687 payload:
3688 $ref: '#/components/schemas/SensorAirFlowMetadata'
3689
3690 SensorAirPressureMsg:
3691 name: SensorAirPressureMsg
3692 title: Sensor AirPressure Metadata
3693 payload:
3694 $ref: '#/components/schemas/SensorAirPressureMetadata'
3695
3696 SensorSoundMsg:
3697 name: SensorSoundMsg
3698 title: Sensor Sound Metadata
3699 payload:
3700 $ref: '#/components/schemas/SensorSoundMetadata'
3701
3702 ValveAvailableMsg:
3703 name: ValveAvailableMsg
3704 title: Valve Available Metadata
3705 payload:
3706 $ref: '#/components/schemas/ValveAvailableMetadata'
3707
3708 PumpAvailableMsg:
3709 name: PumpAvailableMsg
3710 title: Pump Available Metadata
3711 payload:
3712 $ref: '#/components/schemas/PumpAvailableMetadata'
3713
3714 FanAvailableMsg:
3715 name: FanAvailableMsg
3716 title: Fan Available Metadata
3717 payload:
3718 $ref: '#/components/schemas/FanAvailableMetadata'
3719
3720 DamperAvailableMsg:
3721 name: DamperAvailableMsg
3722 title: Damper Available Metadata
3723 payload:
3724 $ref: '#/components/schemas/DamperAvailableMetadata'
3725
3726 SensorAvailableMsg:
3727 name: SensorAvailableMsg
3728 title: Sensor Available Metadata
3729 payload:
3730 $ref: '#/components/schemas/SensorAvailableMetadata'
3731
3732 CDULeakDetectMsg:
3733 name: CDULeakDetectMsg
3734 title: CDU LeakDetect Metadata
3735 payload:
3736 $ref: '#/components/schemas/CDULeakDetectMetadata'
3737
3738 CoolingTowerLeakDetectMsg:
3739 name: CoolingTowerLeakDetectMsg
3740 title: CoolingTower LeakDetect Metadata
3741 payload:
3742 $ref: '#/components/schemas/CoolingTowerLeakDetectMetadata'
3743
3744 HXLeakDetectMsg:
3745 name: HXLeakDetectMsg
3746 title: HX LeakDetect Metadata
3747 payload:
3748 $ref: '#/components/schemas/HXLeakDetectMetadata'
3749
3750 CRAHLeakDetectMsg:
3751 name: CRAHLeakDetectMsg
3752 title: CRAH LeakDetect Metadata
3753 payload:
3754 $ref: '#/components/schemas/CRAHLeakDetectMetadata'
3755
3756 CRACLeakDetectMsg:
3757 name: CRACLeakDetectMsg
3758 title: CRAC LeakDetect Metadata
3759 payload:
3760 $ref: '#/components/schemas/CRACLeakDetectMetadata'
3761
3762 AHULeakDetectMsg:
3763 name: AHULeakDetectMsg
3764 title: AHU LeakDetect Metadata
3765 payload:
3766 $ref: '#/components/schemas/AHULeakDetectMetadata'
3767
3768 ChillerLeakDetectMsg:
3769 name: ChillerLeakDetectMsg
3770 title: Chiller LeakDetect Metadata
3771 payload:
3772 $ref: '#/components/schemas/ChillerLeakDetectMetadata'
3773
3774 TankLeakDetectMsg:
3775 name: TankLeakDetectMsg
3776 title: Tank LeakDetect Metadata
3777 payload:
3778 $ref: '#/components/schemas/TankLeakDetectMetadata'
3779
3780 SensorLeakDetectMsg:
3781 name: SensorLeakDetectMsg
3782 title: Sensor LeakDetect Metadata
3783 payload:
3784 $ref: '#/components/schemas/SensorLeakDetectMetadata'
3785
3786 GenericObjectLeakDetectMsg:
3787 name: GenericObjectLeakDetectMsg
3788 title: GenericObject LeakDetect Metadata
3789 payload:
3790 $ref: '#/components/schemas/GenericObjectLeakDetectMetadata'
3791
3792 CDUAirRelativeHumidityMsg:
3793 name: CDUAirRelativeHumidityMsg
3794 title: CDU AirRelativeHumidity Metadata
3795 payload:
3796 $ref: '#/components/schemas/CDUAirRelativeHumidityMetadata'
3797
3798 CoolingTowerAirRelativeHumidityMsg:
3799 name: CoolingTowerAirRelativeHumidityMsg
3800 title: CoolingTower AirRelativeHumidity Metadata
3801 payload:
3802 $ref: '#/components/schemas/CoolingTowerAirRelativeHumidityMetadata'
3803
3804 HXAirRelativeHumidityMsg:
3805 name: HXAirRelativeHumidityMsg
3806 title: HX AirRelativeHumidity Metadata
3807 payload:
3808 $ref: '#/components/schemas/HXAirRelativeHumidityMetadata'
3809
3810 CRAHAirRelativeHumidityMsg:
3811 name: CRAHAirRelativeHumidityMsg
3812 title: CRAH AirRelativeHumidity Metadata
3813 payload:
3814 $ref: '#/components/schemas/CRAHAirRelativeHumidityMetadata'
3815
3816 CRACAirRelativeHumidityMsg:
3817 name: CRACAirRelativeHumidityMsg
3818 title: CRAC AirRelativeHumidity Metadata
3819 payload:
3820 $ref: '#/components/schemas/CRACAirRelativeHumidityMetadata'
3821
3822 AHUAirRelativeHumidityMsg:
3823 name: AHUAirRelativeHumidityMsg
3824 title: AHU AirRelativeHumidity Metadata
3825 payload:
3826 $ref: '#/components/schemas/AHUAirRelativeHumidityMetadata'
3827
3828 ChillerAirRelativeHumidityMsg:
3829 name: ChillerAirRelativeHumidityMsg
3830 title: Chiller AirRelativeHumidity Metadata
3831 payload:
3832 $ref: '#/components/schemas/ChillerAirRelativeHumidityMetadata'
3833
3834 TankAirRelativeHumidityMsg:
3835 name: TankAirRelativeHumidityMsg
3836 title: Tank AirRelativeHumidity Metadata
3837 payload:
3838 $ref: '#/components/schemas/TankAirRelativeHumidityMetadata'
3839
3840 SensorAirRelativeHumidityMsg:
3841 name: SensorAirRelativeHumidityMsg
3842 title: Sensor AirRelativeHumidity Metadata
3843 payload:
3844 $ref: '#/components/schemas/SensorAirRelativeHumidityMetadata'
3845
3846 GenericObjectAirRelativeHumidityMsg:
3847 name: GenericObjectAirRelativeHumidityMsg
3848 title: GenericObject AirRelativeHumidity Metadata
3849 payload:
3850 $ref: '#/components/schemas/GenericObjectAirRelativeHumidityMetadata'
3851
3852 RackLiquidDifferentialPressureSpMsg:
3853 name: RackLiquidDifferentialPressureSpMsg
3854 title: Rack RackLiquidDifferentialPressureSp Metadata
3855 payload:
3856 $ref: '#/components/schemas/RackLiquidDifferentialPressureSpMetadata'
3857
3858 CDULiquidTemperatureMsg:
3859 name: CDULiquidTemperatureMsg
3860 title: CDU LiquidTemperature Metadata
3861 payload:
3862 $ref: '#/components/schemas/CDULiquidTemperatureMetadata'
3863
3864 CDULiquidDifferentialPressureMsg:
3865 name: CDULiquidDifferentialPressureMsg
3866 title: CDU LiquidDifferentialPressure Metadata
3867 payload:
3868 $ref: '#/components/schemas/CDULiquidDifferentialPressureMetadata'
3869
3870 CDULiquidFlowMsg:
3871 name: CDULiquidFlowMsg
3872 title: CDU LiquidFlow Metadata
3873 payload:
3874 $ref: '#/components/schemas/CDULiquidFlowMetadata'
3875
3876 CDULiquidPressureMsg:
3877 name: CDULiquidPressureMsg
3878 title: CDU LiquidPressure Metadata
3879 payload:
3880 $ref: '#/components/schemas/CDULiquidPressureMetadata'
3881
3882 CDUStatusMsg:
3883 name: CDUStatusMsg
3884 title: CDU Status Metadata
3885 payload:
3886 $ref: '#/components/schemas/CDUStatusMetadata'
3887
3888 CDUAvailableMsg:
3889 name: CDUAvailableMsg
3890 title: CDU Available Metadata
3891 payload:
3892 $ref: '#/components/schemas/CDUAvailableMetadata'
3893
3894 CDUValvePositionMsg:
3895 name: CDUValvePositionMsg
3896 title: CDU ValvePosition Metadata
3897 payload:
3898 $ref: '#/components/schemas/CDUValvePositionMetadata'
3899
3900 CDUPumpSpeedMsg:
3901 name: CDUPumpSpeedMsg
3902 title: CDU PumpSpeed Metadata
3903 payload:
3904 $ref: '#/components/schemas/CDUPumpSpeedMetadata'
3905
3906 CDUFanSpeedMsg:
3907 name: CDUFanSpeedMsg
3908 title: CDU FanSpeed Metadata
3909 payload:
3910 $ref: '#/components/schemas/CDUFanSpeedMetadata'
3911
3912 CDUDamperPositionMsg:
3913 name: CDUDamperPositionMsg
3914 title: CDU DamperPosition Metadata
3915 payload:
3916 $ref: '#/components/schemas/CDUDamperPositionMetadata'
3917
3918 CDUAirTemperatureMsg:
3919 name: CDUAirTemperatureMsg
3920 title: CDU AirTemperature Metadata
3921 payload:
3922 $ref: '#/components/schemas/CDUAirTemperatureMetadata'
3923
3924 CDUAirDifferentialPressureMsg:
3925 name: CDUAirDifferentialPressureMsg
3926 title: CDU AirDifferentialPressure Metadata
3927 payload:
3928 $ref: '#/components/schemas/CDUAirDifferentialPressureMetadata'
3929
3930 CDUAirFlowMsg:
3931 name: CDUAirFlowMsg
3932 title: CDU AirFlow Metadata
3933 payload:
3934 $ref: '#/components/schemas/CDUAirFlowMetadata'
3935
3936 CDUAirPressureMsg:
3937 name: CDUAirPressureMsg
3938 title: CDU AirPressure Metadata
3939 payload:
3940 $ref: '#/components/schemas/CDUAirPressureMetadata'
3941
3942 CoolingTowerLiquidTemperatureMsg:
3943 name: CoolingTowerLiquidTemperatureMsg
3944 title: CoolingTower LiquidTemperature Metadata
3945 payload:
3946 $ref: '#/components/schemas/CoolingTowerLiquidTemperatureMetadata'
3947
3948 CoolingTowerLiquidDifferentialPressureMsg:
3949 name: CoolingTowerLiquidDifferentialPressureMsg
3950 title: CoolingTower LiquidDifferentialPressure Metadata
3951 payload:
3952 $ref: '#/components/schemas/CoolingTowerLiquidDifferentialPressureMetadata'
3953
3954 CoolingTowerLiquidFlowMsg:
3955 name: CoolingTowerLiquidFlowMsg
3956 title: CoolingTower LiquidFlow Metadata
3957 payload:
3958 $ref: '#/components/schemas/CoolingTowerLiquidFlowMetadata'
3959
3960 CoolingTowerLiquidPressureMsg:
3961 name: CoolingTowerLiquidPressureMsg
3962 title: CoolingTower LiquidPressure Metadata
3963 payload:
3964 $ref: '#/components/schemas/CoolingTowerLiquidPressureMetadata'
3965
3966 CoolingTowerStatusMsg:
3967 name: CoolingTowerStatusMsg
3968 title: CoolingTower Status Metadata
3969 payload:
3970 $ref: '#/components/schemas/CoolingTowerStatusMetadata'
3971
3972 CoolingTowerAvailableMsg:
3973 name: CoolingTowerAvailableMsg
3974 title: CoolingTower Available Metadata
3975 payload:
3976 $ref: '#/components/schemas/CoolingTowerAvailableMetadata'
3977
3978 CoolingTowerValvePositionMsg:
3979 name: CoolingTowerValvePositionMsg
3980 title: CoolingTower ValvePosition Metadata
3981 payload:
3982 $ref: '#/components/schemas/CoolingTowerValvePositionMetadata'
3983
3984 CoolingTowerPumpSpeedMsg:
3985 name: CoolingTowerPumpSpeedMsg
3986 title: CoolingTower PumpSpeed Metadata
3987 payload:
3988 $ref: '#/components/schemas/CoolingTowerPumpSpeedMetadata'
3989
3990 CoolingTowerFanSpeedMsg:
3991 name: CoolingTowerFanSpeedMsg
3992 title: CoolingTower FanSpeed Metadata
3993 payload:
3994 $ref: '#/components/schemas/CoolingTowerFanSpeedMetadata'
3995
3996 CoolingTowerDamperPositionMsg:
3997 name: CoolingTowerDamperPositionMsg
3998 title: CoolingTower DamperPosition Metadata
3999 payload:
4000 $ref: '#/components/schemas/CoolingTowerDamperPositionMetadata'
4001
4002 CoolingTowerAirTemperatureMsg:
4003 name: CoolingTowerAirTemperatureMsg
4004 title: CoolingTower AirTemperature Metadata
4005 payload:
4006 $ref: '#/components/schemas/CoolingTowerAirTemperatureMetadata'
4007
4008 CoolingTowerAirDifferentialPressureMsg:
4009 name: CoolingTowerAirDifferentialPressureMsg
4010 title: CoolingTower AirDifferentialPressure Metadata
4011 payload:
4012 $ref: '#/components/schemas/CoolingTowerAirDifferentialPressureMetadata'
4013
4014 CoolingTowerAirFlowMsg:
4015 name: CoolingTowerAirFlowMsg
4016 title: CoolingTower AirFlow Metadata
4017 payload:
4018 $ref: '#/components/schemas/CoolingTowerAirFlowMetadata'
4019
4020 CoolingTowerAirPressureMsg:
4021 name: CoolingTowerAirPressureMsg
4022 title: CoolingTower AirPressure Metadata
4023 payload:
4024 $ref: '#/components/schemas/CoolingTowerAirPressureMetadata'
4025
4026 HXLiquidTemperatureMsg:
4027 name: HXLiquidTemperatureMsg
4028 title: HX LiquidTemperature Metadata
4029 payload:
4030 $ref: '#/components/schemas/HXLiquidTemperatureMetadata'
4031
4032 HXLiquidDifferentialPressureMsg:
4033 name: HXLiquidDifferentialPressureMsg
4034 title: HX LiquidDifferentialPressure Metadata
4035 payload:
4036 $ref: '#/components/schemas/HXLiquidDifferentialPressureMetadata'
4037
4038 HXLiquidFlowMsg:
4039 name: HXLiquidFlowMsg
4040 title: HX LiquidFlow Metadata
4041 payload:
4042 $ref: '#/components/schemas/HXLiquidFlowMetadata'
4043
4044 HXLiquidPressureMsg:
4045 name: HXLiquidPressureMsg
4046 title: HX LiquidPressure Metadata
4047 payload:
4048 $ref: '#/components/schemas/HXLiquidPressureMetadata'
4049
4050 HXStatusMsg:
4051 name: HXStatusMsg
4052 title: HX Status Metadata
4053 payload:
4054 $ref: '#/components/schemas/HXStatusMetadata'
4055
4056 HXAvailableMsg:
4057 name: HXAvailableMsg
4058 title: HX Available Metadata
4059 payload:
4060 $ref: '#/components/schemas/HXAvailableMetadata'
4061
4062 HXValvePositionMsg:
4063 name: HXValvePositionMsg
4064 title: HX ValvePosition Metadata
4065 payload:
4066 $ref: '#/components/schemas/HXValvePositionMetadata'
4067
4068 HXPumpSpeedMsg:
4069 name: HXPumpSpeedMsg
4070 title: HX PumpSpeed Metadata
4071 payload:
4072 $ref: '#/components/schemas/HXPumpSpeedMetadata'
4073
4074 HXFanSpeedMsg:
4075 name: HXFanSpeedMsg
4076 title: HX FanSpeed Metadata
4077 payload:
4078 $ref: '#/components/schemas/HXFanSpeedMetadata'
4079
4080 HXDamperPositionMsg:
4081 name: HXDamperPositionMsg
4082 title: HX DamperPosition Metadata
4083 payload:
4084 $ref: '#/components/schemas/HXDamperPositionMetadata'
4085
4086 HXAirTemperatureMsg:
4087 name: HXAirTemperatureMsg
4088 title: HX AirTemperature Metadata
4089 payload:
4090 $ref: '#/components/schemas/HXAirTemperatureMetadata'
4091
4092 HXAirDifferentialPressureMsg:
4093 name: HXAirDifferentialPressureMsg
4094 title: HX AirDifferentialPressure Metadata
4095 payload:
4096 $ref: '#/components/schemas/HXAirDifferentialPressureMetadata'
4097
4098 HXAirFlowMsg:
4099 name: HXAirFlowMsg
4100 title: HX AirFlow Metadata
4101 payload:
4102 $ref: '#/components/schemas/HXAirFlowMetadata'
4103
4104 HXAirPressureMsg:
4105 name: HXAirPressureMsg
4106 title: HX AirPressure Metadata
4107 payload:
4108 $ref: '#/components/schemas/HXAirPressureMetadata'
4109
4110 CRAHLiquidTemperatureMsg:
4111 name: CRAHLiquidTemperatureMsg
4112 title: CRAH LiquidTemperature Metadata
4113 payload:
4114 $ref: '#/components/schemas/CRAHLiquidTemperatureMetadata'
4115
4116 CRAHLiquidDifferentialPressureMsg:
4117 name: CRAHLiquidDifferentialPressureMsg
4118 title: CRAH LiquidDifferentialPressure Metadata
4119 payload:
4120 $ref: '#/components/schemas/CRAHLiquidDifferentialPressureMetadata'
4121
4122 CRAHLiquidFlowMsg:
4123 name: CRAHLiquidFlowMsg
4124 title: CRAH LiquidFlow Metadata
4125 payload:
4126 $ref: '#/components/schemas/CRAHLiquidFlowMetadata'
4127
4128 CRAHLiquidPressureMsg:
4129 name: CRAHLiquidPressureMsg
4130 title: CRAH LiquidPressure Metadata
4131 payload:
4132 $ref: '#/components/schemas/CRAHLiquidPressureMetadata'
4133
4134 CRAHStatusMsg:
4135 name: CRAHStatusMsg
4136 title: CRAH Status Metadata
4137 payload:
4138 $ref: '#/components/schemas/CRAHStatusMetadata'
4139
4140 CRAHAvailableMsg:
4141 name: CRAHAvailableMsg
4142 title: CRAH Available Metadata
4143 payload:
4144 $ref: '#/components/schemas/CRAHAvailableMetadata'
4145
4146 CRAHValvePositionMsg:
4147 name: CRAHValvePositionMsg
4148 title: CRAH ValvePosition Metadata
4149 payload:
4150 $ref: '#/components/schemas/CRAHValvePositionMetadata'
4151
4152 CRAHPumpSpeedMsg:
4153 name: CRAHPumpSpeedMsg
4154 title: CRAH PumpSpeed Metadata
4155 payload:
4156 $ref: '#/components/schemas/CRAHPumpSpeedMetadata'
4157
4158 CRAHFanSpeedMsg:
4159 name: CRAHFanSpeedMsg
4160 title: CRAH FanSpeed Metadata
4161 payload:
4162 $ref: '#/components/schemas/CRAHFanSpeedMetadata'
4163
4164 CRAHDamperPositionMsg:
4165 name: CRAHDamperPositionMsg
4166 title: CRAH DamperPosition Metadata
4167 payload:
4168 $ref: '#/components/schemas/CRAHDamperPositionMetadata'
4169
4170 CRAHAirTemperatureMsg:
4171 name: CRAHAirTemperatureMsg
4172 title: CRAH AirTemperature Metadata
4173 payload:
4174 $ref: '#/components/schemas/CRAHAirTemperatureMetadata'
4175
4176 CRAHAirDifferentialPressureMsg:
4177 name: CRAHAirDifferentialPressureMsg
4178 title: CRAH AirDifferentialPressure Metadata
4179 payload:
4180 $ref: '#/components/schemas/CRAHAirDifferentialPressureMetadata'
4181
4182 CRAHAirFlowMsg:
4183 name: CRAHAirFlowMsg
4184 title: CRAH AirFlow Metadata
4185 payload:
4186 $ref: '#/components/schemas/CRAHAirFlowMetadata'
4187
4188 CRAHAirPressureMsg:
4189 name: CRAHAirPressureMsg
4190 title: CRAH AirPressure Metadata
4191 payload:
4192 $ref: '#/components/schemas/CRAHAirPressureMetadata'
4193
4194 CRACLiquidTemperatureMsg:
4195 name: CRACLiquidTemperatureMsg
4196 title: CRAC LiquidTemperature Metadata
4197 payload:
4198 $ref: '#/components/schemas/CRACLiquidTemperatureMetadata'
4199
4200 CRACLiquidDifferentialPressureMsg:
4201 name: CRACLiquidDifferentialPressureMsg
4202 title: CRAC LiquidDifferentialPressure Metadata
4203 payload:
4204 $ref: '#/components/schemas/CRACLiquidDifferentialPressureMetadata'
4205
4206 CRACLiquidFlowMsg:
4207 name: CRACLiquidFlowMsg
4208 title: CRAC LiquidFlow Metadata
4209 payload:
4210 $ref: '#/components/schemas/CRACLiquidFlowMetadata'
4211
4212 CRACLiquidPressureMsg:
4213 name: CRACLiquidPressureMsg
4214 title: CRAC LiquidPressure Metadata
4215 payload:
4216 $ref: '#/components/schemas/CRACLiquidPressureMetadata'
4217
4218 CRACStatusMsg:
4219 name: CRACStatusMsg
4220 title: CRAC Status Metadata
4221 payload:
4222 $ref: '#/components/schemas/CRACStatusMetadata'
4223
4224 CRACAvailableMsg:
4225 name: CRACAvailableMsg
4226 title: CRAC Available Metadata
4227 payload:
4228 $ref: '#/components/schemas/CRACAvailableMetadata'
4229
4230 CRACValvePositionMsg:
4231 name: CRACValvePositionMsg
4232 title: CRAC ValvePosition Metadata
4233 payload:
4234 $ref: '#/components/schemas/CRACValvePositionMetadata'
4235
4236 CRACPumpSpeedMsg:
4237 name: CRACPumpSpeedMsg
4238 title: CRAC PumpSpeed Metadata
4239 payload:
4240 $ref: '#/components/schemas/CRACPumpSpeedMetadata'
4241
4242 CRACFanSpeedMsg:
4243 name: CRACFanSpeedMsg
4244 title: CRAC FanSpeed Metadata
4245 payload:
4246 $ref: '#/components/schemas/CRACFanSpeedMetadata'
4247
4248 CRACDamperPositionMsg:
4249 name: CRACDamperPositionMsg
4250 title: CRAC DamperPosition Metadata
4251 payload:
4252 $ref: '#/components/schemas/CRACDamperPositionMetadata'
4253
4254 CRACAirTemperatureMsg:
4255 name: CRACAirTemperatureMsg
4256 title: CRAC AirTemperature Metadata
4257 payload:
4258 $ref: '#/components/schemas/CRACAirTemperatureMetadata'
4259
4260 CRACAirDifferentialPressureMsg:
4261 name: CRACAirDifferentialPressureMsg
4262 title: CRAC AirDifferentialPressure Metadata
4263 payload:
4264 $ref: '#/components/schemas/CRACAirDifferentialPressureMetadata'
4265
4266 CRACAirFlowMsg:
4267 name: CRACAirFlowMsg
4268 title: CRAC AirFlow Metadata
4269 payload:
4270 $ref: '#/components/schemas/CRACAirFlowMetadata'
4271
4272 CRACAirPressureMsg:
4273 name: CRACAirPressureMsg
4274 title: CRAC AirPressure Metadata
4275 payload:
4276 $ref: '#/components/schemas/CRACAirPressureMetadata'
4277
4278 AHULiquidTemperatureMsg:
4279 name: AHULiquidTemperatureMsg
4280 title: AHU LiquidTemperature Metadata
4281 payload:
4282 $ref: '#/components/schemas/AHULiquidTemperatureMetadata'
4283
4284 AHULiquidDifferentialPressureMsg:
4285 name: AHULiquidDifferentialPressureMsg
4286 title: AHU LiquidDifferentialPressure Metadata
4287 payload:
4288 $ref: '#/components/schemas/AHULiquidDifferentialPressureMetadata'
4289
4290 AHULiquidFlowMsg:
4291 name: AHULiquidFlowMsg
4292 title: AHU LiquidFlow Metadata
4293 payload:
4294 $ref: '#/components/schemas/AHULiquidFlowMetadata'
4295
4296 AHULiquidPressureMsg:
4297 name: AHULiquidPressureMsg
4298 title: AHU LiquidPressure Metadata
4299 payload:
4300 $ref: '#/components/schemas/AHULiquidPressureMetadata'
4301
4302 AHUStatusMsg:
4303 name: AHUStatusMsg
4304 title: AHU Status Metadata
4305 payload:
4306 $ref: '#/components/schemas/AHUStatusMetadata'
4307
4308 AHUAvailableMsg:
4309 name: AHUAvailableMsg
4310 title: AHU Available Metadata
4311 payload:
4312 $ref: '#/components/schemas/AHUAvailableMetadata'
4313
4314 AHUValvePositionMsg:
4315 name: AHUValvePositionMsg
4316 title: AHU ValvePosition Metadata
4317 payload:
4318 $ref: '#/components/schemas/AHUValvePositionMetadata'
4319
4320 AHUPumpSpeedMsg:
4321 name: AHUPumpSpeedMsg
4322 title: AHU PumpSpeed Metadata
4323 payload:
4324 $ref: '#/components/schemas/AHUPumpSpeedMetadata'
4325
4326 AHUFanSpeedMsg:
4327 name: AHUFanSpeedMsg
4328 title: AHU FanSpeed Metadata
4329 payload:
4330 $ref: '#/components/schemas/AHUFanSpeedMetadata'
4331
4332 AHUDamperPositionMsg:
4333 name: AHUDamperPositionMsg
4334 title: AHU DamperPosition Metadata
4335 payload:
4336 $ref: '#/components/schemas/AHUDamperPositionMetadata'
4337
4338 AHUAirTemperatureMsg:
4339 name: AHUAirTemperatureMsg
4340 title: AHU AirTemperature Metadata
4341 payload:
4342 $ref: '#/components/schemas/AHUAirTemperatureMetadata'
4343
4344 AHUAirDifferentialPressureMsg:
4345 name: AHUAirDifferentialPressureMsg
4346 title: AHU AirDifferentialPressure Metadata
4347 payload:
4348 $ref: '#/components/schemas/AHUAirDifferentialPressureMetadata'
4349
4350 AHUAirFlowMsg:
4351 name: AHUAirFlowMsg
4352 title: AHU AirFlow Metadata
4353 payload:
4354 $ref: '#/components/schemas/AHUAirFlowMetadata'
4355
4356 AHUAirPressureMsg:
4357 name: AHUAirPressureMsg
4358 title: AHU AirPressure Metadata
4359 payload:
4360 $ref: '#/components/schemas/AHUAirPressureMetadata'
4361
4362 ChillerLiquidTemperatureMsg:
4363 name: ChillerLiquidTemperatureMsg
4364 title: Chiller LiquidTemperature Metadata
4365 payload:
4366 $ref: '#/components/schemas/ChillerLiquidTemperatureMetadata'
4367
4368 ChillerLiquidDifferentialPressureMsg:
4369 name: ChillerLiquidDifferentialPressureMsg
4370 title: Chiller LiquidDifferentialPressure Metadata
4371 payload:
4372 $ref: '#/components/schemas/ChillerLiquidDifferentialPressureMetadata'
4373
4374 ChillerLiquidFlowMsg:
4375 name: ChillerLiquidFlowMsg
4376 title: Chiller LiquidFlow Metadata
4377 payload:
4378 $ref: '#/components/schemas/ChillerLiquidFlowMetadata'
4379
4380 ChillerLiquidPressureMsg:
4381 name: ChillerLiquidPressureMsg
4382 title: Chiller LiquidPressure Metadata
4383 payload:
4384 $ref: '#/components/schemas/ChillerLiquidPressureMetadata'
4385
4386 ChillerStatusMsg:
4387 name: ChillerStatusMsg
4388 title: Chiller Status Metadata
4389 payload:
4390 $ref: '#/components/schemas/ChillerStatusMetadata'
4391
4392 ChillerAvailableMsg:
4393 name: ChillerAvailableMsg
4394 title: Chiller Available Metadata
4395 payload:
4396 $ref: '#/components/schemas/ChillerAvailableMetadata'
4397
4398 ChillerValvePositionMsg:
4399 name: ChillerValvePositionMsg
4400 title: Chiller ValvePosition Metadata
4401 payload:
4402 $ref: '#/components/schemas/ChillerValvePositionMetadata'
4403
4404 ChillerPumpSpeedMsg:
4405 name: ChillerPumpSpeedMsg
4406 title: Chiller PumpSpeed Metadata
4407 payload:
4408 $ref: '#/components/schemas/ChillerPumpSpeedMetadata'
4409
4410 ChillerFanSpeedMsg:
4411 name: ChillerFanSpeedMsg
4412 title: Chiller FanSpeed Metadata
4413 payload:
4414 $ref: '#/components/schemas/ChillerFanSpeedMetadata'
4415
4416 ChillerDamperPositionMsg:
4417 name: ChillerDamperPositionMsg
4418 title: Chiller DamperPosition Metadata
4419 payload:
4420 $ref: '#/components/schemas/ChillerDamperPositionMetadata'
4421
4422 ChillerAirTemperatureMsg:
4423 name: ChillerAirTemperatureMsg
4424 title: Chiller AirTemperature Metadata
4425 payload:
4426 $ref: '#/components/schemas/ChillerAirTemperatureMetadata'
4427
4428 ChillerAirDifferentialPressureMsg:
4429 name: ChillerAirDifferentialPressureMsg
4430 title: Chiller AirDifferentialPressure Metadata
4431 payload:
4432 $ref: '#/components/schemas/ChillerAirDifferentialPressureMetadata'
4433
4434 ChillerAirFlowMsg:
4435 name: ChillerAirFlowMsg
4436 title: Chiller AirFlow Metadata
4437 payload:
4438 $ref: '#/components/schemas/ChillerAirFlowMetadata'
4439
4440 ChillerAirPressureMsg:
4441 name: ChillerAirPressureMsg
4442 title: Chiller AirPressure Metadata
4443 payload:
4444 $ref: '#/components/schemas/ChillerAirPressureMetadata'
4445 GenericEquipmentPointMsg:
4446 name: GenericEquipmentPointMsg
4447 title: GenericEquipment GenericPoint Metadata
4448 payload:
4449 $ref: '#/components/schemas/GenericEquipmentPointMetadata'
4450
4451 # Generic PowerMeter
4452 GenericPowerMeterPointMsg:
4453 name: GenericPowerMeterPointMsg
4454 title: PowerMeter GenericPoint Metadata
4455 payload:
4456 $ref: '#/components/schemas/GenericPowerMeterPointMetadata'
4457
4458 # Tank
4459 TankLiquidTemperatureMsg:
4460 name: TankLiquidTemperatureMsg
4461 title: Tank LiquidTemperature Metadata
4462 payload:
4463 $ref: '#/components/schemas/TankLiquidTemperatureMetadata'
4464
4465 TankLiquidDifferentialPressureMsg:
4466 name: TankLiquidDifferentialPressureMsg
4467 title: Tank LiquidDifferentialPressure Metadata
4468 payload:
4469 $ref: '#/components/schemas/TankLiquidDifferentialPressureMetadata'
4470
4471 TankLiquidFlowMsg:
4472 name: TankLiquidFlowMsg
4473 title: Tank LiquidFlow Metadata
4474 payload:
4475 $ref: '#/components/schemas/TankLiquidFlowMetadata'
4476
4477 TankLiquidPressureMsg:
4478 name: TankLiquidPressureMsg
4479 title: Tank LiquidPressure Metadata
4480 payload:
4481 $ref: '#/components/schemas/TankLiquidPressureMetadata'
4482
4483 TankStatusMsg:
4484 name: TankStatusMsg
4485 title: Tank Status Metadata
4486 payload:
4487 $ref: '#/components/schemas/TankStatusMetadata'
4488
4489 TankAvailableMsg:
4490 name: TankAvailableMsg
4491 title: Tank Available Metadata
4492 payload:
4493 $ref: '#/components/schemas/TankAvailableMetadata'
4494
4495 TankValvePositionMsg:
4496 name: TankValvePositionMsg
4497 title: Tank ValvePosition Metadata
4498 payload:
4499 $ref: '#/components/schemas/TankValvePositionMetadata'
4500
4501 TankPumpSpeedMsg:
4502 name: TankPumpSpeedMsg
4503 title: Tank PumpSpeed Metadata
4504 payload:
4505 $ref: '#/components/schemas/TankPumpSpeedMetadata'
4506
4507 TankFanSpeedMsg:
4508 name: TankFanSpeedMsg
4509 title: Tank FanSpeed Metadata
4510 payload:
4511 $ref: '#/components/schemas/TankFanSpeedMetadata'
4512
4513 TankDamperPositionMsg:
4514 name: TankDamperPositionMsg
4515 title: Tank DamperPosition Metadata
4516 payload:
4517 $ref: '#/components/schemas/TankDamperPositionMetadata'
4518
4519 TankAirTemperatureMsg:
4520 name: TankAirTemperatureMsg
4521 title: Tank AirTemperature Metadata
4522 payload:
4523 $ref: '#/components/schemas/TankAirTemperatureMetadata'
4524
4525 TankAirDifferentialPressureMsg:
4526 name: TankAirDifferentialPressureMsg
4527 title: Tank AirDifferentialPressure Metadata
4528 payload:
4529 $ref: '#/components/schemas/TankAirDifferentialPressureMetadata'
4530
4531 TankAirFlowMsg:
4532 name: TankAirFlowMsg
4533 title: Tank AirFlow Metadata
4534 payload:
4535 $ref: '#/components/schemas/TankAirFlowMetadata'
4536
4537 TankAirPressureMsg:
4538 name: TankAirPressureMsg
4539 title: Tank AirPressure Metadata
4540 payload:
4541 $ref: '#/components/schemas/TankAirPressureMetadata'
4542
4543 # GenericObject
4544 GenericObjectLiquidTemperatureMsg:
4545 name: GenericObjectLiquidTemperatureMsg
4546 title: GenericObject LiquidTemperature Metadata
4547 payload:
4548 $ref: '#/components/schemas/GenericObjectLiquidTemperatureMetadata'
4549
4550 GenericObjectLiquidDifferentialPressureMsg:
4551 name: GenericObjectLiquidDifferentialPressureMsg
4552 title: GenericObject LiquidDifferentialPressure Metadata
4553 payload:
4554 $ref: '#/components/schemas/GenericObjectLiquidDifferentialPressureMetadata'
4555
4556 GenericObjectLiquidFlowMsg:
4557 name: GenericObjectLiquidFlowMsg
4558 title: GenericObject LiquidFlow Metadata
4559 payload:
4560 $ref: '#/components/schemas/GenericObjectLiquidFlowMetadata'
4561
4562 GenericObjectLiquidPressureMsg:
4563 name: GenericObjectLiquidPressureMsg
4564 title: GenericObject LiquidPressure Metadata
4565 payload:
4566 $ref: '#/components/schemas/GenericObjectLiquidPressureMetadata'
4567
4568 GenericObjectStatusMsg:
4569 name: GenericObjectStatusMsg
4570 title: GenericObject Status Metadata
4571 payload:
4572 $ref: '#/components/schemas/GenericObjectStatusMetadata'
4573
4574 GenericObjectAvailableMsg:
4575 name: GenericObjectAvailableMsg
4576 title: GenericObject Available Metadata
4577 payload:
4578 $ref: '#/components/schemas/GenericObjectAvailableMetadata'
4579
4580 GenericObjectValvePositionMsg:
4581 name: GenericObjectValvePositionMsg
4582 title: GenericObject ValvePosition Metadata
4583 payload:
4584 $ref: '#/components/schemas/GenericObjectValvePositionMetadata'
4585
4586 GenericObjectPumpSpeedMsg:
4587 name: GenericObjectPumpSpeedMsg
4588 title: GenericObject PumpSpeed Metadata
4589 payload:
4590 $ref: '#/components/schemas/GenericObjectPumpSpeedMetadata'
4591
4592 GenericObjectFanSpeedMsg:
4593 name: GenericObjectFanSpeedMsg
4594 title: GenericObject FanSpeed Metadata
4595 payload:
4596 $ref: '#/components/schemas/GenericObjectFanSpeedMetadata'
4597
4598 GenericObjectDamperPositionMsg:
4599 name: GenericObjectDamperPositionMsg
4600 title: GenericObject DamperPosition Metadata
4601 payload:
4602 $ref: '#/components/schemas/GenericObjectDamperPositionMetadata'
4603
4604 GenericObjectAirTemperatureMsg:
4605 name: GenericObjectAirTemperatureMsg
4606 title: GenericObject AirTemperature Metadata
4607 payload:
4608 $ref: '#/components/schemas/GenericObjectAirTemperatureMetadata'
4609
4610 GenericObjectAirDifferentialPressureMsg:
4611 name: GenericObjectAirDifferentialPressureMsg
4612 title: GenericObject AirDifferentialPressure Metadata
4613 payload:
4614 $ref: '#/components/schemas/GenericObjectAirDifferentialPressureMetadata'
4615
4616 GenericObjectAirFlowMsg:
4617 name: GenericObjectAirFlowMsg
4618 title: GenericObject AirFlow Metadata
4619 payload:
4620 $ref: '#/components/schemas/GenericObjectAirFlowMetadata'
4621
4622 GenericObjectAirPressureMsg:
4623 name: GenericObjectAirPressureMsg
4624 title: GenericObject AirPressure Metadata
4625 payload:
4626 $ref: '#/components/schemas/GenericObjectAirPressureMetadata'
4627
4628 GenericObjectLiquidTemperatureSpRequestMsg:
4629 name: GenericObjectLiquidTemperatureSpRequestMsg
4630 title: GenericObject LiquidTemperatureSpRequest Metadata
4631 payload:
4632 $ref: '#/components/schemas/GenericObjectLiquidTemperatureSpRequestMetadata'
4633
4634 GenericObjectSoundMsg:
4635 name: GenericObjectSoundMsg
4636 title: GenericObject Sound Metadata
4637 payload:
4638 $ref: '#/components/schemas/GenericObjectSoundMetadata'
4639
4640 schemas:
4641
4642 # =========================================================================
4643 # SECTION 1 — Primitive building-block schemas
4644 #
4645 # Every field in an allOf/oneOf is a named $ref — no anonymous schemas.
4646 # Naming convention:
4647 # *Identifiers — the object-identity fields added by a base schema
4648 # *Fields — the pointType-specific fields (pointType enum + engUnit)
4649 # *Mode — a oneOf variant for identifier selection (named-object or associate)
4650 # *CommonFields — optional fields shared across a category
4651 # =========================================================================
4652
4653 # -------------------------------------------------------------------------
4654 # 1a. Shared primitives
4655 # -------------------------------------------------------------------------
4656
4657 MetadataBase:
4658 type: object
4659 description: Minimum fields present on every metadata message.
4660 required:
4661 - objectType
4662 - pointType
4663 properties:
4664 objectType:
4665 type: string
4666 description: Canonical object type. Matches the objectType MQTT topic segment.
4667 pointType:
4668 type: string
4669 description: Canonical point type. Matches the pointType MQTT topic segment.
4670
4671 IntegrationPublisherFields:
4672 type: object
4673 description: >
4674 Fields added to metadata for integration-published points. Integrations
4675 MUST publish values to the exact topic corresponding to `integration` — do not construct it
4676 independently.
4677 required:
4678 - integration
4679 properties:
4680 integration:
4681 type: string
4682 description: Integration identifier responsible for publishing this value.
4683
4684 StateTextField:
4685 type: object
4686 description: Required for state/status/alarm points that carry no engineering unit.
4687 required:
4688 - stateText
4689 properties:
4690 stateText:
4691 type: array
4692 description: >
4693 State label mapping. Each entry maps a numeric state value to its
4694 human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`).
4695 items:
4696 type: object
4697 required: [value, text]
4698 properties:
4699 value:
4700 type: integer
4701 description: Numeric state value.
4702 text:
4703 type: string
4704 description: Human-readable label for this state.
4705 additionalProperties: false
4706
4707 EquipmentPointEngUnit:
4708 type: object
4709 description: Requires a non-empty engUnit string (mutually exclusive with stateText).
4710 required:
4711 - engUnit
4712 properties:
4713 engUnit:
4714 type: string
4715 description: Engineering unit for the measurement.
4716
4717 EquipmentMeasurementModeBase:
4718 description: >
4719 Base for equipment measurement metadata. Two independent XOR constraints apply:
4720 - Identifier: named-object mode (objectName + objectId required,
4721 associateId prohibited) XOR associate mode (associateId required, no objectName/objectId).
4722 - Measurement: engUnit required XOR stateText required.
4723 These two constraints are fully independent — all four combinations are valid.
4724 Combines MetadataBase, EquipmentCommonFields, and both independent oneOf constraints.
4725 allOf:
4726 - $ref: '#/components/schemas/MetadataBase'
4727 - $ref: '#/components/schemas/EquipmentCommonFields'
4728 - oneOf:
4729 - $ref: '#/components/schemas/EquipmentNamedObjectMode'
4730 - $ref: '#/components/schemas/EquipmentAssociateMode'
4731 - oneOf:
4732 - $ref: '#/components/schemas/EquipmentPointEngUnit'
4733 - $ref: '#/components/schemas/StateTextField'
4734
4735 # -------------------------------------------------------------------------
4736 # 1b. Rack identifier fragment
4737 # -------------------------------------------------------------------------
4738
4739 rackLocationIdentifiers:
4740 type: object
4741 description: Rack-specific identifier fields added to all Rack metadata messages.
4742 required:
4743 - rackLocationName
4744 - rackLocationId
4745 properties:
4746 rackLocationName:
4747 type: string
4748 description: Human-readable rack name as defined by the BMS.
4749 rackLocationId:
4750 type: string
4751 description: Stable unique identifier for the rack.
4752
4753 # -------------------------------------------------------------------------
4754 # 1c. PowerMeter identifier fragment
4755 # -------------------------------------------------------------------------
4756
4757 PowerMeterIdentifiers:
4758 type: object
4759 description: PowerMeter-specific identifier fields added to all PowerMeter metadata messages.
4760 required:
4761 - objectName
4762 - objectId
4763 - servesId
4764 properties:
4765 objectName:
4766 type: string
4767 description: Human-readable name of the electrical device.
4768 objectId:
4769 type: string
4770 description: Stable unique identifier for the electrical device.
4771 servesId:
4772 type: array
4773 items:
4774 type: string
4775 description: List of objectIds of entities served by this power meter.
4776
4777 # -------------------------------------------------------------------------
4778 # 1d. Generic Equipment identifier fragments
4779 # -------------------------------------------------------------------------
4780
4781 EquipmentCommonFields:
4782 type: object
4783 description: >
4784 Optional fields common to all generic equipment metadata, regardless
4785 of identifier mode.
4786 properties:
4787 processArea:
4788 type: array
4789 items:
4790 type: string
4791 description: >
4792 List of process areas or sub-system locations within the
4793 equipment
4794
4795 EquipmentNamedObjectMode:
4796 type: object
4797 description: |
4798 **Object Mode**: use when the object is identified directly
4799 by name and ID.
4800
4801 - `objectName` and `objectId` are **required**.
4802 - `servesId` is **optional** in Named-object mode.
4803 - `associateId` must **not** be present.
4804
4805 Incompatible with `EquipmentAssociateMode` — validators enforce this via
4806 the parent `oneOf`.
4807 required:
4808 - objectName
4809 - objectId
4810 properties:
4811 objectName:
4812 type: string
4813 description: Human-readable equipment name.
4814 objectId:
4815 type: string
4816 description: Stable unique identifier for the equipment.
4817 servesId:
4818 type: array
4819 items:
4820 type: string
4821 description: >
4822 Optional list of objectIds of entities this equipment serves. Only valid in Named-object mode.
4823 Only valid in Named-object mode — must not appear in Associate mode.
4824 not:
4825 properties:
4826 associateId:
4827 type: string
4828 required:
4829 - associateId
4830
4831 EquipmentAssociateMode:
4832 type: object
4833 description: |
4834 *Associate Mode*: use when the object is referenced via an
4835 association identifier.
4836
4837 - `associateId` is **required**.
4838 - `objectName`, `objectId`, and `servesId` must **not** be present.
4839
4840 Incompatible with `EquipmentNamedObjectMode` — validators enforce this
4841 via the parent `oneOf`.
4842 required:
4843 - associateId
4844 properties:
4845 associateId:
4846 type: string
4847 description: Identifier of the associated entity.
4848 not:
4849 anyOf:
4850 - properties:
4851 objectName:
4852 type: string
4853 required:
4854 - objectName
4855 - properties:
4856 objectId:
4857 type: string
4858 required:
4859 - objectId
4860 - properties:
4861 servesId:
4862 type: array
4863 items:
4864 type: string
4865 required:
4866 - servesId
4867
4868 EquipmentIntegrationIdentifierFields:
4869 type: object
4870 description: >
4871 Extends EquipmentIntegrationMetadataBase: adds `integration` for integration-published equipment points.
4872 required:
4873 - integration
4874 properties:
4875 integration:
4876 type: string
4877 description: Integration responsible for publishing this value.
4878
4879 # -------------------------------------------------------------------------
4880 # 1e. System identifier fragments
4881 # -------------------------------------------------------------------------
4882
4883 SystemIntegrationIdentifiers:
4884 type: object
4885 description: >
4886 Required `integration` field for integration-published System
4887 metadata messages.
4888 required:
4889 - integration
4890 properties:
4891 integration:
4892 type: string
4893 description: Integration identifier.
4894
4895 # =========================================================================
4896 # SECTION 2 — Composed base schemas
4897 #
4898 # Each allOf element is a named $ref — no anonymous schemas.
4899 # =========================================================================
4900
4901 RackMetadataBase:
4902 description: >
4903 Composed base for all BMS-published Rack metadata messages.
4904 Combines MetadataBase with rackLocationIdentifiers.
4905 allOf:
4906 - $ref: '#/components/schemas/MetadataBase'
4907 - $ref: '#/components/schemas/rackLocationIdentifiers'
4908
4909 RackIntegrationMetadataBase:
4910 description: >
4911 Composed base for Integration-published Rack metadata messages.
4912 Extends RackMetadataBase with IntegrationPublisherFields.
4913 allOf:
4914 - $ref: '#/components/schemas/RackMetadataBase'
4915 - $ref: '#/components/schemas/IntegrationPublisherFields'
4916
4917 PowerMeterMetadataBase:
4918 description: >
4919 Composed base for all PowerMeter metadata messages.
4920 Combines MetadataBase with PowerMeterIdentifiers.
4921 allOf:
4922 - $ref: '#/components/schemas/MetadataBase'
4923 - $ref: '#/components/schemas/PowerMeterIdentifiers'
4924
4925 EquipmentMetadataBase:
4926 description: |
4927 Composed base for all generic equipment metadata.
4928
4929 Combines MetadataBase + EquipmentCommonFields + exactly one identifier
4930 mode from the `oneOf`:
4931 - **ObjectMode**: objectName + objectId required,
4932 servesId optional, associateId prohibited.
4933 - **Associate Mode**: associateId required, all name/id/serves
4934 fields prohibited.
4935 allOf:
4936 - $ref: '#/components/schemas/MetadataBase'
4937 - $ref: '#/components/schemas/EquipmentCommonFields'
4938 - oneOf:
4939 - $ref: '#/components/schemas/EquipmentNamedObjectMode'
4940 - $ref: '#/components/schemas/EquipmentAssociateMode'
4941
4942 EquipmentIntegrationMetadataBase:
4943 description: >
4944 Extends EquipmentMetadataBase for integration-published equipment points.
4945 Adds EquipmentIntegrationIdentifierFields (integration required).
4946 allOf:
4947 - $ref: '#/components/schemas/EquipmentMetadataBase'
4948 - $ref: '#/components/schemas/EquipmentIntegrationIdentifierFields'
4949
4950 SystemIntegrationMetadataBase:
4951 description: >
4952 Composed base for Integration-published System metadata messages.
4953 Combines MetadataBase with SystemIntegrationIdentifiers.
4954 allOf:
4955 - $ref: '#/components/schemas/MetadataBase'
4956 - $ref: '#/components/schemas/SystemIntegrationIdentifiers'
4957
4958 # =========================================================================
4959 # SECTION 3 — PointType enum schemas (for code generation / validation)
4960 # =========================================================================
4961
4962 RackBmsPointType:
4963 type: string
4964 description: Valid pointType values for BMS-published Rack points.
4965 enum:
4966 - RackLiquidSupplyTemperature
4967 - RackLiquidReturnTemperature
4968 - RackLiquidFlow
4969 - RackLiquidDifferentialPressure
4970 - RackLiquidDifferentialPressureSp
4971 - RackControlValvePosition
4972 - RackPower
4973 - RackLeakDetect
4974 - RackLeakSensorFault
4975 - RackLiquidIsolationStatus
4976 - RackElectricalIsolationStatus
4977
4978 RackIntegrationPointType:
4979 type: string
4980 description: Valid pointType values for Integration-published Rack points.
4981 enum:
4982 - RackLeakDetectTray
4983 - RackLiquidIsolationRequest
4984 - RackElectricalIsolationRequest
4985
4986 PowerMeterPointType:
4987 type: string
4988 description: Valid pointType values for PowerMeter points (all BMS-published).
4989 enum:
4990 - Voltage
4991 - PowerFactor
4992 - Frequency
4993 - ApparentPower
4994 - ActivePower
4995 - Current
4996 - CurrentLimit
4997 - PhaseCurrent
4998
4999 EquipmentBmsPointType:
5000 type: string
5001 description: Valid pointType values for BMS-published generic equipment points.
5002 enum:
5003 - LiquidTemperature
5004 - LiquidDifferentialPressure
5005 - LiquidFlow
5006 - LiquidPressure
5007 - Status
5008 - Available
5009 - ValvePosition
5010 - PumpSpeed
5011 - FanSpeed
5012 - DamperPosition
5013 - AirTemperature
5014 - AirDifferentialPressure
5015 - AirFlow
5016 - AirPressure
5017 - Sound
5018 - GenericPoint
5019
5020 EquipmentIntegrationPointType:
5021 type: string
5022 description: Valid pointType values for Integration-published generic equipment points.
5023 enum:
5024 - LiquidTemperatureSpRequest
5025 - GenericPoint
5026
5027 EquipmentObjectType:
5028 type: string
5029 description: Valid objectType values for generic equipment channels.
5030 enum:
5031 - CDU
5032 - CoolingTower
5033 - HX
5034 - CRAH
5035 - CRAC
5036 - AHU
5037 - Chiller
5038 - BESS
5039 - UPS
5040 - ATS
5041 - Generator
5042 - Shunt
5043 - Breaker
5044 - Valve
5045 - Pump
5046 - Fan
5047 - Damper
5048 - Sensor
5049 - Tank
5050 - GenericObject
5051
5052 SystemBmsPointType:
5053 type: string
5054 description: Valid pointType values for BMS-published System points.
5055 enum:
5056 - HeartbeatTimestampBms
5057 - HeartbeatEchoBms
5058 - Status
5059 - Available
5060 - GenericPoint
5061
5062 SystemIntegrationPointType:
5063 type: string
5064 description: Valid pointType values for Integration-published System points.
5065 enum:
5066 - HeartbeatTimestampIntegration
5067 - HeartbeatEchoIntegration
5068 - Status
5069 - Available
5070 - GenericPoint
5071
5072 # =========================================================================
5073 # SECTION 4 — Per-pointType field fragments
5074 #
5075 # Each fragment captures only what differs per pointType:
5076 # a pointType enum constraint and (where applicable) an engUnit enum.
5077 # These are referenced as the second allOf element in each *Metadata schema.
5078 # =========================================================================
5079
5080 # --- Rack fields ---------------------------------------------------------
5081
5082 RackLiquidSupplyTemperatureFields:
5083 type: object
5084 required: [engUnit]
5085 properties:
5086 pointType:
5087 type: string
5088 enum: [RackLiquidSupplyTemperature]
5089 objectType:
5090 type: string
5091 enum: [Rack]
5092 engUnit:
5093 type: string
5094 enum: [C]
5095
5096 RackLiquidReturnTemperatureFields:
5097 type: object
5098 required: [engUnit]
5099 properties:
5100 pointType:
5101 type: string
5102 enum: [RackLiquidReturnTemperature]
5103 objectType:
5104 type: string
5105 enum: [Rack]
5106 engUnit:
5107 type: string
5108 enum: [C]
5109
5110 RackLiquidFlowFields:
5111 type: object
5112 required: [engUnit]
5113 properties:
5114 pointType:
5115 type: string
5116 enum: [RackLiquidFlow]
5117 objectType:
5118 type: string
5119 enum: [Rack]
5120 engUnit:
5121 type: string
5122 enum: [LPM]
5123
5124 RackLiquidDifferentialPressureFields:
5125 type: object
5126 required: [engUnit]
5127 properties:
5128 pointType:
5129 type: string
5130 enum: [RackLiquidDifferentialPressure]
5131 objectType:
5132 type: string
5133 enum: [Rack]
5134 engUnit:
5135 type: string
5136 enum: [kPa]
5137
5138 RackControlValvePositionFields:
5139 type: object
5140 required: [engUnit]
5141 properties:
5142 pointType:
5143 type: string
5144 enum: [RackControlValvePosition]
5145 objectType:
5146 type: string
5147 enum: [Rack]
5148 engUnit:
5149 type: string
5150 enum: ['%']
5151
5152 RackPowerFields:
5153 type: object
5154 required: [engUnit]
5155 properties:
5156 pointType:
5157 type: string
5158 enum: [RackPower]
5159 objectType:
5160 type: string
5161 enum: [Rack]
5162 engUnit:
5163 type: string
5164 enum: [kW]
5165
5166 RackLeakDetectFields:
5167 type: object
5168 description: '0 = No Leak, 1 = Leak. No engUnit.'
5169 required:
5170 - stateText
5171 properties:
5172 pointType:
5173 type: string
5174 enum: [RackLeakDetect]
5175 objectType:
5176 type: string
5177 enum: [Rack]
5178 stateText:
5179 type: array
5180 description: >
5181 State label mapping for leak detection.
5182 items:
5183 type: object
5184 required: [value, text]
5185 properties:
5186 value:
5187 type: integer
5188 description: Numeric state value.
5189 text:
5190 type: string
5191 description: Human-readable label for this state.
5192 additionalProperties: false
5193 examples:
5194 -
5195 - value: 0
5196 text: "NoLeak"
5197 - value: 1
5198 text: "Leak"
5199
5200 RackLeakSensorFaultFields:
5201 type: object
5202 description: '0 = No Fault, 1 = Fault. No engUnit.'
5203 required:
5204 - stateText
5205 properties:
5206 pointType:
5207 type: string
5208 enum: [RackLeakSensorFault]
5209 objectType:
5210 type: string
5211 enum: [Rack]
5212 stateText:
5213 type: array
5214 description: >
5215 State label mapping for leak sensor fault status.
5216 items:
5217 type: object
5218 required: [value, text]
5219 properties:
5220 value:
5221 type: integer
5222 description: Numeric state value.
5223 text:
5224 type: string
5225 description: Human-readable label for this state.
5226 additionalProperties: false
5227 examples:
5228 -
5229 - value: 0
5230 text: "NoFault"
5231 - value: 1
5232 text: "Fault"
5233
5234 RackLiquidIsolationStatusFields:
5235 type: object
5236 description: '0=NotIsolated, 1=Isolated. No engUnit.'
5237 required:
5238 - stateText
5239 properties:
5240 pointType:
5241 type: string
5242 enum: [RackLiquidIsolationStatus]
5243 objectType:
5244 type: string
5245 enum: [Rack]
5246 stateText:
5247 type: array
5248 description: >
5249 State label mapping for liquid isolation status.
5250 items:
5251 type: object
5252 required: [value, text]
5253 properties:
5254 value:
5255 type: integer
5256 description: Numeric state value.
5257 text:
5258 type: string
5259 description: Human-readable label for this state.
5260 additionalProperties: false
5261 examples:
5262 -
5263 - value: 0
5264 text: "NotIsolated"
5265 - value: 1
5266 text: "Isolated"
5267
5268 RackElectricalIsolationStatusFields:
5269 type: object
5270 description: '0 = NotIsolated, 1 = Isolated. No engUnit.'
5271 required:
5272 - stateText
5273 properties:
5274 pointType:
5275 type: string
5276 enum: [RackElectricalIsolationStatus]
5277 objectType:
5278 type: string
5279 enum: [Rack]
5280 stateText:
5281 type: array
5282 description: >
5283 State label mapping for electrical isolation status.
5284 items:
5285 type: object
5286 required: [value, text]
5287 properties:
5288 value:
5289 type: integer
5290 description: Numeric state value.
5291 text:
5292 type: string
5293 description: Human-readable label for this state.
5294 additionalProperties: false
5295 examples:
5296 -
5297 - value: 0
5298 text: "NotIsolated"
5299 - value: 1
5300 text: "Isolated"
5301
5302 RackLeakDetectTrayFields:
5303 type: object
5304 description: '0 = No Leak, 1 = Leak (tray sensor). No engUnit. Integration-published value.'
5305 required:
5306 - stateText
5307 properties:
5308 pointType:
5309 type: string
5310 enum: [RackLeakDetectTray]
5311 objectType:
5312 type: string
5313 enum: [Rack]
5314 stateText:
5315 type: array
5316 description: >
5317 State label mapping for tray leak detection.
5318 items:
5319 type: object
5320 required: [value, text]
5321 properties:
5322 value:
5323 type: integer
5324 description: Numeric state value.
5325 text:
5326 type: string
5327 description: Human-readable label for this state.
5328 additionalProperties: false
5329 examples:
5330 -
5331 - value: 0
5332 text: "NoLeak"
5333 - value: 1
5334 text: "Leak"
5335
5336 RackLiquidIsolationRequestFields:
5337 type: object
5338 description: '0 = Not Requested, 1 = Requested, -1 = Unknown. Integration-published value.'
5339 required:
5340 - stateText
5341 properties:
5342 pointType:
5343 type: string
5344 enum: [RackLiquidIsolationRequest]
5345 objectType:
5346 type: string
5347 enum: [Rack]
5348 stateText:
5349 type: array
5350 description: >
5351 State label mapping for liquid isolation request.
5352 items:
5353 type: object
5354 required: [value, text]
5355 properties:
5356 value:
5357 type: integer
5358 description: Numeric state value.
5359 text:
5360 type: string
5361 description: Human-readable label for this state.
5362 additionalProperties: false
5363 examples:
5364 -
5365 - value: 0
5366 text: "NoIsolationRequested"
5367 - value: 1
5368 text: "IsolationRequested"
5369
5370 RackElectricalIsolationRequestFields:
5371 type: object
5372 description: '0 = Not Requested, 1 = Requested. Integration-published value.'
5373 required:
5374 - stateText
5375 properties:
5376 pointType:
5377 type: string
5378 enum: [RackElectricalIsolationRequest]
5379 objectType:
5380 type: string
5381 enum: [Rack]
5382 stateText:
5383 type: array
5384 description: >
5385 State label mapping for electrical isolation request.
5386 items:
5387 type: object
5388 required: [value, text]
5389 properties:
5390 value:
5391 type: integer
5392 description: Numeric state value.
5393 text:
5394 type: string
5395 description: Human-readable label for this state.
5396 additionalProperties: false
5397 examples:
5398 -
5399 - value: 0
5400 text: "NoIsolationRequested"
5401 - value: 1
5402 text: "IsolationRequested"
5403
5404 # --- PowerMeter fields ---------------------------------------------------
5405
5406 VoltageFields:
5407 type: object
5408 required: [engUnit]
5409 properties:
5410 pointType:
5411 type: string
5412 enum: [Voltage]
5413 objectType:
5414 type: string
5415 enum: [PowerMeter]
5416 engUnit:
5417 type: string
5418 #enum: [V]
5419
5420 PowerFactorFields:
5421 type: object
5422 description: Dimensionless 0–1. engUnit not required.
5423 properties:
5424 pointType:
5425 type: string
5426 enum: [PowerFactor]
5427 objectType:
5428 type: string
5429 enum: [PowerMeter]
5430
5431 FrequencyFields:
5432 type: object
5433 required: [engUnit]
5434 properties:
5435 pointType:
5436 type: string
5437 enum: [Frequency]
5438 objectType:
5439 type: string
5440 enum: [PowerMeter]
5441 engUnit:
5442 type: string
5443 #enum: [Hz]
5444
5445 ApparentPowerFields:
5446 type: object
5447 required: [engUnit]
5448 properties:
5449 pointType:
5450 type: string
5451 enum: [ApparentPower]
5452 objectType:
5453 type: string
5454 enum: [PowerMeter]
5455 engUnit:
5456 type: string
5457 #enum: [kVA]
5458
5459 ActivePowerFields:
5460 type: object
5461 required: [engUnit]
5462 properties:
5463 pointType:
5464 type: string
5465 enum: [ActivePower]
5466 objectType:
5467 type: string
5468 enum: [PowerMeter]
5469 engUnit:
5470 type: string
5471 #enum: [kW]
5472
5473 CurrentFields:
5474 type: object
5475 required: [engUnit]
5476 properties:
5477 pointType:
5478 type: string
5479 enum: [Current]
5480 objectType:
5481 type: string
5482 enum: [PowerMeter]
5483 engUnit:
5484 type: string
5485 #enum: [A]
5486
5487 CurrentLimitFields:
5488 type: object
5489 required: [engUnit]
5490 properties:
5491 pointType:
5492 type: string
5493 enum: [CurrentLimit]
5494 objectType:
5495 type: string
5496 enum: [PowerMeter]
5497 engUnit:
5498 type: string
5499 #enum: [A]
5500
5501 PhaseCurrentFields:
5502 type: object
5503 description: >
5504 PhaseCurrent additionally requires `phase` to identify which electrical
5505 phase. Accepts letter form (A, B, C) or numeric form (1, 2, 3); both
5506 are valid representations of the same three-phase system.
5507 3 metadata messages per meter, one per phase.
5508 required:
5509 - engUnit
5510 - phase
5511 properties:
5512 pointType:
5513 type: string
5514 enum: [PhaseCurrent]
5515 objectType:
5516 type: string
5517 enum: [PowerMeter]
5518 engUnit:
5519 type: string
5520 #enum: [A]
5521 phase:
5522 type: string
5523 enum: [A, B, C, "1", "2", "3"]
5524 description: >
5525 Electrical phase identifier. Letter form (A/B/C) and numeric form
5526 (1/2/3) are both accepted to align with publisher conventions.
5527
5528 # --- Generic Equipment fields --------------------------------------------
5529 # engUnit enums reflect common industry standards.
5530 # Verify with BMS configuration for site-specific values.
5531
5532 LiquidTemperatureFields:
5533 type: object
5534 required: [engUnit]
5535 properties:
5536 pointType:
5537 type: string
5538 enum: [LiquidTemperature]
5539 engUnit:
5540 type: string
5541 enum: [C]
5542 isSetpoint:
5543 type: boolean
5544 description: >
5545 Optional. When true, indicates this point is a setpoint (a target
5546 value written to control equipment behavior).
5547
5548 LiquidDifferentialPressureFields:
5549 type: object
5550 description: >
5551 Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa.
5552 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5553 constraints are independent and enforced by EquipmentMeasurementModeBase.
5554 properties:
5555 pointType:
5556 type: string
5557 enum: [LiquidDifferentialPressure]
5558 isSetpoint:
5559 type: boolean
5560 description: >
5561 Optional. When true, indicates this point is a setpoint (a target
5562 value written to control equipment behavior).
5563
5564 LiquidFlowFields:
5565 type: object
5566 description: >
5567 Measurement fields for LiquidFlow. Typical engUnit: LPM.
5568 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5569 constraints are independent and enforced by EquipmentMeasurementModeBase.
5570 properties:
5571 pointType:
5572 type: string
5573 enum: [LiquidFlow]
5574 isSetpoint:
5575 type: boolean
5576 description: >
5577 Optional. When true, indicates this point is a setpoint (a target
5578 value written to control equipment behavior).
5579
5580 LiquidPressureFields:
5581 type: object
5582 description: >
5583 Measurement fields for LiquidPressure. Typical engUnit: kPa.
5584 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5585 constraints are independent and enforced by EquipmentMeasurementModeBase.
5586 properties:
5587 pointType:
5588 type: string
5589 enum: [LiquidPressure]
5590 isSetpoint:
5591 type: boolean
5592 description: >
5593 Optional. When true, indicates this point is a setpoint (a target
5594 value written to control equipment behavior).
5595
5596 StatusFields:
5597 type: object
5598 required:
5599 - stateText
5600 properties:
5601 pointType:
5602 type: string
5603 enum: [Status]
5604 integration:
5605 type: string
5606 description: >
5607 Optional integration identifier. When present, this integration
5608 is responsible for publishing the value for this point.
5609 stateText:
5610 type: array
5611 description: >
5612 State label mapping for operating status (values vary by equipment vendor).
5613 items:
5614 type: object
5615 required: [value, text]
5616 properties:
5617 value:
5618 type: integer
5619 description: Numeric state value.
5620 text:
5621 type: string
5622 description: Human-readable label for this state.
5623 additionalProperties: false
5624 examples:
5625 -
5626 - value: 0
5627 text: "NotOperating"
5628 - value: 1
5629 text: "Operating"
5630
5631 AvailableFields:
5632 type: object
5633 required:
5634 - stateText
5635 properties:
5636 pointType:
5637 type: string
5638 enum: [Available]
5639 integration:
5640 type: string
5641 description: >
5642 Optional integration identifier. When present, this integration
5643 is responsible for publishing the value for this point.
5644 stateText:
5645 type: array
5646 description: >
5647 State label mapping for availability status (values vary by equipment vendor).
5648 items:
5649 type: object
5650 required: [value, text]
5651 properties:
5652 value:
5653 type: integer
5654 description: Numeric state value.
5655 text:
5656 type: string
5657 description: Human-readable label for this state.
5658 additionalProperties: false
5659 examples:
5660 -
5661 - value: 0
5662 text: "NotAvailable"
5663 - value: 1
5664 text: "Available"
5665
5666 ValvePositionFields:
5667 type: object
5668 description: >
5669 Measurement fields for ValvePosition. Typical engUnit: %.
5670 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5671 constraints are independent and enforced by EquipmentMeasurementModeBase.
5672 properties:
5673 pointType:
5674 type: string
5675 enum: [ValvePosition]
5676
5677 PumpSpeedFields:
5678 type: object
5679 description: >
5680 Measurement fields for PumpSpeed. Typical engUnit: RPM.
5681 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5682 constraints are independent and enforced by EquipmentMeasurementModeBase.
5683 properties:
5684 pointType:
5685 type: string
5686 enum: [PumpSpeed]
5687
5688 FanSpeedFields:
5689 type: object
5690 description: >
5691 Measurement fields for FanSpeed. Typical engUnit: RPM.
5692 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5693 constraints are independent and enforced by EquipmentMeasurementModeBase.
5694 properties:
5695 pointType:
5696 type: string
5697 enum: [FanSpeed]
5698
5699 DamperPositionFields:
5700 type: object
5701 description: >
5702 Measurement fields for DamperPosition. Typical engUnit: %.
5703 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5704 constraints are independent and enforced by EquipmentMeasurementModeBase.
5705 properties:
5706 pointType:
5707 type: string
5708 enum: [DamperPosition]
5709
5710 AirTemperatureFields:
5711 type: object
5712 required: [engUnit]
5713 properties:
5714 pointType:
5715 type: string
5716 enum: [AirTemperature]
5717 engUnit:
5718 type: string
5719 enum: [C]
5720 isSetpoint:
5721 type: boolean
5722 description: >
5723 Optional. When true, indicates this point is a setpoint (a target
5724 value written to control equipment behavior).
5725
5726 AirDifferentialPressureFields:
5727 type: object
5728 description: >
5729 Measurement fields for AirDifferentialPressure. Typical engUnit: Pa.
5730 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5731 constraints are independent and enforced by EquipmentMeasurementModeBase.
5732 properties:
5733 pointType:
5734 type: string
5735 enum: [AirDifferentialPressure]
5736 isSetpoint:
5737 type: boolean
5738 description: >
5739 Optional. When true, indicates this point is a setpoint (a target
5740 value written to control equipment behavior).
5741
5742 AirFlowFields:
5743 type: object
5744 description: >
5745 Measurement fields for AirFlow. Typical engUnit: CFM.
5746 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5747 constraints are independent and enforced by EquipmentMeasurementModeBase.
5748 properties:
5749 pointType:
5750 type: string
5751 enum: [AirFlow]
5752 isSetpoint:
5753 type: boolean
5754 description: >
5755 Optional. When true, indicates this point is a setpoint (a target
5756 value written to control equipment behavior).
5757
5758 AirPressureFields:
5759 type: object
5760 description: >
5761 Measurement fields for AirPressure. Typical engUnit: Pa.
5762 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5763 constraints are independent and enforced by EquipmentMeasurementModeBase.
5764 properties:
5765 pointType:
5766 type: string
5767 enum: [AirPressure]
5768 isSetpoint:
5769 type: boolean
5770 description: >
5771 Optional. When true, indicates this point is a setpoint (a target
5772 value written to control equipment behavior).
5773 LeakDetectFields:
5774 type: object
5775 description: '0 = No Leak, 1 = Leak. No engUnit.'
5776 required:
5777 - stateText
5778 properties:
5779 pointType:
5780 type: string
5781 enum: [LeakDetect]
5782 stateText:
5783 type: array
5784 description: >
5785 State label mapping for leak detection.
5786 items:
5787 type: object
5788 required: [value, text]
5789 properties:
5790 value:
5791 type: integer
5792 description: Numeric state value.
5793 text:
5794 type: string
5795 description: Human-readable label for this state.
5796 additionalProperties: false
5797 examples:
5798 -
5799 - value: 0
5800 text: "NoLeak"
5801 - value: 1
5802 text: "Leak"
5803
5804 AirRelativeHumidityFields:
5805 type: object
5806 description: >
5807 Measurement fields for AirRelativeHumidity. Typical engUnit: %RH.
5808 The identifier (named-object XOR associate) and measurement (engUnit XOR stateText)
5809 constraints are independent and enforced by EquipmentMeasurementModeBase.
5810 properties:
5811 pointType:
5812 type: string
5813 enum: [AirRelativeHumidity]
5814 isSetpoint:
5815 type: boolean
5816 description: >
5817 Optional. When true, indicates this point is a setpoint (a target
5818 value written to control equipment behavior).
5819
5820 LiquidTemperatureSpRequestFields:
5821 type: object
5822 description: >
5823 Setpoint request written by an integration (e.g., MEPAI) to a CDU.
5824 BMS publishes metadata; the integration publishes the value to respective value topic namespace identified by `integration`
5825 required: [engUnit]
5826 properties:
5827 pointType:
5828 type: string
5829 enum: [LiquidTemperatureSpRequest]
5830 objectType:
5831 type: string
5832 enum: [CDU]
5833 engUnit:
5834 type: string
5835 enum: [C]
5836
5837 GenericObjectLiquidTemperatureSpRequestFields:
5838 type: object
5839 description: >
5840 Setpoint request for a GenericObject. BMS publishes metadata;
5841 the integration publishes the value to the derived topic.
5842 required: [engUnit]
5843 properties:
5844 pointType:
5845 type: string
5846 enum: [LiquidTemperatureSpRequest]
5847 objectType:
5848 type: string
5849 enum: [GenericObject]
5850 engUnit:
5851 type: string
5852 enum: [C]
5853
5854 SoundFields:
5855 type: object
5856 required: [engUnit]
5857 properties:
5858 pointType:
5859 type: string
5860 enum: [Sound]
5861 engUnit:
5862 type: string
5863 # enum: [dB]
5864
5865 # --- System / Heartbeat point-type fields --------------------------------
5866
5867 HeartbeatTimestampBmsFields:
5868 type: object
5869 description: >
5870 BMS-published heartbeat timestamp. The BMS publishes its own
5871 timestamp every 10 s; one instance globally, consumed by all
5872 connected integrations. `objectName` and `objectId` identify the
5873 BMS itself (the publisher). The `integration` field is NOT used
5874 on this point — `integration` is reserved for value-publisher
5875 identity, and the BMS is the publisher here. `scope` optionally
5876 identifies which MQTT topics this heartbeat covers.
5877 required:
5878 - objectName
5879 - objectId
5880 properties:
5881 pointType:
5882 type: string
5883 enum: [HeartbeatTimestampBms]
5884 objectName:
5885 type: string
5886 description: Human-readable name of the BMS publishing this heartbeat.
5887 objectId:
5888 type: string
5889 description: >
5890 Stable identifier for the BMS publishing this heartbeat
5891 (e.g., `"BMS"`). One instance per BMS.
5892 scope:
5893 type: string
5894 description: Identifies which MQTT topics this heartbeat covers.
5895
5896 HeartbeatEchoBmsFields:
5897 type: object
5898 description: >
5899 BMS echoes back the timestamp received from a specific integration.
5900 Published by the BMS (one instance per connected integration). The
5901 integration whose timestamp is being echoed is identified by
5902 `objectName` and `objectId` — by convention, `objectId` matches
5903 the same string used as that integration's `integration`
5904 metadata value on its other points (e.g., `objectId: "MEPAI1"`).
5905 The `integration` field is intentionally NOT present on this
5906 point: `integration` denotes the value-publisher elsewhere in
5907 the spec, and the BMS is the publisher here. The integration
5908 being echoed is encoded in `objectId`, not in `integration`.
5909 `scope` optionally identifies which BMS MQTT-client/topic
5910 namespace this echo is associated with — used when the BMS
5911 runs multiple MQTT clients connected to DSX Exchange.
5912 required:
5913 - objectName
5914 - objectId
5915 properties:
5916 pointType:
5917 type: string
5918 enum: [HeartbeatEchoBms]
5919 objectName:
5920 type: string
5921 description: >
5922 Human-readable name of the integration whose timestamp is
5923 being echoed.
5924 objectId:
5925 type: string
5926 description: >
5927 Stable identifier of the integration whose timestamp is
5928 being echoed (e.g., `"MEPAI1"`). Matches that integration's
5929 `integration` metadata value on its other points.
5930 scope:
5931 type: string
5932 description: >
5933 Optional. Identifies which BMS MQTT-client/topic namespace
5934 this echo is associated with.
5935
5936 HeartbeatTimestampIntegrationFields:
5937 type: object
5938 description: >
5939 Integration-published heartbeat timestamp. Each connected
5940 integration publishes its own timestamp every 10 s; one instance
5941 per integration. `objectName` and `objectId` identify the
5942 integration publishing this heartbeat. By convention, `objectId`
5943 matches the same string used as this integration's `integration`
5944 metadata value on its other points (e.g., `objectId: "MEPAI1"` with
5945 `integration: "MEPAI1"`). The `integration` field is required via
5946 the integration metadata base and drives the value topic.
5947 required:
5948 - objectName
5949 - objectId
5950 properties:
5951 pointType:
5952 type: string
5953 enum: [HeartbeatTimestampIntegration]
5954 objectName:
5955 type: string
5956 description: >
5957 Human-readable name of the integration publishing this
5958 heartbeat.
5959 objectId:
5960 type: string
5961 description: >
5962 Stable identifier of the integration publishing this
5963 heartbeat (e.g., `"MEPAI1"`). By convention, matches the
5964 `integration` metadata value used by this integration on
5965 its other points.
5966
5967 HeartbeatEchoIntegrationFields:
5968 type: object
5969 description: >
5970 Integration echoes the BMS timestamp. Each integration publishes
5971 its own echo of the BMS timestamp, allowing the BMS to confirm
5972 round-trip with that specific integration (one instance per
5973 connected integration). The BMS whose timestamp is being echoed
5974 is identified by `objectName` and `objectId`
5975 (e.g., `objectId: "BMS"`). The `integration` field is required via
5976 the integration metadata base and drives the value topic.
5977 required:
5978 - objectName
5979 - objectId
5980 properties:
5981 pointType:
5982 type: string
5983 enum: [HeartbeatEchoIntegration]
5984 objectName:
5985 type: string
5986 description: >
5987 Human-readable name of the BMS whose timestamp is being echoed.
5988 objectId:
5989 type: string
5990 description: >
5991 Stable identifier of the BMS whose timestamp is being
5992 echoed (e.g., `"BMS"`).
5993
5994 # =========================================================================
5995 # SECTION 5 — Fully composed per-pointType metadata schemas
5996 #
5997 # Each schema = base $ref + fields $ref, both named.
5998 # No anonymous schemas anywhere in the allOf arrays.
5999 # =========================================================================
6000
6001 # --- Rack — BMS published ------------------------------------------------
6002
6003 RackLiquidSupplyTemperatureMetadata:
6004 allOf:
6005 - $ref: '#/components/schemas/RackMetadataBase'
6006 - $ref: '#/components/schemas/RackLiquidSupplyTemperatureFields'
6007 unevaluatedProperties: false
6008
6009 RackLiquidReturnTemperatureMetadata:
6010 allOf:
6011 - $ref: '#/components/schemas/RackMetadataBase'
6012 - $ref: '#/components/schemas/RackLiquidReturnTemperatureFields'
6013 unevaluatedProperties: false
6014
6015 RackLiquidFlowMetadata:
6016 allOf:
6017 - $ref: '#/components/schemas/RackMetadataBase'
6018 - $ref: '#/components/schemas/RackLiquidFlowFields'
6019 unevaluatedProperties: false
6020
6021 RackLiquidDifferentialPressureMetadata:
6022 allOf:
6023 - $ref: '#/components/schemas/RackMetadataBase'
6024 - $ref: '#/components/schemas/RackLiquidDifferentialPressureFields'
6025 unevaluatedProperties: false
6026
6027 RackLiquidDifferentialPressureSpFields:
6028 type: object
6029 required: [engUnit]
6030 properties:
6031 pointType:
6032 type: string
6033 enum: [RackLiquidDifferentialPressureSp]
6034 objectType:
6035 type: string
6036 enum: [Rack]
6037 engUnit:
6038 type: string
6039 enum: [kPa]
6040 isSetpoint:
6041 type: boolean
6042 description: >
6043 Optional inclusion. Indicates this point is a target value written to control equipment behavior.
6044
6045 RackLiquidDifferentialPressureSpMetadata:
6046 allOf:
6047 - $ref: '#/components/schemas/RackMetadataBase'
6048 - $ref: '#/components/schemas/RackLiquidDifferentialPressureSpFields'
6049 unevaluatedProperties: false
6050
6051 RackControlValvePositionMetadata:
6052 allOf:
6053 - $ref: '#/components/schemas/RackMetadataBase'
6054 - $ref: '#/components/schemas/RackControlValvePositionFields'
6055 unevaluatedProperties: false
6056
6057 RackPowerMetadata:
6058 allOf:
6059 - $ref: '#/components/schemas/RackMetadataBase'
6060 - $ref: '#/components/schemas/RackPowerFields'
6061 unevaluatedProperties: false
6062
6063 RackLeakDetectMetadata:
6064 allOf:
6065 - $ref: '#/components/schemas/RackMetadataBase'
6066 - $ref: '#/components/schemas/RackLeakDetectFields'
6067 unevaluatedProperties: false
6068
6069 RackLeakSensorFaultMetadata:
6070 allOf:
6071 - $ref: '#/components/schemas/RackMetadataBase'
6072 - $ref: '#/components/schemas/RackLeakSensorFaultFields'
6073 unevaluatedProperties: false
6074
6075 RackLiquidIsolationStatusMetadata:
6076 allOf:
6077 - $ref: '#/components/schemas/RackMetadataBase'
6078 - $ref: '#/components/schemas/RackLiquidIsolationStatusFields'
6079 unevaluatedProperties: false
6080
6081 RackElectricalIsolationStatusMetadata:
6082 allOf:
6083 - $ref: '#/components/schemas/RackMetadataBase'
6084 - $ref: '#/components/schemas/RackElectricalIsolationStatusFields'
6085 unevaluatedProperties: false
6086
6087 # --- Rack — Integration published ----------------------------------------
6088
6089 RackLeakDetectTrayMetadata:
6090 allOf:
6091 - $ref: '#/components/schemas/RackIntegrationMetadataBase'
6092 - $ref: '#/components/schemas/RackLeakDetectTrayFields'
6093 unevaluatedProperties: false
6094
6095 RackLiquidIsolationRequestMetadata:
6096 allOf:
6097 - $ref: '#/components/schemas/RackIntegrationMetadataBase'
6098 - $ref: '#/components/schemas/RackLiquidIsolationRequestFields'
6099 unevaluatedProperties: false
6100
6101 RackElectricalIsolationRequestMetadata:
6102 allOf:
6103 - $ref: '#/components/schemas/RackIntegrationMetadataBase'
6104 - $ref: '#/components/schemas/RackElectricalIsolationRequestFields'
6105 unevaluatedProperties: false
6106
6107 # --- PowerMeter ----------------------------------------------------------
6108
6109 PowerMeterVoltageMetadata:
6110 allOf:
6111 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6112 - $ref: '#/components/schemas/VoltageFields'
6113 unevaluatedProperties: false
6114
6115 PowerMeterPowerFactorMetadata:
6116 allOf:
6117 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6118 - $ref: '#/components/schemas/PowerFactorFields'
6119 unevaluatedProperties: false
6120
6121 PowerMeterFrequencyMetadata:
6122 allOf:
6123 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6124 - $ref: '#/components/schemas/FrequencyFields'
6125 unevaluatedProperties: false
6126
6127 PowerMeterApparentPowerMetadata:
6128 allOf:
6129 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6130 - $ref: '#/components/schemas/ApparentPowerFields'
6131 unevaluatedProperties: false
6132
6133 PowerMeterActivePowerMetadata:
6134 allOf:
6135 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6136 - $ref: '#/components/schemas/ActivePowerFields'
6137 unevaluatedProperties: false
6138
6139 PowerMeterCurrentMetadata:
6140 allOf:
6141 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6142 - $ref: '#/components/schemas/CurrentFields'
6143 unevaluatedProperties: false
6144
6145 PowerMeterCurrentLimitMetadata:
6146 allOf:
6147 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6148 - $ref: '#/components/schemas/CurrentLimitFields'
6149 unevaluatedProperties: false
6150
6151 PowerMeterPhaseCurrentMetadata:
6152 allOf:
6153 - $ref: '#/components/schemas/PowerMeterMetadataBase'
6154 - $ref: '#/components/schemas/PhaseCurrentFields'
6155 unevaluatedProperties: false
6156
6157 # --- Generic Equipment — BMS published -----------------------------------
6158
6159 LiquidTemperatureMetadata:
6160 allOf:
6161 - $ref: '#/components/schemas/EquipmentMetadataBase'
6162 - $ref: '#/components/schemas/LiquidTemperatureFields'
6163 unevaluatedProperties: false
6164
6165 LiquidDifferentialPressureMetadata:
6166 allOf:
6167 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6168 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
6169 unevaluatedProperties: false
6170
6171 LiquidFlowMetadata:
6172 allOf:
6173 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6174 - $ref: '#/components/schemas/LiquidFlowFields'
6175 unevaluatedProperties: false
6176
6177 LiquidPressureMetadata:
6178 allOf:
6179 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6180 - $ref: '#/components/schemas/LiquidPressureFields'
6181 unevaluatedProperties: false
6182
6183 StatusMetadata:
6184 allOf:
6185 - $ref: '#/components/schemas/EquipmentMetadataBase'
6186 - $ref: '#/components/schemas/StatusFields'
6187 unevaluatedProperties: false
6188
6189 AvailableMetadata:
6190 allOf:
6191 - $ref: '#/components/schemas/EquipmentMetadataBase'
6192 - $ref: '#/components/schemas/AvailableFields'
6193 unevaluatedProperties: false
6194
6195 ValvePositionMetadata:
6196 allOf:
6197 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6198 - $ref: '#/components/schemas/ValvePositionFields'
6199 unevaluatedProperties: false
6200
6201 PumpSpeedMetadata:
6202 allOf:
6203 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6204 - $ref: '#/components/schemas/PumpSpeedFields'
6205 unevaluatedProperties: false
6206
6207 FanSpeedMetadata:
6208 allOf:
6209 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6210 - $ref: '#/components/schemas/FanSpeedFields'
6211 unevaluatedProperties: false
6212
6213 DamperPositionMetadata:
6214 allOf:
6215 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6216 - $ref: '#/components/schemas/DamperPositionFields'
6217 unevaluatedProperties: false
6218
6219 AirTemperatureMetadata:
6220 allOf:
6221 - $ref: '#/components/schemas/EquipmentMetadataBase'
6222 - $ref: '#/components/schemas/AirTemperatureFields'
6223 unevaluatedProperties: false
6224
6225 AirDifferentialPressureMetadata:
6226 allOf:
6227 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6228 - $ref: '#/components/schemas/AirDifferentialPressureFields'
6229 unevaluatedProperties: false
6230
6231 AirFlowMetadata:
6232 allOf:
6233 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6234 - $ref: '#/components/schemas/AirFlowFields'
6235 unevaluatedProperties: false
6236
6237 AirPressureMetadata:
6238 allOf:
6239 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6240 - $ref: '#/components/schemas/AirPressureFields'
6241 unevaluatedProperties: false
6242
6243 SoundMetadata:
6244 allOf:
6245 - $ref: '#/components/schemas/EquipmentMetadataBase'
6246 - $ref: '#/components/schemas/SoundFields'
6247 unevaluatedProperties: false
6248
6249 # --- Generic Equipment — Integration published ---------------------------
6250
6251 LiquidTemperatureSpRequestMetadata:
6252 allOf:
6253 - $ref: '#/components/schemas/EquipmentIntegrationMetadataBase'
6254 - $ref: '#/components/schemas/LiquidTemperatureSpRequestFields'
6255 unevaluatedProperties: false
6256
6257 # --- System --------------------------------------------------------------
6258
6259 SystemHeartbeatTimestampBmsMetadata:
6260 allOf:
6261 - $ref: '#/components/schemas/MetadataBase'
6262 - $ref: '#/components/schemas/HeartbeatTimestampBmsFields'
6263 unevaluatedProperties: false
6264
6265 SystemHeartbeatEchoBmsMetadata:
6266 allOf:
6267 - $ref: '#/components/schemas/MetadataBase'
6268 - $ref: '#/components/schemas/HeartbeatEchoBmsFields'
6269 unevaluatedProperties: false
6270
6271 SystemHeartbeatTimestampIntegrationMetadata:
6272 allOf:
6273 - $ref: '#/components/schemas/SystemIntegrationMetadataBase'
6274 - $ref: '#/components/schemas/HeartbeatTimestampIntegrationFields'
6275 unevaluatedProperties: false
6276
6277 SystemHeartbeatEchoIntegrationMetadata:
6278 allOf:
6279 - $ref: '#/components/schemas/SystemIntegrationMetadataBase'
6280 - $ref: '#/components/schemas/HeartbeatEchoIntegrationFields'
6281 unevaluatedProperties: false
6282
6283 SystemObjectTypeFields:
6284 type: object
6285 properties:
6286 objectType:
6287 type: string
6288 enum: [System]
6289
6290 SystemStatusMetadata:
6291 allOf:
6292 - $ref: '#/components/schemas/EquipmentMetadataBase'
6293 - $ref: '#/components/schemas/StatusFields'
6294 - $ref: '#/components/schemas/SystemObjectTypeFields'
6295 unevaluatedProperties: false
6296
6297 SystemAvailableMetadata:
6298 allOf:
6299 - $ref: '#/components/schemas/EquipmentMetadataBase'
6300 - $ref: '#/components/schemas/AvailableFields'
6301 - $ref: '#/components/schemas/SystemObjectTypeFields'
6302 unevaluatedProperties: false
6303
6304 # --- Per-objectType objectType field fragments -------------------------
6305 BESSObjectTypeFields:
6306 type: object
6307 properties:
6308 objectType:
6309 type: string
6310 enum: [BESS]
6311
6312 UPSObjectTypeFields:
6313 type: object
6314 properties:
6315 objectType:
6316 type: string
6317 enum: [UPS]
6318
6319 ATSObjectTypeFields:
6320 type: object
6321 properties:
6322 objectType:
6323 type: string
6324 enum: [ATS]
6325
6326 GeneratorObjectTypeFields:
6327 type: object
6328 properties:
6329 objectType:
6330 type: string
6331 enum: [Generator]
6332
6333 ShuntObjectTypeFields:
6334 type: object
6335 properties:
6336 objectType:
6337 type: string
6338 enum: [Shunt]
6339
6340 BreakerObjectTypeFields:
6341 type: object
6342 properties:
6343 objectType:
6344 type: string
6345 enum: [Breaker]
6346
6347 CDUObjectTypeFields:
6348 type: object
6349 properties:
6350 objectType:
6351 type: string
6352 enum: [CDU]
6353
6354 CoolingTowerObjectTypeFields:
6355 type: object
6356 properties:
6357 objectType:
6358 type: string
6359 enum: [CoolingTower]
6360
6361 HXObjectTypeFields:
6362 type: object
6363 properties:
6364 objectType:
6365 type: string
6366 enum: [HX]
6367
6368 CRAHObjectTypeFields:
6369 type: object
6370 properties:
6371 objectType:
6372 type: string
6373 enum: [CRAH]
6374
6375 CRACObjectTypeFields:
6376 type: object
6377 properties:
6378 objectType:
6379 type: string
6380 enum: [CRAC]
6381
6382 AHUObjectTypeFields:
6383 type: object
6384 properties:
6385 objectType:
6386 type: string
6387 enum: [AHU]
6388
6389 ChillerObjectTypeFields:
6390 type: object
6391 properties:
6392 objectType:
6393 type: string
6394 enum: [Chiller]
6395
6396 ValveObjectTypeFields:
6397 type: object
6398 properties:
6399 objectType:
6400 type: string
6401 enum: [Valve]
6402
6403 PumpObjectTypeFields:
6404 type: object
6405 properties:
6406 objectType:
6407 type: string
6408 enum: [Pump]
6409
6410 FanObjectTypeFields:
6411 type: object
6412 properties:
6413 objectType:
6414 type: string
6415 enum: [Fan]
6416
6417 DamperObjectTypeFields:
6418 type: object
6419 properties:
6420 objectType:
6421 type: string
6422 enum: [Damper]
6423
6424 SensorObjectTypeFields:
6425 type: object
6426 properties:
6427 objectType:
6428 type: string
6429 enum: [Sensor]
6430
6431 TankObjectTypeFields:
6432 type: object
6433 properties:
6434 objectType:
6435 type: string
6436 enum: [Tank]
6437
6438 GenericObjectObjectTypeFields:
6439 type: object
6440 properties:
6441 objectType:
6442 type: string
6443 enum: [GenericObject]
6444
6445 # =========================================================================
6446 # Per-objectType metadata schemas (objectType constraint for examples)
6447 # =========================================================================
6448
6449 BESSStatusMetadata:
6450 allOf:
6451 - $ref: '#/components/schemas/EquipmentMetadataBase'
6452 - $ref: '#/components/schemas/StatusFields'
6453 - $ref: '#/components/schemas/BESSObjectTypeFields'
6454 unevaluatedProperties: false
6455
6456 BESSAvailableMetadata:
6457 allOf:
6458 - $ref: '#/components/schemas/EquipmentMetadataBase'
6459 - $ref: '#/components/schemas/AvailableFields'
6460 - $ref: '#/components/schemas/BESSObjectTypeFields'
6461 unevaluatedProperties: false
6462
6463 UPSStatusMetadata:
6464 allOf:
6465 - $ref: '#/components/schemas/EquipmentMetadataBase'
6466 - $ref: '#/components/schemas/StatusFields'
6467 - $ref: '#/components/schemas/UPSObjectTypeFields'
6468 unevaluatedProperties: false
6469
6470 UPSAvailableMetadata:
6471 allOf:
6472 - $ref: '#/components/schemas/EquipmentMetadataBase'
6473 - $ref: '#/components/schemas/AvailableFields'
6474 - $ref: '#/components/schemas/UPSObjectTypeFields'
6475 unevaluatedProperties: false
6476
6477 ATSStatusMetadata:
6478 allOf:
6479 - $ref: '#/components/schemas/EquipmentMetadataBase'
6480 - $ref: '#/components/schemas/StatusFields'
6481 - $ref: '#/components/schemas/ATSObjectTypeFields'
6482 unevaluatedProperties: false
6483
6484 ATSAvailableMetadata:
6485 allOf:
6486 - $ref: '#/components/schemas/EquipmentMetadataBase'
6487 - $ref: '#/components/schemas/AvailableFields'
6488 - $ref: '#/components/schemas/ATSObjectTypeFields'
6489 unevaluatedProperties: false
6490
6491 GeneratorStatusMetadata:
6492 allOf:
6493 - $ref: '#/components/schemas/EquipmentMetadataBase'
6494 - $ref: '#/components/schemas/StatusFields'
6495 - $ref: '#/components/schemas/GeneratorObjectTypeFields'
6496 unevaluatedProperties: false
6497
6498 GeneratorAvailableMetadata:
6499 allOf:
6500 - $ref: '#/components/schemas/EquipmentMetadataBase'
6501 - $ref: '#/components/schemas/AvailableFields'
6502 - $ref: '#/components/schemas/GeneratorObjectTypeFields'
6503 unevaluatedProperties: false
6504
6505 ShuntStatusMetadata:
6506 allOf:
6507 - $ref: '#/components/schemas/EquipmentMetadataBase'
6508 - $ref: '#/components/schemas/StatusFields'
6509 - $ref: '#/components/schemas/ShuntObjectTypeFields'
6510 unevaluatedProperties: false
6511
6512 ShuntAvailableMetadata:
6513 allOf:
6514 - $ref: '#/components/schemas/EquipmentMetadataBase'
6515 - $ref: '#/components/schemas/AvailableFields'
6516 - $ref: '#/components/schemas/ShuntObjectTypeFields'
6517 unevaluatedProperties: false
6518
6519 BreakerStatusMetadata:
6520 allOf:
6521 - $ref: '#/components/schemas/EquipmentMetadataBase'
6522 - $ref: '#/components/schemas/StatusFields'
6523 - $ref: '#/components/schemas/BreakerObjectTypeFields'
6524 unevaluatedProperties: false
6525
6526 BreakerAvailableMetadata:
6527 allOf:
6528 - $ref: '#/components/schemas/EquipmentMetadataBase'
6529 - $ref: '#/components/schemas/AvailableFields'
6530 - $ref: '#/components/schemas/BreakerObjectTypeFields'
6531 unevaluatedProperties: false
6532
6533 ValveValvePositionMetadata:
6534 allOf:
6535 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6536 - $ref: '#/components/schemas/ValvePositionFields'
6537 - $ref: '#/components/schemas/ValveObjectTypeFields'
6538 unevaluatedProperties: false
6539
6540 PumpPumpSpeedMetadata:
6541 allOf:
6542 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6543 - $ref: '#/components/schemas/PumpSpeedFields'
6544 - $ref: '#/components/schemas/PumpObjectTypeFields'
6545 unevaluatedProperties: false
6546
6547 FanFanSpeedMetadata:
6548 allOf:
6549 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6550 - $ref: '#/components/schemas/FanSpeedFields'
6551 - $ref: '#/components/schemas/FanObjectTypeFields'
6552 unevaluatedProperties: false
6553
6554 DamperDamperPositionMetadata:
6555 allOf:
6556 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6557 - $ref: '#/components/schemas/DamperPositionFields'
6558 - $ref: '#/components/schemas/DamperObjectTypeFields'
6559 unevaluatedProperties: false
6560
6561 ValveAvailableMetadata:
6562 allOf:
6563 - $ref: '#/components/schemas/EquipmentMetadataBase'
6564 - $ref: '#/components/schemas/AvailableFields'
6565 - $ref: '#/components/schemas/ValveObjectTypeFields'
6566 unevaluatedProperties: false
6567
6568 PumpAvailableMetadata:
6569 allOf:
6570 - $ref: '#/components/schemas/EquipmentMetadataBase'
6571 - $ref: '#/components/schemas/AvailableFields'
6572 - $ref: '#/components/schemas/PumpObjectTypeFields'
6573 unevaluatedProperties: false
6574
6575 FanAvailableMetadata:
6576 allOf:
6577 - $ref: '#/components/schemas/EquipmentMetadataBase'
6578 - $ref: '#/components/schemas/AvailableFields'
6579 - $ref: '#/components/schemas/FanObjectTypeFields'
6580 unevaluatedProperties: false
6581
6582 DamperAvailableMetadata:
6583 allOf:
6584 - $ref: '#/components/schemas/EquipmentMetadataBase'
6585 - $ref: '#/components/schemas/AvailableFields'
6586 - $ref: '#/components/schemas/DamperObjectTypeFields'
6587 unevaluatedProperties: false
6588
6589 SensorAvailableMetadata:
6590 allOf:
6591 - $ref: '#/components/schemas/EquipmentMetadataBase'
6592 - $ref: '#/components/schemas/AvailableFields'
6593 - $ref: '#/components/schemas/SensorObjectTypeFields'
6594 unevaluatedProperties: false
6595
6596 SensorLiquidTemperatureMetadata:
6597 allOf:
6598 - $ref: '#/components/schemas/EquipmentMetadataBase'
6599 - $ref: '#/components/schemas/LiquidTemperatureFields'
6600 - $ref: '#/components/schemas/SensorObjectTypeFields'
6601 unevaluatedProperties: false
6602
6603 SensorLiquidDifferentialPressureMetadata:
6604 allOf:
6605 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6606 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
6607 - $ref: '#/components/schemas/SensorObjectTypeFields'
6608 unevaluatedProperties: false
6609
6610 SensorLiquidFlowMetadata:
6611 allOf:
6612 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6613 - $ref: '#/components/schemas/LiquidFlowFields'
6614 - $ref: '#/components/schemas/SensorObjectTypeFields'
6615 unevaluatedProperties: false
6616
6617 SensorLiquidPressureMetadata:
6618 allOf:
6619 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6620 - $ref: '#/components/schemas/LiquidPressureFields'
6621 - $ref: '#/components/schemas/SensorObjectTypeFields'
6622 unevaluatedProperties: false
6623
6624 SensorAirTemperatureMetadata:
6625 allOf:
6626 - $ref: '#/components/schemas/EquipmentMetadataBase'
6627 - $ref: '#/components/schemas/AirTemperatureFields'
6628 - $ref: '#/components/schemas/SensorObjectTypeFields'
6629 unevaluatedProperties: false
6630
6631 SensorAirDifferentialPressureMetadata:
6632 allOf:
6633 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6634 - $ref: '#/components/schemas/AirDifferentialPressureFields'
6635 - $ref: '#/components/schemas/SensorObjectTypeFields'
6636 unevaluatedProperties: false
6637
6638 SensorAirFlowMetadata:
6639 allOf:
6640 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6641 - $ref: '#/components/schemas/AirFlowFields'
6642 - $ref: '#/components/schemas/SensorObjectTypeFields'
6643 unevaluatedProperties: false
6644
6645 SensorAirPressureMetadata:
6646 allOf:
6647 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6648 - $ref: '#/components/schemas/AirPressureFields'
6649 - $ref: '#/components/schemas/SensorObjectTypeFields'
6650 unevaluatedProperties: false
6651
6652 SensorSoundMetadata:
6653 allOf:
6654 - $ref: '#/components/schemas/EquipmentMetadataBase'
6655 - $ref: '#/components/schemas/SoundFields'
6656 - $ref: '#/components/schemas/SensorObjectTypeFields'
6657 unevaluatedProperties: false
6658
6659 SensorLeakDetectMetadata:
6660 allOf:
6661 - $ref: '#/components/schemas/EquipmentMetadataBase'
6662 - $ref: '#/components/schemas/LeakDetectFields'
6663 - $ref: '#/components/schemas/SensorObjectTypeFields'
6664 unevaluatedProperties: false
6665
6666 SensorAirRelativeHumidityMetadata:
6667 allOf:
6668 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6669 - $ref: '#/components/schemas/AirRelativeHumidityFields'
6670 - $ref: '#/components/schemas/SensorObjectTypeFields'
6671 unevaluatedProperties: false
6672
6673 CDULiquidTemperatureMetadata:
6674 allOf:
6675 - $ref: '#/components/schemas/EquipmentMetadataBase'
6676 - $ref: '#/components/schemas/LiquidTemperatureFields'
6677 - $ref: '#/components/schemas/CDUObjectTypeFields'
6678 unevaluatedProperties: false
6679
6680 CDULiquidDifferentialPressureMetadata:
6681 allOf:
6682 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6683 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
6684 - $ref: '#/components/schemas/CDUObjectTypeFields'
6685 unevaluatedProperties: false
6686
6687 CDULiquidFlowMetadata:
6688 allOf:
6689 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6690 - $ref: '#/components/schemas/LiquidFlowFields'
6691 - $ref: '#/components/schemas/CDUObjectTypeFields'
6692 unevaluatedProperties: false
6693
6694 CDULiquidPressureMetadata:
6695 allOf:
6696 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6697 - $ref: '#/components/schemas/LiquidPressureFields'
6698 - $ref: '#/components/schemas/CDUObjectTypeFields'
6699 unevaluatedProperties: false
6700
6701 CDUStatusMetadata:
6702 allOf:
6703 - $ref: '#/components/schemas/EquipmentMetadataBase'
6704 - $ref: '#/components/schemas/StatusFields'
6705 - $ref: '#/components/schemas/CDUObjectTypeFields'
6706 unevaluatedProperties: false
6707
6708 CDUAvailableMetadata:
6709 allOf:
6710 - $ref: '#/components/schemas/EquipmentMetadataBase'
6711 - $ref: '#/components/schemas/AvailableFields'
6712 - $ref: '#/components/schemas/CDUObjectTypeFields'
6713 unevaluatedProperties: false
6714
6715 CDUValvePositionMetadata:
6716 allOf:
6717 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6718 - $ref: '#/components/schemas/ValvePositionFields'
6719 - $ref: '#/components/schemas/CDUObjectTypeFields'
6720 unevaluatedProperties: false
6721
6722 CDUPumpSpeedMetadata:
6723 allOf:
6724 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6725 - $ref: '#/components/schemas/PumpSpeedFields'
6726 - $ref: '#/components/schemas/CDUObjectTypeFields'
6727 unevaluatedProperties: false
6728
6729 CDUFanSpeedMetadata:
6730 allOf:
6731 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6732 - $ref: '#/components/schemas/FanSpeedFields'
6733 - $ref: '#/components/schemas/CDUObjectTypeFields'
6734 unevaluatedProperties: false
6735
6736 CDUDamperPositionMetadata:
6737 allOf:
6738 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6739 - $ref: '#/components/schemas/DamperPositionFields'
6740 - $ref: '#/components/schemas/CDUObjectTypeFields'
6741 unevaluatedProperties: false
6742
6743 CDUAirTemperatureMetadata:
6744 allOf:
6745 - $ref: '#/components/schemas/EquipmentMetadataBase'
6746 - $ref: '#/components/schemas/AirTemperatureFields'
6747 - $ref: '#/components/schemas/CDUObjectTypeFields'
6748 unevaluatedProperties: false
6749
6750 CDUAirDifferentialPressureMetadata:
6751 allOf:
6752 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6753 - $ref: '#/components/schemas/AirDifferentialPressureFields'
6754 - $ref: '#/components/schemas/CDUObjectTypeFields'
6755 unevaluatedProperties: false
6756
6757 CDUAirFlowMetadata:
6758 allOf:
6759 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6760 - $ref: '#/components/schemas/AirFlowFields'
6761 - $ref: '#/components/schemas/CDUObjectTypeFields'
6762 unevaluatedProperties: false
6763
6764 CDUAirPressureMetadata:
6765 allOf:
6766 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6767 - $ref: '#/components/schemas/AirPressureFields'
6768 - $ref: '#/components/schemas/CDUObjectTypeFields'
6769 unevaluatedProperties: false
6770
6771 CDULeakDetectMetadata:
6772 allOf:
6773 - $ref: '#/components/schemas/EquipmentMetadataBase'
6774 - $ref: '#/components/schemas/LeakDetectFields'
6775 - $ref: '#/components/schemas/CDUObjectTypeFields'
6776 unevaluatedProperties: false
6777
6778 CDUAirRelativeHumidityMetadata:
6779 allOf:
6780 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6781 - $ref: '#/components/schemas/AirRelativeHumidityFields'
6782 - $ref: '#/components/schemas/CDUObjectTypeFields'
6783 unevaluatedProperties: false
6784
6785 CoolingTowerLiquidTemperatureMetadata:
6786 allOf:
6787 - $ref: '#/components/schemas/EquipmentMetadataBase'
6788 - $ref: '#/components/schemas/LiquidTemperatureFields'
6789 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6790 unevaluatedProperties: false
6791
6792 CoolingTowerLiquidDifferentialPressureMetadata:
6793 allOf:
6794 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6795 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
6796 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6797 unevaluatedProperties: false
6798
6799 CoolingTowerLiquidFlowMetadata:
6800 allOf:
6801 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6802 - $ref: '#/components/schemas/LiquidFlowFields'
6803 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6804 unevaluatedProperties: false
6805
6806 CoolingTowerLiquidPressureMetadata:
6807 allOf:
6808 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6809 - $ref: '#/components/schemas/LiquidPressureFields'
6810 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6811 unevaluatedProperties: false
6812
6813 CoolingTowerStatusMetadata:
6814 allOf:
6815 - $ref: '#/components/schemas/EquipmentMetadataBase'
6816 - $ref: '#/components/schemas/StatusFields'
6817 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6818 unevaluatedProperties: false
6819
6820 CoolingTowerAvailableMetadata:
6821 allOf:
6822 - $ref: '#/components/schemas/EquipmentMetadataBase'
6823 - $ref: '#/components/schemas/AvailableFields'
6824 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6825 unevaluatedProperties: false
6826
6827 CoolingTowerValvePositionMetadata:
6828 allOf:
6829 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6830 - $ref: '#/components/schemas/ValvePositionFields'
6831 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6832 unevaluatedProperties: false
6833
6834 CoolingTowerPumpSpeedMetadata:
6835 allOf:
6836 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6837 - $ref: '#/components/schemas/PumpSpeedFields'
6838 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6839 unevaluatedProperties: false
6840
6841 CoolingTowerFanSpeedMetadata:
6842 allOf:
6843 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6844 - $ref: '#/components/schemas/FanSpeedFields'
6845 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6846 unevaluatedProperties: false
6847
6848 CoolingTowerDamperPositionMetadata:
6849 allOf:
6850 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6851 - $ref: '#/components/schemas/DamperPositionFields'
6852 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6853 unevaluatedProperties: false
6854
6855 CoolingTowerAirTemperatureMetadata:
6856 allOf:
6857 - $ref: '#/components/schemas/EquipmentMetadataBase'
6858 - $ref: '#/components/schemas/AirTemperatureFields'
6859 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6860 unevaluatedProperties: false
6861
6862 CoolingTowerAirDifferentialPressureMetadata:
6863 allOf:
6864 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6865 - $ref: '#/components/schemas/AirDifferentialPressureFields'
6866 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6867 unevaluatedProperties: false
6868
6869 CoolingTowerAirFlowMetadata:
6870 allOf:
6871 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6872 - $ref: '#/components/schemas/AirFlowFields'
6873 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6874 unevaluatedProperties: false
6875
6876 CoolingTowerAirPressureMetadata:
6877 allOf:
6878 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6879 - $ref: '#/components/schemas/AirPressureFields'
6880 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6881 unevaluatedProperties: false
6882
6883 CoolingTowerLeakDetectMetadata:
6884 allOf:
6885 - $ref: '#/components/schemas/EquipmentMetadataBase'
6886 - $ref: '#/components/schemas/LeakDetectFields'
6887 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6888 unevaluatedProperties: false
6889
6890 CoolingTowerAirRelativeHumidityMetadata:
6891 allOf:
6892 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6893 - $ref: '#/components/schemas/AirRelativeHumidityFields'
6894 - $ref: '#/components/schemas/CoolingTowerObjectTypeFields'
6895 unevaluatedProperties: false
6896
6897 HXLiquidTemperatureMetadata:
6898 allOf:
6899 - $ref: '#/components/schemas/EquipmentMetadataBase'
6900 - $ref: '#/components/schemas/LiquidTemperatureFields'
6901 - $ref: '#/components/schemas/HXObjectTypeFields'
6902 unevaluatedProperties: false
6903
6904 HXLiquidDifferentialPressureMetadata:
6905 allOf:
6906 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6907 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
6908 - $ref: '#/components/schemas/HXObjectTypeFields'
6909 unevaluatedProperties: false
6910
6911 HXLiquidFlowMetadata:
6912 allOf:
6913 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6914 - $ref: '#/components/schemas/LiquidFlowFields'
6915 - $ref: '#/components/schemas/HXObjectTypeFields'
6916 unevaluatedProperties: false
6917
6918 HXLiquidPressureMetadata:
6919 allOf:
6920 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6921 - $ref: '#/components/schemas/LiquidPressureFields'
6922 - $ref: '#/components/schemas/HXObjectTypeFields'
6923 unevaluatedProperties: false
6924
6925 HXStatusMetadata:
6926 allOf:
6927 - $ref: '#/components/schemas/EquipmentMetadataBase'
6928 - $ref: '#/components/schemas/StatusFields'
6929 - $ref: '#/components/schemas/HXObjectTypeFields'
6930 unevaluatedProperties: false
6931
6932 HXAvailableMetadata:
6933 allOf:
6934 - $ref: '#/components/schemas/EquipmentMetadataBase'
6935 - $ref: '#/components/schemas/AvailableFields'
6936 - $ref: '#/components/schemas/HXObjectTypeFields'
6937 unevaluatedProperties: false
6938
6939 HXValvePositionMetadata:
6940 allOf:
6941 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6942 - $ref: '#/components/schemas/ValvePositionFields'
6943 - $ref: '#/components/schemas/HXObjectTypeFields'
6944 unevaluatedProperties: false
6945
6946 HXPumpSpeedMetadata:
6947 allOf:
6948 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6949 - $ref: '#/components/schemas/PumpSpeedFields'
6950 - $ref: '#/components/schemas/HXObjectTypeFields'
6951 unevaluatedProperties: false
6952
6953 HXFanSpeedMetadata:
6954 allOf:
6955 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6956 - $ref: '#/components/schemas/FanSpeedFields'
6957 - $ref: '#/components/schemas/HXObjectTypeFields'
6958 unevaluatedProperties: false
6959
6960 HXDamperPositionMetadata:
6961 allOf:
6962 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6963 - $ref: '#/components/schemas/DamperPositionFields'
6964 - $ref: '#/components/schemas/HXObjectTypeFields'
6965 unevaluatedProperties: false
6966
6967 HXAirTemperatureMetadata:
6968 allOf:
6969 - $ref: '#/components/schemas/EquipmentMetadataBase'
6970 - $ref: '#/components/schemas/AirTemperatureFields'
6971 - $ref: '#/components/schemas/HXObjectTypeFields'
6972 unevaluatedProperties: false
6973
6974 HXAirDifferentialPressureMetadata:
6975 allOf:
6976 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6977 - $ref: '#/components/schemas/AirDifferentialPressureFields'
6978 - $ref: '#/components/schemas/HXObjectTypeFields'
6979 unevaluatedProperties: false
6980
6981 HXAirFlowMetadata:
6982 allOf:
6983 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6984 - $ref: '#/components/schemas/AirFlowFields'
6985 - $ref: '#/components/schemas/HXObjectTypeFields'
6986 unevaluatedProperties: false
6987
6988 HXAirPressureMetadata:
6989 allOf:
6990 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
6991 - $ref: '#/components/schemas/AirPressureFields'
6992 - $ref: '#/components/schemas/HXObjectTypeFields'
6993 unevaluatedProperties: false
6994
6995 HXLeakDetectMetadata:
6996 allOf:
6997 - $ref: '#/components/schemas/EquipmentMetadataBase'
6998 - $ref: '#/components/schemas/LeakDetectFields'
6999 - $ref: '#/components/schemas/HXObjectTypeFields'
7000 unevaluatedProperties: false
7001
7002 HXAirRelativeHumidityMetadata:
7003 allOf:
7004 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7005 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7006 - $ref: '#/components/schemas/HXObjectTypeFields'
7007 unevaluatedProperties: false
7008
7009 CRAHLiquidTemperatureMetadata:
7010 allOf:
7011 - $ref: '#/components/schemas/EquipmentMetadataBase'
7012 - $ref: '#/components/schemas/LiquidTemperatureFields'
7013 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7014 unevaluatedProperties: false
7015
7016 CRAHLiquidDifferentialPressureMetadata:
7017 allOf:
7018 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7019 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7020 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7021 unevaluatedProperties: false
7022
7023 CRAHLiquidFlowMetadata:
7024 allOf:
7025 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7026 - $ref: '#/components/schemas/LiquidFlowFields'
7027 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7028 unevaluatedProperties: false
7029
7030 CRAHLiquidPressureMetadata:
7031 allOf:
7032 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7033 - $ref: '#/components/schemas/LiquidPressureFields'
7034 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7035 unevaluatedProperties: false
7036
7037 CRAHStatusMetadata:
7038 allOf:
7039 - $ref: '#/components/schemas/EquipmentMetadataBase'
7040 - $ref: '#/components/schemas/StatusFields'
7041 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7042 unevaluatedProperties: false
7043
7044 CRAHAvailableMetadata:
7045 allOf:
7046 - $ref: '#/components/schemas/EquipmentMetadataBase'
7047 - $ref: '#/components/schemas/AvailableFields'
7048 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7049 unevaluatedProperties: false
7050
7051 CRAHValvePositionMetadata:
7052 allOf:
7053 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7054 - $ref: '#/components/schemas/ValvePositionFields'
7055 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7056 unevaluatedProperties: false
7057
7058 CRAHPumpSpeedMetadata:
7059 allOf:
7060 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7061 - $ref: '#/components/schemas/PumpSpeedFields'
7062 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7063 unevaluatedProperties: false
7064
7065 CRAHFanSpeedMetadata:
7066 allOf:
7067 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7068 - $ref: '#/components/schemas/FanSpeedFields'
7069 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7070 unevaluatedProperties: false
7071
7072 CRAHDamperPositionMetadata:
7073 allOf:
7074 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7075 - $ref: '#/components/schemas/DamperPositionFields'
7076 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7077 unevaluatedProperties: false
7078
7079 CRAHAirTemperatureMetadata:
7080 allOf:
7081 - $ref: '#/components/schemas/EquipmentMetadataBase'
7082 - $ref: '#/components/schemas/AirTemperatureFields'
7083 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7084 unevaluatedProperties: false
7085
7086 CRAHAirDifferentialPressureMetadata:
7087 allOf:
7088 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7089 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7090 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7091 unevaluatedProperties: false
7092
7093 CRAHAirFlowMetadata:
7094 allOf:
7095 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7096 - $ref: '#/components/schemas/AirFlowFields'
7097 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7098 unevaluatedProperties: false
7099
7100 CRAHAirPressureMetadata:
7101 allOf:
7102 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7103 - $ref: '#/components/schemas/AirPressureFields'
7104 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7105 unevaluatedProperties: false
7106
7107 CRAHLeakDetectMetadata:
7108 allOf:
7109 - $ref: '#/components/schemas/EquipmentMetadataBase'
7110 - $ref: '#/components/schemas/LeakDetectFields'
7111 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7112 unevaluatedProperties: false
7113
7114 CRAHAirRelativeHumidityMetadata:
7115 allOf:
7116 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7117 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7118 - $ref: '#/components/schemas/CRAHObjectTypeFields'
7119 unevaluatedProperties: false
7120
7121 CRACLiquidTemperatureMetadata:
7122 allOf:
7123 - $ref: '#/components/schemas/EquipmentMetadataBase'
7124 - $ref: '#/components/schemas/LiquidTemperatureFields'
7125 - $ref: '#/components/schemas/CRACObjectTypeFields'
7126 unevaluatedProperties: false
7127
7128 CRACLiquidDifferentialPressureMetadata:
7129 allOf:
7130 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7131 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7132 - $ref: '#/components/schemas/CRACObjectTypeFields'
7133 unevaluatedProperties: false
7134
7135 CRACLiquidFlowMetadata:
7136 allOf:
7137 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7138 - $ref: '#/components/schemas/LiquidFlowFields'
7139 - $ref: '#/components/schemas/CRACObjectTypeFields'
7140 unevaluatedProperties: false
7141
7142 CRACLiquidPressureMetadata:
7143 allOf:
7144 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7145 - $ref: '#/components/schemas/LiquidPressureFields'
7146 - $ref: '#/components/schemas/CRACObjectTypeFields'
7147 unevaluatedProperties: false
7148
7149 CRACStatusMetadata:
7150 allOf:
7151 - $ref: '#/components/schemas/EquipmentMetadataBase'
7152 - $ref: '#/components/schemas/StatusFields'
7153 - $ref: '#/components/schemas/CRACObjectTypeFields'
7154 unevaluatedProperties: false
7155
7156 CRACAvailableMetadata:
7157 allOf:
7158 - $ref: '#/components/schemas/EquipmentMetadataBase'
7159 - $ref: '#/components/schemas/AvailableFields'
7160 - $ref: '#/components/schemas/CRACObjectTypeFields'
7161 unevaluatedProperties: false
7162
7163 CRACValvePositionMetadata:
7164 allOf:
7165 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7166 - $ref: '#/components/schemas/ValvePositionFields'
7167 - $ref: '#/components/schemas/CRACObjectTypeFields'
7168 unevaluatedProperties: false
7169
7170 CRACPumpSpeedMetadata:
7171 allOf:
7172 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7173 - $ref: '#/components/schemas/PumpSpeedFields'
7174 - $ref: '#/components/schemas/CRACObjectTypeFields'
7175 unevaluatedProperties: false
7176
7177 CRACFanSpeedMetadata:
7178 allOf:
7179 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7180 - $ref: '#/components/schemas/FanSpeedFields'
7181 - $ref: '#/components/schemas/CRACObjectTypeFields'
7182 unevaluatedProperties: false
7183
7184 CRACDamperPositionMetadata:
7185 allOf:
7186 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7187 - $ref: '#/components/schemas/DamperPositionFields'
7188 - $ref: '#/components/schemas/CRACObjectTypeFields'
7189 unevaluatedProperties: false
7190
7191 CRACAirTemperatureMetadata:
7192 allOf:
7193 - $ref: '#/components/schemas/EquipmentMetadataBase'
7194 - $ref: '#/components/schemas/AirTemperatureFields'
7195 - $ref: '#/components/schemas/CRACObjectTypeFields'
7196 unevaluatedProperties: false
7197
7198 CRACAirDifferentialPressureMetadata:
7199 allOf:
7200 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7201 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7202 - $ref: '#/components/schemas/CRACObjectTypeFields'
7203 unevaluatedProperties: false
7204
7205 CRACAirFlowMetadata:
7206 allOf:
7207 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7208 - $ref: '#/components/schemas/AirFlowFields'
7209 - $ref: '#/components/schemas/CRACObjectTypeFields'
7210 unevaluatedProperties: false
7211
7212 CRACAirPressureMetadata:
7213 allOf:
7214 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7215 - $ref: '#/components/schemas/AirPressureFields'
7216 - $ref: '#/components/schemas/CRACObjectTypeFields'
7217 unevaluatedProperties: false
7218
7219 CRACLeakDetectMetadata:
7220 allOf:
7221 - $ref: '#/components/schemas/EquipmentMetadataBase'
7222 - $ref: '#/components/schemas/LeakDetectFields'
7223 - $ref: '#/components/schemas/CRACObjectTypeFields'
7224 unevaluatedProperties: false
7225
7226 CRACAirRelativeHumidityMetadata:
7227 allOf:
7228 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7229 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7230 - $ref: '#/components/schemas/CRACObjectTypeFields'
7231 unevaluatedProperties: false
7232
7233 AHULiquidTemperatureMetadata:
7234 allOf:
7235 - $ref: '#/components/schemas/EquipmentMetadataBase'
7236 - $ref: '#/components/schemas/LiquidTemperatureFields'
7237 - $ref: '#/components/schemas/AHUObjectTypeFields'
7238 unevaluatedProperties: false
7239
7240 AHULiquidDifferentialPressureMetadata:
7241 allOf:
7242 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7243 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7244 - $ref: '#/components/schemas/AHUObjectTypeFields'
7245 unevaluatedProperties: false
7246
7247 AHULiquidFlowMetadata:
7248 allOf:
7249 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7250 - $ref: '#/components/schemas/LiquidFlowFields'
7251 - $ref: '#/components/schemas/AHUObjectTypeFields'
7252 unevaluatedProperties: false
7253
7254 AHULiquidPressureMetadata:
7255 allOf:
7256 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7257 - $ref: '#/components/schemas/LiquidPressureFields'
7258 - $ref: '#/components/schemas/AHUObjectTypeFields'
7259 unevaluatedProperties: false
7260
7261 AHUStatusMetadata:
7262 allOf:
7263 - $ref: '#/components/schemas/EquipmentMetadataBase'
7264 - $ref: '#/components/schemas/StatusFields'
7265 - $ref: '#/components/schemas/AHUObjectTypeFields'
7266 unevaluatedProperties: false
7267
7268 AHUAvailableMetadata:
7269 allOf:
7270 - $ref: '#/components/schemas/EquipmentMetadataBase'
7271 - $ref: '#/components/schemas/AvailableFields'
7272 - $ref: '#/components/schemas/AHUObjectTypeFields'
7273 unevaluatedProperties: false
7274
7275 AHUValvePositionMetadata:
7276 allOf:
7277 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7278 - $ref: '#/components/schemas/ValvePositionFields'
7279 - $ref: '#/components/schemas/AHUObjectTypeFields'
7280 unevaluatedProperties: false
7281
7282 AHUPumpSpeedMetadata:
7283 allOf:
7284 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7285 - $ref: '#/components/schemas/PumpSpeedFields'
7286 - $ref: '#/components/schemas/AHUObjectTypeFields'
7287 unevaluatedProperties: false
7288
7289 AHUFanSpeedMetadata:
7290 allOf:
7291 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7292 - $ref: '#/components/schemas/FanSpeedFields'
7293 - $ref: '#/components/schemas/AHUObjectTypeFields'
7294 unevaluatedProperties: false
7295
7296 AHUDamperPositionMetadata:
7297 allOf:
7298 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7299 - $ref: '#/components/schemas/DamperPositionFields'
7300 - $ref: '#/components/schemas/AHUObjectTypeFields'
7301 unevaluatedProperties: false
7302
7303 AHUAirTemperatureMetadata:
7304 allOf:
7305 - $ref: '#/components/schemas/EquipmentMetadataBase'
7306 - $ref: '#/components/schemas/AirTemperatureFields'
7307 - $ref: '#/components/schemas/AHUObjectTypeFields'
7308 unevaluatedProperties: false
7309
7310 AHUAirDifferentialPressureMetadata:
7311 allOf:
7312 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7313 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7314 - $ref: '#/components/schemas/AHUObjectTypeFields'
7315 unevaluatedProperties: false
7316
7317 AHUAirFlowMetadata:
7318 allOf:
7319 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7320 - $ref: '#/components/schemas/AirFlowFields'
7321 - $ref: '#/components/schemas/AHUObjectTypeFields'
7322 unevaluatedProperties: false
7323
7324 AHUAirPressureMetadata:
7325 allOf:
7326 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7327 - $ref: '#/components/schemas/AirPressureFields'
7328 - $ref: '#/components/schemas/AHUObjectTypeFields'
7329 unevaluatedProperties: false
7330
7331 AHULeakDetectMetadata:
7332 allOf:
7333 - $ref: '#/components/schemas/EquipmentMetadataBase'
7334 - $ref: '#/components/schemas/LeakDetectFields'
7335 - $ref: '#/components/schemas/AHUObjectTypeFields'
7336 unevaluatedProperties: false
7337
7338 AHUAirRelativeHumidityMetadata:
7339 allOf:
7340 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7341 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7342 - $ref: '#/components/schemas/AHUObjectTypeFields'
7343 unevaluatedProperties: false
7344
7345 ChillerLiquidTemperatureMetadata:
7346 allOf:
7347 - $ref: '#/components/schemas/EquipmentMetadataBase'
7348 - $ref: '#/components/schemas/LiquidTemperatureFields'
7349 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7350 unevaluatedProperties: false
7351
7352 ChillerLiquidDifferentialPressureMetadata:
7353 allOf:
7354 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7355 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7356 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7357 unevaluatedProperties: false
7358
7359 ChillerLiquidFlowMetadata:
7360 allOf:
7361 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7362 - $ref: '#/components/schemas/LiquidFlowFields'
7363 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7364 unevaluatedProperties: false
7365
7366 ChillerLiquidPressureMetadata:
7367 allOf:
7368 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7369 - $ref: '#/components/schemas/LiquidPressureFields'
7370 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7371 unevaluatedProperties: false
7372
7373 ChillerStatusMetadata:
7374 allOf:
7375 - $ref: '#/components/schemas/EquipmentMetadataBase'
7376 - $ref: '#/components/schemas/StatusFields'
7377 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7378 unevaluatedProperties: false
7379
7380 ChillerAvailableMetadata:
7381 allOf:
7382 - $ref: '#/components/schemas/EquipmentMetadataBase'
7383 - $ref: '#/components/schemas/AvailableFields'
7384 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7385 unevaluatedProperties: false
7386
7387 ChillerValvePositionMetadata:
7388 allOf:
7389 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7390 - $ref: '#/components/schemas/ValvePositionFields'
7391 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7392 unevaluatedProperties: false
7393
7394 ChillerPumpSpeedMetadata:
7395 allOf:
7396 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7397 - $ref: '#/components/schemas/PumpSpeedFields'
7398 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7399 unevaluatedProperties: false
7400
7401 ChillerFanSpeedMetadata:
7402 allOf:
7403 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7404 - $ref: '#/components/schemas/FanSpeedFields'
7405 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7406 unevaluatedProperties: false
7407
7408 ChillerDamperPositionMetadata:
7409 allOf:
7410 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7411 - $ref: '#/components/schemas/DamperPositionFields'
7412 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7413 unevaluatedProperties: false
7414
7415 ChillerAirTemperatureMetadata:
7416 allOf:
7417 - $ref: '#/components/schemas/EquipmentMetadataBase'
7418 - $ref: '#/components/schemas/AirTemperatureFields'
7419 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7420 unevaluatedProperties: false
7421
7422 ChillerAirDifferentialPressureMetadata:
7423 allOf:
7424 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7425 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7426 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7427 unevaluatedProperties: false
7428
7429 ChillerAirFlowMetadata:
7430 allOf:
7431 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7432 - $ref: '#/components/schemas/AirFlowFields'
7433 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7434 unevaluatedProperties: false
7435
7436 ChillerAirPressureMetadata:
7437 allOf:
7438 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7439 - $ref: '#/components/schemas/AirPressureFields'
7440 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7441 unevaluatedProperties: false
7442
7443 ChillerLeakDetectMetadata:
7444 allOf:
7445 - $ref: '#/components/schemas/EquipmentMetadataBase'
7446 - $ref: '#/components/schemas/LeakDetectFields'
7447 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7448 unevaluatedProperties: false
7449
7450 ChillerAirRelativeHumidityMetadata:
7451 allOf:
7452 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7453 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7454 - $ref: '#/components/schemas/ChillerObjectTypeFields'
7455 unevaluatedProperties: false
7456
7457 # --- Tank — BMS published ------------------------------------------------
7458
7459 TankLiquidTemperatureMetadata:
7460 allOf:
7461 - $ref: '#/components/schemas/EquipmentMetadataBase'
7462 - $ref: '#/components/schemas/LiquidTemperatureFields'
7463 - $ref: '#/components/schemas/TankObjectTypeFields'
7464 unevaluatedProperties: false
7465
7466 TankLiquidDifferentialPressureMetadata:
7467 allOf:
7468 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7469 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7470 - $ref: '#/components/schemas/TankObjectTypeFields'
7471 unevaluatedProperties: false
7472
7473 TankLiquidFlowMetadata:
7474 allOf:
7475 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7476 - $ref: '#/components/schemas/LiquidFlowFields'
7477 - $ref: '#/components/schemas/TankObjectTypeFields'
7478 unevaluatedProperties: false
7479
7480 TankLiquidPressureMetadata:
7481 allOf:
7482 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7483 - $ref: '#/components/schemas/LiquidPressureFields'
7484 - $ref: '#/components/schemas/TankObjectTypeFields'
7485 unevaluatedProperties: false
7486
7487 TankStatusMetadata:
7488 allOf:
7489 - $ref: '#/components/schemas/EquipmentMetadataBase'
7490 - $ref: '#/components/schemas/StatusFields'
7491 - $ref: '#/components/schemas/TankObjectTypeFields'
7492 unevaluatedProperties: false
7493
7494 TankAvailableMetadata:
7495 allOf:
7496 - $ref: '#/components/schemas/EquipmentMetadataBase'
7497 - $ref: '#/components/schemas/AvailableFields'
7498 - $ref: '#/components/schemas/TankObjectTypeFields'
7499 unevaluatedProperties: false
7500
7501 TankValvePositionMetadata:
7502 allOf:
7503 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7504 - $ref: '#/components/schemas/ValvePositionFields'
7505 - $ref: '#/components/schemas/TankObjectTypeFields'
7506 unevaluatedProperties: false
7507
7508 TankPumpSpeedMetadata:
7509 allOf:
7510 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7511 - $ref: '#/components/schemas/PumpSpeedFields'
7512 - $ref: '#/components/schemas/TankObjectTypeFields'
7513 unevaluatedProperties: false
7514
7515 TankFanSpeedMetadata:
7516 allOf:
7517 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7518 - $ref: '#/components/schemas/FanSpeedFields'
7519 - $ref: '#/components/schemas/TankObjectTypeFields'
7520 unevaluatedProperties: false
7521
7522 TankDamperPositionMetadata:
7523 allOf:
7524 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7525 - $ref: '#/components/schemas/DamperPositionFields'
7526 - $ref: '#/components/schemas/TankObjectTypeFields'
7527 unevaluatedProperties: false
7528
7529 TankAirTemperatureMetadata:
7530 allOf:
7531 - $ref: '#/components/schemas/EquipmentMetadataBase'
7532 - $ref: '#/components/schemas/AirTemperatureFields'
7533 - $ref: '#/components/schemas/TankObjectTypeFields'
7534 unevaluatedProperties: false
7535
7536 TankAirDifferentialPressureMetadata:
7537 allOf:
7538 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7539 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7540 - $ref: '#/components/schemas/TankObjectTypeFields'
7541 unevaluatedProperties: false
7542
7543 TankAirFlowMetadata:
7544 allOf:
7545 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7546 - $ref: '#/components/schemas/AirFlowFields'
7547 - $ref: '#/components/schemas/TankObjectTypeFields'
7548 unevaluatedProperties: false
7549
7550 TankAirPressureMetadata:
7551 allOf:
7552 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7553 - $ref: '#/components/schemas/AirPressureFields'
7554 - $ref: '#/components/schemas/TankObjectTypeFields'
7555 unevaluatedProperties: false
7556
7557 TankLeakDetectMetadata:
7558 allOf:
7559 - $ref: '#/components/schemas/EquipmentMetadataBase'
7560 - $ref: '#/components/schemas/LeakDetectFields'
7561 - $ref: '#/components/schemas/TankObjectTypeFields'
7562 unevaluatedProperties: false
7563
7564 TankAirRelativeHumidityMetadata:
7565 allOf:
7566 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7567 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7568 - $ref: '#/components/schemas/TankObjectTypeFields'
7569 unevaluatedProperties: false
7570
7571 # --- Tank — Integration published ----------------------------------------
7572
7573 # --- GenericObject — BMS published ----------------------------------------
7574
7575 GenericObjectLiquidTemperatureMetadata:
7576 allOf:
7577 - $ref: '#/components/schemas/EquipmentMetadataBase'
7578 - $ref: '#/components/schemas/LiquidTemperatureFields'
7579 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7580 unevaluatedProperties: false
7581
7582 GenericObjectLiquidDifferentialPressureMetadata:
7583 allOf:
7584 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7585 - $ref: '#/components/schemas/LiquidDifferentialPressureFields'
7586 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7587 unevaluatedProperties: false
7588
7589 GenericObjectLiquidFlowMetadata:
7590 allOf:
7591 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7592 - $ref: '#/components/schemas/LiquidFlowFields'
7593 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7594 unevaluatedProperties: false
7595
7596 GenericObjectLiquidPressureMetadata:
7597 allOf:
7598 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7599 - $ref: '#/components/schemas/LiquidPressureFields'
7600 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7601 unevaluatedProperties: false
7602
7603 GenericObjectStatusMetadata:
7604 allOf:
7605 - $ref: '#/components/schemas/EquipmentMetadataBase'
7606 - $ref: '#/components/schemas/StatusFields'
7607 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7608 unevaluatedProperties: false
7609
7610 GenericObjectAvailableMetadata:
7611 allOf:
7612 - $ref: '#/components/schemas/EquipmentMetadataBase'
7613 - $ref: '#/components/schemas/AvailableFields'
7614 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7615 unevaluatedProperties: false
7616
7617 GenericObjectValvePositionMetadata:
7618 allOf:
7619 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7620 - $ref: '#/components/schemas/ValvePositionFields'
7621 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7622 unevaluatedProperties: false
7623
7624 GenericObjectPumpSpeedMetadata:
7625 allOf:
7626 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7627 - $ref: '#/components/schemas/PumpSpeedFields'
7628 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7629 unevaluatedProperties: false
7630
7631 GenericObjectFanSpeedMetadata:
7632 allOf:
7633 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7634 - $ref: '#/components/schemas/FanSpeedFields'
7635 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7636 unevaluatedProperties: false
7637
7638 GenericObjectDamperPositionMetadata:
7639 allOf:
7640 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7641 - $ref: '#/components/schemas/DamperPositionFields'
7642 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7643 unevaluatedProperties: false
7644
7645 GenericObjectAirTemperatureMetadata:
7646 allOf:
7647 - $ref: '#/components/schemas/EquipmentMetadataBase'
7648 - $ref: '#/components/schemas/AirTemperatureFields'
7649 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7650 unevaluatedProperties: false
7651
7652 GenericObjectAirDifferentialPressureMetadata:
7653 allOf:
7654 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7655 - $ref: '#/components/schemas/AirDifferentialPressureFields'
7656 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7657 unevaluatedProperties: false
7658
7659 GenericObjectAirFlowMetadata:
7660 allOf:
7661 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7662 - $ref: '#/components/schemas/AirFlowFields'
7663 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7664 unevaluatedProperties: false
7665
7666 GenericObjectAirPressureMetadata:
7667 allOf:
7668 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7669 - $ref: '#/components/schemas/AirPressureFields'
7670 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7671 unevaluatedProperties: false
7672
7673 GenericObjectSoundMetadata:
7674 allOf:
7675 - $ref: '#/components/schemas/EquipmentMetadataBase'
7676 - $ref: '#/components/schemas/SoundFields'
7677 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7678 unevaluatedProperties: false
7679
7680 GenericObjectLeakDetectMetadata:
7681 allOf:
7682 - $ref: '#/components/schemas/EquipmentMetadataBase'
7683 - $ref: '#/components/schemas/LeakDetectFields'
7684 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7685 unevaluatedProperties: false
7686
7687 GenericObjectAirRelativeHumidityMetadata:
7688 allOf:
7689 - $ref: '#/components/schemas/EquipmentMeasurementModeBase'
7690 - $ref: '#/components/schemas/AirRelativeHumidityFields'
7691 - $ref: '#/components/schemas/GenericObjectObjectTypeFields'
7692 unevaluatedProperties: false
7693
7694 # --- GenericObject — Integration published --------------------------------
7695
7696 GenericObjectLiquidTemperatureSpRequestMetadata:
7697 allOf:
7698 - $ref: '#/components/schemas/EquipmentIntegrationMetadataBase'
7699 - $ref: '#/components/schemas/GenericObjectLiquidTemperatureSpRequestFields'
7700 unevaluatedProperties: false
7701
7702 # =========================================================================
7703 # GenericPoint — field fragment and composed schemas
7704 # =========================================================================
7705
7706 GenericPointFields:
7707 type: object
7708 description: >
7709 Field fragment for a vendor-specific or unmapped GenericPoint.
7710 `processArea` is required.
7711
7712 `engUnit` and `stateText` are both optional but **mutually exclusive** —
7713 include at most one. See the two variants below.
7714 required:
7715 - processArea
7716 properties:
7717 pointType:
7718 type: string
7719 enum: [GenericPoint]
7720 processArea:
7721 type: array
7722 items:
7723 type: string
7724 description: >
7725 Required for GenericPoint. Describes the measurement context.
7726 phase:
7727 type: string
7728 enum: [A, B, C, "1", "2", "3"]
7729 description: >
7730 Optional electrical phase identifier. Use for phase-specific
7731 generic measurements on power-capable equipment. Letter form
7732 (A/B/C) and numeric form (1/2/3) are both accepted.
7733 integration:
7734 type: string
7735 description: >
7736 Optional integration identifier. When present, this integration
7737 is responsible for publishing the value for this point.
7738 The value topic is derived using the standard topic derivation rule.
7739 isSetpoint:
7740 type: boolean
7741 description: >
7742 Optional. When true, indicates this point is a setpoint (a target
7743 value written to control equipment behavior).
7744 anyOf:
7745 - title: Measurement
7746 description: >
7747 Continuous measurement with a known engineering unit.
7748 When `engUnit` is present, `stateText` must be absent.
7749 properties:
7750 engUnit:
7751 type: string
7752 description: >
7753 Engineering unit for the measurement.
7754 not:
7755 required: [stateText]
7756 - title: State
7757 description: >
7758 Binary or enumerated state point.
7759 When `stateText` is present, `engUnit` must be absent.
7760 properties:
7761 stateText:
7762 type: array
7763 description: >
7764 State label mapping. Each entry maps a numeric state value to its
7765 human-readable label (e.g., `[{value: 0, text: "Off"}, {value: 1, text: "On"}]`).
7766 items:
7767 type: object
7768 required: [value, text]
7769 properties:
7770 value:
7771 type: integer
7772 description: Numeric state value.
7773 text:
7774 type: string
7775 description: Human-readable label for this state.
7776 additionalProperties: false
7777 not:
7778 required: [engUnit]
7779
7780 GenericEquipmentPointMetadata:
7781 description: |
7782 Metadata for a GenericPoint on any generic equipment objectType.
7783
7784 Follows the standard equipment identifier modes:
7785 - **Named-object mode**: objectName + objectId required; servesId
7786 optional; associateId prohibited.
7787 - **Associate mode**: associateId required; objectName/objectId/servesId
7788 prohibited.
7789
7790 Unlike typed points, `engUnit` and `stateText` are both optional.
7791 `processArea` is required.
7792 allOf:
7793 - $ref: '#/components/schemas/EquipmentMetadataBase'
7794 - $ref: '#/components/schemas/GenericPointFields'
7795 unevaluatedProperties: false
7796
7797 GenericPowerMeterPointMetadata:
7798 description: |
7799 Metadata for a GenericPoint on PowerMeter equipment.
7800 Inherits the standard PowerMeter identifiers
7801 (objectName, objectId, servesId all required).
7802 `processArea` is required. `engUnit`, `stateText`, `phase`, and
7803 `integration` are optional.
7804 allOf:
7805 - $ref: '#/components/schemas/PowerMeterMetadataBase'
7806 - $ref: '#/components/schemas/GenericPointFields'
7807 unevaluatedProperties: false