Skip to main content
Version: 2.1

OPC UA Nodes

OPC UA (Unified Architecture) is the modern, platform-independent standard for industrial communication. MaestroHub provides read, write, browse, and batch-read capabilities with hardened security options.

Configuration Quick Reference

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.

OPC UA Read node configuration

OPC UA Read Node

OPC UA Read Node

Read node values from OPC UA servers with namespace-aware identifiers.

Supported Function Types:

Function NamePurposeCommon Use Cases
Read Node Value (opcua.read)Fetch scalar or structured values from endpointsEquipment telemetry, quality checks, energy monitoring

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC UA connection profile to use
FunctionSelectionYesRead function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC UA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Read:

ParameterTypeRequiredDescription
namespaceIndexNumberYesNode namespace index (0–65535)
identifierStringYesNode identifier. Formats: i=123 (numeric), s=String (string), g=GUID (GUID), b=0xHEX (byte string)
requestTimeoutSecondsNumberNoOverride default request timeout for this operation

All function parameters support expression syntax ({{ expression }}) for dynamic values from the pipeline context.

Input

The node receives the output of the previous node as input. Input data can be referenced in function parameter expressions using $input.

Output Structure

On success the node produces:

{
"success": true,
"functionId": "<function-id>",
"data": {
"value": 72.5,
"sourceTimestamp": "2026-01-15T08:30:00Z",
"serverTimestamp": "2026-01-15T08:30:00Z",
"statusCode": "0x00000000",
"dataType": "Double"
},
"durationMs": 42,
"timestamp": "2026-01-15T08:30:00Z"
}
FieldTypeDescription
successbooleantrue when the function executed without errors
functionIdstringID of the executed function
dataobjectOPC UA read result (see below)
durationMsnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

data fields:

FieldTypeDescription
valueanyThe node value — type depends on the OPC UA data type
sourceTimestampstringTimestamp from the data source
serverTimestampstringTimestamp from the OPC UA server
statusCodestringOPC UA status code in 0x hex format
dataTypestringOPC UA data type name (e.g., Boolean, Int32, Double, String, DateTime)

OPC UA Write node configuration

OPC UA Write Node

OPC UA Write Node

Write setpoints and command values to OPC UA nodes.

Supported Function Types:

Function NamePurposeCommon Use Cases
Write Node Value (opcua.write)Send scalar or structured values to endpointsAdjust temperature setpoints, acknowledge alarms, update schedules

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC UA connection profile to use
FunctionSelectionYesWrite function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC UA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Write:

ParameterTypeRequiredDescription
namespaceIndexNumberYesNode namespace index (0–65535)
identifierStringYesNode identifier (same formats as Read)
valueStringYesValue to write (converted to appropriate OPC UA type)
dataTypeStringYesTarget data type: bool, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float, double, string
requestTimeoutSecondsNumberNoOverride default request timeout

All function parameters support expression syntax ({{ expression }}) for dynamic values.

Input

The node receives the output of the previous node as input. Use expressions like {{ $input.payload.value }} to pass dynamic values to write parameters.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"success": true,
"statusCode": "0x00000000"
},
"durationMs": 15,
"timestamp": "2026-01-15T08:30:00Z"
}

data fields:

FieldTypeDescription
successbooleanWhether the write was accepted by the server
statusCodestringOPC UA status code in 0x hex format
Safety First

Always implement validation and safety checks before writing to industrial equipment. Consider adding condition nodes to verify values are within safe ranges.


OPC UA Browse node configuration

OPC UA Browse Node

OPC UA Browse Node

Discover available nodes in the OPC UA address space.

Supported Function Types:

Function NamePurposeCommon Use Cases
Browse Nodes (opcua.browse)Traverse address space to find readable/writable nodesBuild tag catalogs, search for equipment folders

Node Configuration

ParameterTypeRequiredDescription
ConnectionSelectionYesOPC UA connection profile to use
FunctionSelectionYesBrowse function from the selected connection
Function ParametersDynamicVariesAuto-populated from the function schema. See your OPC UA connection functions for full parameter details.
Timeout OverrideNumber (seconds)NoOverride the default function timeout

Function parameters for Browse:

ParameterTypeRequiredDefaultDescription
namespaceIndexNumberNo0Starting node namespace index
identifierStringNoi=85Starting node identifier (default is the Objects folder)
maxChildrenNumberNo0Maximum children to return (0 = no limit)
continuationPointStringNo""Continuation point from a previous browse for pagination

Input

The node receives the output of the previous node as input.

Output Structure

{
"success": true,
"functionId": "<function-id>",
"data": {
"namespace": 0,
"identifier": "i=85",
"nodeClass": "Object",
"browseName": "Objects",
"description": "",
"accessLevel": "",
"dataType": "",
"writable": false,
"children": [
{
"namespace": 2,
"identifier": "i=1001",
"nodeClass": "Variable",
"browseName": "Temperature",
"description": "Current temperature",
"accessLevel": "CurrentRead",
"dataType": "Double",
"writable": false
}
],
"continuationPoint": "",
"hasMore": false
},
"durationMs": 85,
"timestamp": "2026-01-15T08:30:00Z"
}

data fields:

FieldTypeDescription
namespacenumberNamespace index of the browsed node
identifierstringIdentifier of the browsed node
nodeClassstringOPC UA node class: Object, Variable, Method, ObjectType, VariableType, ReferenceType, DataType, View
browseNamestringDisplay name of the node
descriptionstringNode description (if available)
accessLevelstringAccess level (CurrentRead, CurrentWrite, etc.)
dataTypestringOPC UA data type (for Variable nodes)
writablebooleanWhether the node accepts writes
childrenarrayChild nodes with the same field structure
continuationPointstringBase64-encoded continuation point for pagination
hasMorebooleantrue if more results are available via continuationPoint

OPC UA Read Group Node

The OPC UA Read Group node executes multiple OPC UA read operations in a single node. It supports selective function lists, a Read All mode, and parallel or sequential execution.

Node Configuration

ParameterTypeRequiredDefaultDescription
ConnectionSelectionYesOPC UA connection profile
Read AllToggleNofalseWhen enabled, executes all read functions from the connection
FunctionsArray of {functionId, alias}When Read All is off[]List of specific functions to execute. Each entry requires a functionId; alias is optional.
Execution ModeSelectionNoparallelparallel — all functions run concurrently. sequential — functions run one after another.
Continue on ErrorToggleNotrueWhen enabled, the node continues executing remaining functions even if one fails
Debug ModeToggleNofalseEnable detailed logging for troubleshooting

Read All Mode

When Read All is enabled the function list is ignored. The node automatically discovers and executes every read function defined on the selected connection.

Supported read function types for Read All:

Function TypeDescription
opcua.readSingle node read
opcua.batchreadBatch node read

Input

The node receives the output of the previous node as input.

Output Structure

{
"Temperature Sensor": {
"value": {
"value": 72.5,
"sourceTimestamp": "2026-01-15T08:30:00Z",
"serverTimestamp": "2026-01-15T08:30:00Z",
"statusCode": "0x00000000",
"dataType": "Double"
},
"success": true,
"duration": 45,
"timestamp": "2026-01-15T08:30:00Z"
},
"Batch Read - Line 1": {
"value": {
"results": [...],
"totalNodes": 5,
"successCount": 5,
"failureCount": 0
},
"success": true,
"duration": 62,
"timestamp": "2026-01-15T08:30:00Z"
},
"_meta": {
"connectionId": "conn-456",
"connectionName": "OPC Server 1",
"total": 2,
"successful": 2,
"failed": 0,
"totalDuration": 107,
"executionMode": "parallel",
"originalRequests": 2
}
}

Each function result contains:

FieldTypeDescription
valueanyThe function's return data (Read result or Batch Read result)
successbooleanWhether this function succeeded
errorstringError message (present only on failure)
durationnumberExecution time in milliseconds
timestampstringISO 8601 / RFC 3339 UTC timestamp

The _meta object provides execution summary:

FieldTypeDescription
connectionIdstringConnection profile ID
connectionNamestringConnection profile display name
totalnumberTotal functions executed
successfulnumberCount of successful executions
failednumberCount of failed executions
totalDurationnumberWall-clock time for the entire group (ms)
executionModestringparallel or sequential
originalRequestsnumberNumber of function configs submitted
keyCollisionsstring[]Output keys that appeared more than once (omitted when empty)

Output Key Resolution

Each function result is keyed in the output map using the first available value:

  1. Alias — the custom alias set in the function entry
  2. Function Name — the name defined on the connection function
  3. Function ID — the unique function identifier (fallback)

Execution Modes

Parallel (default)

  • All functions execute concurrently.
  • Fastest total execution time.
  • Best for independent read operations from different nodes.

Sequential

  • Functions execute one after another in list order.
  • More predictable timing.
  • When Continue on Error is off, execution stops at the first failure.

Error Handling

Continue on ErrorBehavior
true (default)The node completes even if individual functions fail. Failed functions include an error field in their result. The node output remains successful.
falseThe node fails as soon as any function fails. In sequential mode, remaining functions are skipped. The node result is marked as failed.

Validation Rules

  • connectionId is required.
  • executionMode must be parallel or sequential.
  • When Read All is off, at least one function entry is required.
  • Duplicate functionId values are not allowed.
  • Duplicate alias values are not allowed.
  • The connection type must be opcua.

Best Practices

  • Use Read All when you need a full snapshot of every read function defined on a connection.
  • Use specific functions in production pipelines for better performance and clarity.
  • Assign aliases to keep output keys readable, especially when mixing opcua.read and opcua.batchread functions.
  • Prefer parallel mode for independent reads from different nodes in the address space.

Settings Tab

All OPC UA node types share the same Settings tab:

SettingTypeDefaultDescription
DescriptionTextOptional description displayed on the node
Timeout (seconds)NumberPipeline defaultMaximum time the node may run before timing out
Retry on TimeoutTogglePipeline defaultAutomatically retry the node if it times out
Retry on FailTogglePipeline defaultAutomatically retry the node if it fails
On ErrorSelectionPipeline defaultError strategy: stop the pipeline, continue to the next node, or follow the error output path

When left at their defaults, these settings inherit from the pipeline-level execution configuration.