Skip to content

OPC-UA Action ​

The OPC-UA action writes values to variable nodes on OPC-UA servers through opc.tcp:// connections.

Properties ​

Property NameOptionalDescription
endpointfalseOPC-UA server URL (e.g. opc.tcp://192.168.1.100:4840).
nodeIdfalseTarget OPC-UA NodeId string (e.g. ns=2;s=Device1.TargetSpeed or ns=1;i=1001).
fieldfalseThe field name in the output record whose value should be written.
usernametrueOptional username credential for user token authentication.
passwordtrueOptional password credential for user token authentication.
timeouttrueSocket and write request timeout (e.g. 1000ms). Default: 1000ms.

Other common sink properties are supported. Refer to sink common properties for more information.

Example ​

json
{
  "id": "rule_opcua_control",
  "sql": "SELECT setpoint FROM temperature_alerts WHERE setpoint IS NOT NULL",
  "actions": [
    {
      "opcua": {
        "endpoint": "opc.tcp://192.168.1.100:4840",
        "nodeId": "ns=2;s=HeaterController.TargetTemp",
        "field": "setpoint",
        "timeout": "2000ms"
      }
    }
  ]
}

Dead-Letter Queue (DLQ) Integration ​

When an OPC-UA write fails with permanent status codes:

  • BadNodeIdUnknown (0x80340000)
  • BadTypeMismatch (0x803C0000)
  • BadNotWritable (0x803B0000)

The connector classifies the error as permanent. It sends the output record to the dead-letter queue under DlqStage::SinkDelivery. For configuration options, refer to Dead-Letter Queues.

rekuiper is open source (Apache-2.0 / MIT) · For an all-in-one MQTT broker with embedded rekuiper rules, see IndraMQTT.