SM Profiles define the semantic contract for data flowing through our EMQX pipeline. They describe the shape, types, and meaning of each field independently of transport protocol (OPC UA, MQTT, SQL).
All schemas use JSON Schema 2020-12. Payloads reference their profile via the
$namespace field.
Profiles
BeverageOEEType
CustomOEE metrics, production counts, rates, and time allocation for bottling and packaging.
| Field | Type | Unit / Note |
|---|---|---|
| oee * | number | 0–1 |
| availability * | number | 0–1 |
| performance * | number | 0–1 |
| quality * | number | 0–1 |
| countInfeed | integer | units |
| countOutfeed | integer | units |
| countDefect | integer | units |
| rateActual | integer | units/hr |
| rateStandard | integer | units/hr |
| timeRunning | integer | seconds |
| timeIdle | integer | seconds |
| timeDownPlanned | integer | seconds |
| timeDownUnplanned | integer | seconds |
* required
LiquidProcessDataType
CustomProcess variables for batch mixing, storage tanks, and pasteurization.
| Field | Type | Unit / Note |
|---|---|---|
| temperature * | number | °C |
| state * | object | PackML state |
| state.name | string | e.g. "Running" |
| state.code | integer | numeric code |
| state.type | string | classification |
| state.duration | integer | seconds |
| flowRate | integer | L/h |
| weight | number | kg |
* required
Machine Identification
VDMA 40001-1Standard OPC UA Machinery profile for equipment identity. Applied to all Enterprise B assets.
| Field | Type | Note |
|---|---|---|
| manufacturer * | string | |
| serialNumber * | string | |
| productInstanceUri * | uri | globally unique |
| model | string | |
| productCode | string | catalog code |
| deviceClass | string | e.g. "Filler" |
| yearOfConstruction | integer | |
| location | string | ISA-95 path |
| assetId | string | plant tag |
* required
Example payloads
{
"$namespace": "https://github.com/emqx/proveit/profiles/BeverageOEEType/v1.0",
"timestamp": "2026-02-13T14:30:00Z",
"site": "Site1",
"area": "fillerproduction",
"line": "fillingline01",
"oee": 0.72,
"availability": 0.89,
"performance": 0.85,
"quality": 0.95,
"countInfeed": 43200,
"countOutfeed": 41040,
"countDefect": 2160,
"rateActual": 7200,
"rateStandard": 8500,
"timeRunning": 28800,
"timeIdle": 1800,
"timeDownPlanned": 3600,
"timeDownUnplanned": 1200
}
Data flow
At each stage, data conforms to the profiles above. The profiles are the semantic contract that makes data interpretable regardless of transport (OPC UA, MQTT, or SQL).
OPC UA tag → profile field (BeverageOEEType)
| Profile field | NeuronEX tag | OPC UA path |
|---|---|---|
oee |
metric/oee |
{Site}/{Area}/{Line}/metric/oee
|
availability |
metric/availability
|
{Site}/{Area}/{Line}/metric/availability
|
performance |
metric/performance
|
{Site}/{Area}/{Line}/metric/performance
|
quality |
metric/quality |
{Site}/{Area}/{Line}/metric/quality
|
countInfeed |
input/countinfeed |
{Site}/{Area}/{Line}/metric/input/countinfeed
|
countOutfeed |
input/countoutfeed
|
{Site}/{Area}/{Line}/metric/input/countoutfeed
|
countDefect |
input/countdefect |
{Site}/{Area}/{Line}/metric/input/countdefect
|
rateActual |
input/rateactual |
{Site}/{Area}/{Line}/metric/input/rateactual
|
timeRunning |
input/timerunning |
{Site}/{Area}/{Line}/metric/input/timerunning
|
timeDownUnplanned |
input/timedownunplanned |
{Site}/{Area}/{Line}/metric/input/timedownunplanned
|