2025-05-26 17:09:18 +02:00
{
"general" : {
"name" : {
"default" : "Measurement Configuration" ,
"rules" : {
"type" : "string" ,
"description" : "A human-readable name or label for this measurement configuration."
}
} ,
"id" : {
"default" : null ,
"rules" : {
"type" : "string" ,
"nullable" : true ,
"description" : "A unique identifier for this configuration. If not provided, defaults to null."
}
} ,
"unit" : {
"default" : "unitless" ,
"rules" : {
"type" : "string" ,
"description" : "The unit of measurement for this configuration (e.g., 'meters', 'seconds', 'unitless')."
}
} ,
"logging" : {
"logLevel" : {
"default" : "info" ,
"rules" : {
"type" : "enum" ,
"values" : [
{
"value" : "debug" ,
"description" : "Log messages are printed for debugging purposes."
} ,
{
"value" : "info" ,
"description" : "Informational messages are printed."
} ,
{
"value" : "warn" ,
"description" : "Warning messages are printed."
} ,
{
"value" : "error" ,
"description" : "Error messages are printed."
}
]
}
} ,
"enabled" : {
"default" : true ,
"rules" : {
"type" : "boolean" ,
"description" : "Indicates whether logging is active. If true, log messages will be generated."
}
}
}
} ,
"functionality" : {
"softwareType" : {
"default" : "measurement" ,
"rules" : {
"type" : "string" ,
"description" : "Specified software type for this configuration."
}
} ,
"role" : {
"default" : "Sensor" ,
"rules" : {
"type" : "string" ,
"description" : "Indicates the role this configuration plays (e.g., sensor, controller, etc.)."
}
2025-06-25 10:55:50 +02:00
} ,
"positionVsParent" : {
"default" : "atEquipment" ,
"rules" : {
"type" : "enum" ,
"values" : [
{
"value" : "atEquipment" ,
"description" : "The measurement is taken at the equipment level, typically representing the overall state or performance of the equipment."
} ,
{
"value" : "upstream" ,
"description" : "The measurement is taken upstream, meaning it is related to inputs or conditions that affect the equipment's operation, such as supply conditions or environmental factors."
} ,
{
"value" : "downstream" ,
"description" : "The measurement is taken downstream, indicating it relates to outputs or results of the equipment's operation, such as product quality or performance metrics."
}
] ,
"description" : "Defines the position of the measurement relative to its parent equipment or system."
}
2025-05-26 17:09:18 +02:00
}
} ,
"asset" : {
"uuid" : {
"default" : null ,
"rules" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Asset tag number which is a universally unique identifier for this asset. May be null if not assigned."
}
} ,
2025-06-25 10:55:50 +02:00
"tagCode" : {
"default" : null ,
"rules" : {
"type" : "string" ,
"nullable" : true ,
"description" : "Asset tag code which is a unique identifier for this asset. May be null if not assigned."
}
} ,
2025-05-26 17:09:18 +02:00
"geoLocation" : {
"default" : {
"x" : 0 ,
"y" : 0 ,
"z" : 0
} ,
"rules" : {
"type" : "object" ,
"description" : "An object representing the asset's physical coordinates or location." ,
"schema" : {
"x" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"description" : "X coordinate of the asset's location."
}
} ,
"y" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"description" : "Y coordinate of the asset's location."
}
} ,
"z" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"description" : "Z coordinate of the asset's location."
}
}
}
}
} ,
"supplier" : {
"default" : "Unknown" ,
"rules" : {
"type" : "string" ,
"description" : "The supplier or manufacturer of the asset."
}
} ,
2025-06-25 10:55:50 +02:00
"category" : {
2025-05-26 17:09:18 +02:00
"default" : "sensor" ,
"rules" : {
"type" : "enum" ,
"values" : [
{
"value" : "sensor" ,
"description" : "A device that detects or measures a physical property and responds to it (e.g. temperature sensor)."
}
]
}
} ,
2025-06-25 10:55:50 +02:00
"type" : {
2025-05-26 17:09:18 +02:00
"default" : "pressure" ,
"rules" : {
"type" : "string" ,
"description" : "A more specific classification within 'type'. For example, 'pressure' for a pressure sensor."
}
} ,
"model" : {
"default" : "Unknown" ,
"rules" : {
"type" : "string" ,
"description" : "A user-defined or manufacturer-defined model identifier for the asset."
}
} ,
2025-06-25 10:55:50 +02:00
"unit" : {
"default" : "unitless" ,
"rules" : {
"type" : "string" ,
"description" : "The unit of measurement for this asset (e.g., 'meters', 'seconds', 'unitless')."
}
} ,
2025-05-26 17:09:18 +02:00
"accuracy" : {
"default" : null ,
"rules" : {
"type" : "number" ,
"nullable" : true ,
"description" : "The accuracy of the sensor, typically represented as a percentage or absolute value."
}
} ,
"repeatability" : {
"default" : null ,
"rules" : {
"type" : "number" ,
"nullable" : true ,
"description" : "The repeatability of the sensor, typically represented as a percentage or absolute value."
}
}
} ,
"scaling" : {
"enabled" : {
"default" : false ,
"rules" : {
"type" : "boolean" ,
"description" : "Indicates whether input scaling is active. If true, input values will be scaled according to the parameters below."
}
} ,
"inputMin" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"description" : "The minimum expected input value before scaling."
}
} ,
"inputMax" : {
"default" : 1 ,
"rules" : {
"type" : "number" ,
"description" : "The maximum expected input value before scaling."
}
} ,
"absMin" : {
"default" : 50 ,
"rules" : {
"type" : "number" ,
"description" : "The absolute minimum value that can be read or displayed after scaling."
}
} ,
"absMax" : {
"default" : 100 ,
"rules" : {
"type" : "number" ,
"description" : "The absolute maximum value that can be read or displayed after scaling."
}
} ,
"offset" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"description" : "A constant offset to apply to the scaled output (e.g., to calibrate zero-points)."
}
}
} ,
"smoothing" : {
"smoothWindow" : {
"default" : 10 ,
"rules" : {
"type" : "number" ,
"min" : 1 ,
"description" : "Determines the size of the data window (number of samples) used for smoothing operations."
}
} ,
"smoothMethod" : {
"default" : "mean" ,
"rules" : {
"type" : "enum" ,
"values" : [
{
"value" : "none" ,
"description" : "No smoothing is applied; raw data is passed through."
} ,
{
"value" : "mean" ,
"description" : "Calculates the simple arithmetic mean (average) of the data points in a window."
} ,
{
"value" : "min" ,
"description" : "Selects the smallest (minimum) value among the data points in a window."
} ,
{
"value" : "max" ,
"description" : "Selects the largest (maximum) value among the data points in a window."
} ,
{
"value" : "sd" ,
"description" : "Computes the standard deviation to measure the variation or spread of the data."
} ,
{
"value" : "lowPass" ,
"description" : "Filters out high-frequency components, allowing only lower frequencies to pass."
} ,
{
"value" : "highPass" ,
"description" : "Filters out low-frequency components, allowing only higher frequencies to pass."
} ,
{
"value" : "weightedMovingAverage" ,
"description" : "Applies varying weights to each data point in a window before averaging."
} ,
{
"value" : "bandPass" ,
"description" : "Filters the signal to allow only frequencies within a specific range to pass."
} ,
{
"value" : "median" ,
"description" : "Selects the median (middle) value in a window, minimizing the effect of outliers."
} ,
{
"value" : "kalman" ,
"description" : "Applies a Kalman filter to combine noisy measurements over time for more accurate estimates."
} ,
{
"value" : "savitzkyGolay" ,
"description" : "Uses a polynomial smoothing filter on a moving window, which can also provide derivative estimates."
}
]
}
}
} ,
"simulation" : {
"enabled" : {
"default" : false ,
"rules" : {
"type" : "boolean" ,
"description" : "If true, the system operates in simulation mode, generating simulated values instead of using real inputs."
}
} ,
"safeCalibrationTime" : {
"default" : 100 ,
"rules" : {
"type" : "number" ,
"min" : 100 ,
"description" : "Time to wait before finalizing calibration in simulation mode (in milliseconds or appropriate unit)."
}
}
} ,
"interpolation" : {
"percentMin" : {
"default" : 0 ,
"rules" : {
"type" : "number" ,
"min" : 0 ,
"description" : "Minimum percentage for interpolation or data scaling operations."
}
} ,
"percentMax" : {
"default" : 100 ,
"rules" : {
"type" : "number" ,
"max" : 100 ,
"description" : "Maximum percentage for interpolation or data scaling operations."
}
}
} ,
"outlierDetection" : {
"enabled" : {
"default" : false ,
"rules" : {
"type" : "boolean" ,
"description" : "Indicates whether outlier detection is enabled. If true, outliers will be identified and handled according to the method specified."
}
} ,
"method" : {
"default" : "zScore" ,
"rules" : {
"type" : "enum" ,
"values" : [
{
"value" : "zScore" ,
"description" : "Uses the Z-score method to identify outliers based on standard deviations from the mean."
} ,
{
"value" : "iqr" ,
"description" : "Uses the Interquartile Range (IQR) method to identify outliers based on the spread of the middle 50% of the data."
} ,
{
"value" : "modifiedZScore" ,
"description" : "Uses a modified Z-score method that is more robust to small sample sizes."
}
]
}
} ,
"threshold" : {
"default" : 3 ,
"rules" : {
"type" : "number" ,
"description" : "The threshold value used by the selected outlier detection method. For example, a Z-score threshold of 3.0."
}
}
}
}