Generic Object — Metadata

View as Markdown

Subscribe to BMS-published metadata for GenericObject points.

Direction: Subscribe (receive)

Channel

BMS/v1/PUB/Metadata/GenericObject/{pointType}/{tagPath}

BMS-published metadata for GenericObject points. Includes integration-owned points which carries the integration field.

MQTT wildcard examples

  • All GenericObject metadata: BMS/v1/PUB/Metadata/GenericObject/#

Parameters

ParameterDescription
pointTypeGenericObject point type. Values: LiquidTemperature, LiquidDifferentialPressure, LiquidFlow, LiquidPressure, Status, Available … (19 total)
tagPathVendor-defined hierarchical tag path.

Message: GenericObject LiquidTemperature Metadata

Content Type: application/json

Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject LiquidDifferentialPressure Metadata

Content Type: application/json

Payload

Measurement fields for LiquidDifferentialPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject LiquidFlow Metadata

Content Type: application/json

Payload

Measurement fields for LiquidFlow. Typical engUnit: LPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject LiquidPressure Metadata

Content Type: application/json

Payload

Measurement fields for LiquidPressure. Typical engUnit: kPa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject Status Metadata

Content Type: application/json

Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject Available Metadata

Content Type: application/json

Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject ValvePosition Metadata

Content Type: application/json

Payload

Measurement fields for ValvePosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject PumpSpeed Metadata

Content Type: application/json

Payload

Measurement fields for PumpSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject FanSpeed Metadata

Content Type: application/json

Payload

Measurement fields for FanSpeed. Typical engUnit: RPM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject DamperPosition Metadata

Content Type: application/json

Payload

Measurement fields for DamperPosition. Typical engUnit: %. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject AirTemperature Metadata

Content Type: application/json

Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject AirDifferentialPressure Metadata

Content Type: application/json

Payload

Measurement fields for AirDifferentialPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject AirRelativeHumidity Metadata

Content Type: application/json

Payload

Measurement fields for AirRelativeHumidity. Typical engUnit: %RH. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject AirFlow Metadata

Content Type: application/json

Payload

Measurement fields for AirFlow. Typical engUnit: CFM. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject AirPressure Metadata

Content Type: application/json

Payload

Measurement fields for AirPressure. Typical engUnit: Pa. The identifier (named-object XOR associate) and measurement (engUnit XOR stateText) constraints are independent and enforced by EquipmentMeasurementModeBase.

Requires a non-empty engUnit string (mutually exclusive with stateText).

NameTypeRequiredDescription
engUnitstringYesEngineering unit for the measurement.

Required for state/status/alarm points that carry no engineering unit.

NameTypeRequiredDescription
stateTextarray<map<string, any>>YesState label mapping. Each entry maps a numeric state value to its human-readable label (e.g., [{value: 0, text: "Off"}, {value: 1, text: "On"}]).
1{
2 "engUnit": "string"
3}

Message: GenericObject LeakDetect Metadata

Content Type: application/json

Payload

0 = No Leak, 1 = Leak. No engUnit.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject LiquidTemperatureSpRequest Metadata

Content Type: application/json

Payload

Setpoint request for a GenericObject. BMS publishes metadata; the integration publishes the value to the derived topic.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericObject Sound Metadata

Content Type: application/json

Payload

Optional fields common to all generic equipment metadata, regardless of identifier mode.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}

Message: GenericEquipment GenericPoint Metadata

Content Type: application/json

Payload

Field fragment for a vendor-specific or unmapped GenericPoint. processArea is required.

engUnit and stateText are both optional but mutually exclusive — include at most one. See the two variants below.

Object Mode

  • objectName and objectId are required.
  • servesId is optional in Named-object mode.
  • associateId must not be present.

Incompatible with EquipmentAssociateMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
objectNamestringYesHuman-readable equipment name.
objectIdstringYesStable unique identifier for the equipment.
servesIdarray<string>NoOptional list of objectIds of entities this equipment serves. Only valid in Named-object mode. Only valid in Named-object mode — must not appear in Associate mode.

Associate Mode

  • associateId is required.
  • objectName, objectId, and servesId must not be present.

Incompatible with EquipmentNamedObjectMode — validators enforce this via the parent oneOf.

NameTypeRequiredDescription
associateIdstringYesIdentifier of the associated entity.
1{
2 "objectName": "string",
3 "objectId": "string",
4 "servesId": [
5 "string"
6 ]
7}