Skip to main content
Version: V3.2

Measurements

The Measurements page is where you configure the actual data that will be collected for a connection.

A connection can contain multiple measurements. A measurement represents one table in the local and cloud storage. Each measurement contains one or more variables. Variables define what to read and when to store it.

The page is split into:

  • A measurement list (select which measurement to edit)
  • Tabs for the selected measurement: Configuration, Variables, and Custom settings

Measurement list

The measurement list shows all measurements configured for the connection.

Common actions:

  • Add: create a new measurement
  • Enable/disable: toggle whether the measurement is active
  • Select a measurement to edit its configuration and variables

Measurement tabs

Configuration tab

The Configuration tab defines storage and processing behavior for the selected measurement.

General

Name

The measurement name. This name is used as the table name in the local and cloud database.

Raw data bucket(s)

Select one or more buckets where raw data for this measurement will be stored.

Buckets are defined under Local storage. This selection controls retention behavior through the bucket configuration.

Analytics detail

When enabled, datapoints from this measurement are additionally written to an analytics detail table whenever an analytics trigger evaluates to true.

Use this to capture and synchronize high-resolution data only during periods that matter (for example, when a device enters an error state or performs a specific operation), instead of syncing all raw data continuously.

You configure the trigger logic, capture timeframe, and destination table name on the analytics page.

Downsampling

Downsampling generates a lower-resolution series from the raw measurement data. This reduces storage and sync volume by aggregating datapoints into fixed time windows.

Enabled

When enabled, Capture produces downsampled datapoints for this measurement in addition to the raw datapoints.

Downsampled data bucket(s)

Select one or more buckets where the downsampled (aggregated) datapoints will be stored.

Use buckets with longer retention than raw data when you want to keep trends for a longer period while discarding high-resolution raw data sooner.

Timespan (ms)

Defines the size of the aggregation window in milliseconds.

All raw datapoints that fall within the same timespan window are aggregated into a single downsampled datapoint (per variable, per window).

Example:

  • Timespan = 250 ms
  • Raw datapoints within each 250 ms window are combined into one aggregated datapoint.

Method

Selects the aggregation function used to produce one downsampled datapoint per timespan window (per variable).

Supported methods:

  • Mean: arithmetic average of all values in the window.
  • Sum: sum of all values in the window.
  • First: the first value in the window (by timestamp/order).
  • Last: the last value in the window (by timestamp/order).
  • Min: the smallest value in the window.
  • Max: the largest value in the window.
  • Count: number of values in the window.
  • Mode: most frequent value in the window.
  • Median: middle value of the sorted values in the window.
  • Integral: integral of the value over time across the window (area under the curve). This is computed using the available timestamps within the window.

Variables tab

The Variables tab defines the individual datapoints collected inside the selected measurement.

Variable Config

Each variable has these options:

  • Enabled toggle
  • Name
  • Collect type
  • Timer (only relevant for timer-based collection modes)
  • Condition (optional gating using conditional triggers)
  • Mapping (where the value is read from)

Name

Variable name. This is used as the identifier for the datapoint.

Mapping

Defines where the value is read from. The mapping format depends on the connection type (for example a topic/path for MQTT, an address/node for OPC UA, etc.).

Collect type

Controls when a variable produces a datapoint.

These collect types are supported:

  • Any value
    Collects every value that is received/read for the variable.
    Warning: On polling based protocols (for example Redis key/value), collect type Any Value will generate a lot of data.
  • On change
    Collects only when the value changes compared to the previous value.
    Note: After startup the first value will always be logged.
  • Timer
    Collects on a fixed time interval (see Timer (ms)).
  • On increment
    Collects only when the value increases compared to the previous value.
    Note: After startup the first value will always be logged.
  • On decrement
    Collects only when the value decreases compared to the previous value.
    Note: After startup the first value will always be logged.
  • Hybrid
    A combination of Timer and On Change: Collects on interval, but also immediately after a change.
    After a change, the first interval collection is skipped.
  • Mirror
    No data is collected, the values are only sent to the replicators (if any).

Timer (ms)

Only relevant when Collect type is Timer or Hybrid.

Defines the interval in milliseconds for collecting datapoints for the variable.

note

On an ADS connection the Interval is also used as the cycle time.

Condition (optional)

Variables can be gated by one or more Conditional triggers.

If conditions are configured, the variable is collected only when the condition logic evaluates to true (based on the selected combine mode).

When editing the condition configuration for a variable, you can choose:

  • Always return true: bypasses condition evaluation for the variable
  • Selecting one or more Condition(s)
  • Selecting how multiple conditions are combined:
    • AND: all selected conditions must be true
    • OR: at least one selected condition must be true

Conditional triggers themselves are defined on the Conditional Triggers page for the connection.

Variable Custom Settings

The Custom settings tab is a JSON editor for advanced variable configuration. In most cases you don't need any custom settings.

These settings are supported for all variables.

OptionTypeExampleDescription
FieldNamestring"FieldName": "MyVal"Overrides the generated field name.
FieldNamePrefixstring"FieldNamePrefix": "Pre_"Overrides the prefix of the generated field names (default is the variable name). Set to an empty string to only keep the dynamic part of the fieldname. Only supported with the NestedObject data type.
AddVariableSourceTagboolean"AddVariableSourceTag": trueAdds a tag column containing the variable name.
AddMappingSourceTagboolean"AddMappingSourceTag": trueAdds a tag column containing the full ADS mapping path.
AddVariableSourceFieldboolean"AddVariableSourceField": trueAdds a field column containing the variable name.
AddMappingSourceFieldboolean"AddMappingSourceField": trueAdds a field column containing the full ADS mapping path.
VirtualTagsstring[]"VirtualTags": ["ID"]Extracts specific parts of the variable name as tags (useful if your variable names contain metadata like Motor_ID123).
PivotArrayIndexesint[]"PivotArrayIndexes": [0,3]Can only be used with the NestedObject data type. See data types.
Debugboolean"Debug": trueEnables detailed logs for this specific variable.

See the documentation page of the connection type for which extra custom settings are available for a specific connection.

Variable additional settings (overlay)

On the Variables tab, each variable has an additional settings button (slider-style icon). Selecting it opens an overlay with per-variable additional settings.

The overlay contains these pages:

  • General
  • Replicators
  • Static fields
  • Custom settings

General

Data type

Selects how the value for this variable is interpreted/serialized.

  • The available data type options are connection-type dependent.
  • Example options can include Auto and JSON, but the full set depends on the selected connection type.

See the data types page for more info.

Use as tag

When enabled, the last known value of this variable is added as a tag to all data rows generated by this measurement.

Use this when a variable represents context that should be attached to every row (for example: active recipe, current order, machine mode).

Allow cloud overrides

When enabled, this variable can be written from the cloud (cloud-to-gateway override).

This is not supported for all connection types. See the documentation on the specific connection type.

Replicators

Replicators can forward every value produced by this variable to one or more replicators (for example: an MQTT broker or an internal OPC UA server). This is per-variable routing.

Configuration on this page:

  • Select which replicators (if any) receive this variable.
  • For each selected replicator, configure:
    • Read: values produced by the variable are sent to the replicator. Connection source (e.g. PLC) -> Capture Edge -> Replicator
    • Write: the variable can be written from the replicator (only supported for connection types that support writes). Replicator -> Capture Edge -> Connection source (e.g. PLC)

Replicator concepts and setup are documented on the Replicator page.

Static fields

Static fields add hardcoded columns to the rows generated by this variable.

Each static field has:

  • Name: column name.
  • Value: constant value written for every row produced by this variable.
  • Use as tag: if enabled, the field is written as a tag column when using an Influx local database.

Use static fields to attach fixed context to specific variables (for example: unit, sensor location, asset identifier).

Custom settings

The Custom settings page is a JSON editor for advanced per-variable options.

  • The available options are connection-type dependent.
  • Use this only for advanced scenarios that are not exposed through the standard UI.