
Security News
arXiv Is Rate Limiting Authors Following a Flood of AI Slop Submissions
arXiv now limits authors to two submissions a month as AI slop overwhelms moderators, delays good papers, and sparks debate over applying the limit to everyone.
@tier0/node-red-contrib-opcda-client
Advanced tools
Node-RED nodes for browsing, reading, and writing data from classic OPC DA servers over DCOM.
This package supports OPC DA, not OPC UA. Before you begin, obtain the OPC server address, Windows/DCOM credentials, and CLSID.
| Node | Purpose |
|---|---|
tier0-opcda-server | Stores the OPC DA server connection settings |
tier0-opcda-read | Reads configured OPC item values |
tier0-opcda-write | Writes one or more OPC item values |
Run the following command from the Node-RED user directory:
npm install @tier0/node-red-contrib-opcda-client
The Node-RED user directory is usually /data in Docker:
docker exec -it <node-red-container> sh
cd /data
npm install @tier0/node-red-contrib-opcda-client
exit
docker restart <node-red-container>
The client .tgz contains all required runtime dependencies. Only this one file needs to be copied to an offline customer server.
docker cp tier0-node-red-contrib-opcda-client-1.0.34.tgz <node-red-container>:/data/
docker exec -it <node-red-container> sh
cd /data
npm install --offline --no-audit --no-fund ./tier0-node-red-contrib-opcda-client-1.0.34.tgz
exit
docker restart <node-red-container>
If online installation reports getaddrinfo EAI_AGAIN registry.npmjs.org, the container cannot reach the npm registry. Use the offline installation procedure instead.
tier0-opcda-read node to the flow.tier0-opcda-server configuration.inject -> tier0-opcda-read -> debug.Ready.[inject] -> [tier0-opcda-read] -> [debug / function / mqtt]
| Field | Description |
|---|---|
| Name | Server name shown in Node-RED |
| Address | OPC DA server IP address or hostname, for example 192.168.31.31 |
| Domain | Windows/NTLM domain required by the server account |
| User Name | Account with DCOM and OPC server access |
| Password | Password for the account |
| ClsId | Class ID of the OPC DA server |
| Timeout | Timeout for each connection/initialization stage and read/write operation, in milliseconds |
| Reconnect cooldown | Retry cooldown in minutes after the server reports resource exhaustion; default: 5 minutes |
For a slow server or a large item list, start with a Timeout of 15000 or 20000 ms.
Open the tier0-opcda-server configuration:
export.json.Notes:
node-opc-da.list permission.| Field | Description |
|---|---|
| Server | OPC DA Server configuration to use |
| Name | Node name |
| Cache Read | Read from the OPC server cache when selected; otherwise read from Device |
| Data Change | Only send output when at least one value has changed |
| Items | OPC item IDs to read |
Each input message triggers one read. The input payload is not used as a read parameter.
If the node is already Reading, another input message will not start a concurrent read.
After a successful read, msg.payload is an array:
[
{
"itemID": "Channel1.Device1.Tag1",
"errorCode": 0,
"quality": "GOOD",
"timestamp": "2026-08-05T08:00:00.000Z",
"value": 123.45
}
]
| Property | Description |
|---|---|
itemID | OPC item ID |
errorCode | OPC DA result code; normally 0 on success |
quality | GOOD, UNCERTAIN, BAD, or UNKNOWN |
timestamp | Timestamp returned by the OPC server |
value | Current value |
The current version only sends an output message when all returned values have GOOD quality. If the node shows Bad Quality, inspect the corresponding items in the OPC server.
Set msg.payload to a non-empty array of values to write:
[
{
"itemID": "Channel1.Device1.Setpoint",
"type": "float",
"value": 42.5
},
{
"itemID": "Channel1.Device1.Enabled",
"type": "boolean",
"value": true
}
]
Supported type values:
double, short, integer, float, byte, long, boolean,
uuid, string, char, date, currency, array
Output:
msg.payload is true.msg.payload is false.msg.error and msg.details.| Status | Recommended action |
|---|---|
| Ready | The node can read or write |
| Reading / Writing | Wait for the current operation to finish |
| Good Quality | The most recent read completed normally |
| Bad Quality | Check item communication and quality in the OPC server |
| Mismatch Data | Check whether every configured item is valid and was added successfully |
| Reconnecting | Wait for automatic reconnection |
| Resource cooldown | Wait for the configured cooldown and inspect OPC server client/resource usage |
| Reconnect stopped | Correct the account, permissions, or CLSID, then deploy again |
| Disconnected / Error | Check the Node-RED log; the node will normally attempt to reconnect |
Bad Quality.Reading.node-opc-da.list when Node-RED permission control is enabled.HRESULT 0x1c00001b (469762075) or 0x800700A4Check whether the OPC server has reached its client, Session, Group, COM object, memory, or handle limits. Also check whether other collectors are connected to the same server. Three consecutive resource errors enter Resource cooldown; the node automatically makes one new connection attempt after the configured interval.
Received unexpected PDU from server, connection timeout, or connection closedThe node closes the affected connection and reconnects automatically. If the error occurs frequently, check:



See CHANGELOG.md for implementation and compatibility changes.
Apache-2.0. This project is maintained from the original node-red-contrib-opcda-client project.
FAQs
Node-RED OPC DA Reading and Writing Node
We found that @tier0/node-red-contrib-opcda-client demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.

Security News
arXiv now limits authors to two submissions a month as AI slop overwhelms moderators, delays good papers, and sparks debate over applying the limit to everyone.

Research
/Security News
A new GhostAction wave hits hundreds of GitHub repos, expanding CI/CD secret theft to cloud and AI credentials in source code and git history.

Research
/Security News
Tensorlake npm SDK version 0.5.144 was compromised in a ChainDrop / Shai-Hulud attack, delivering credential-stealing malware.