node-red-contrib-piwebapi 3.4.0

Node-RED nodes for OSIsoft PI Web API with OMF support and real-time subscriptions

npm install node-red-contrib-piwebapi

node-red-contrib-piwebapi

Node-RED nodes for OSIsoft PI Web API with OMF support and real-time subscriptions.

Installation

npm install node-red-contrib-piwebapi

Or install directly from Node-RED palette manager.

Nodes

Configuration

PI Web API Config

Configuration node for PI Web API connection settings.

  • Base URL: PI Web API endpoint (e.g., https://piserver/piwebapi)
  • Username/Password: Basic authentication credentials
  • Verify SSL: Enable/disable SSL certificate verification

Read Operations

PI Point List

List PI Points from a PI Data Archive server.

  • Filter by name pattern (e.g., sin*, *temperature*)
  • Store results in global context for use by other nodes
  • Returns WebId, name, and path for each point

PI Point Read

Read values from PI Points.

  • Current Value: Get the latest value
  • Recorded Values: Get historical data with time range
  • Interpolated Values: Get evenly spaced interpolated data
  • Plot Values: Get values optimized for plotting

Output format:

{
  topic: "PointName",
  payload: 42.5,
  time: "2024-01-18T12:00:00.000Z",
  quality: "Good",
  web_id: "F1DP...",
  read_mode: "value"
}

Asset Read

Read attribute values from AF elements.

Attribute List

List attributes from AF elements.

Write Operations

PI Point Write

Write values to existing PI Points.

Numeric values:

msg.payload = 42.5;
msg.timestamp = new Date().toISOString();
msg.webId = "F1DP...";

Digital state values:

msg.payload = {
  Name: "Active",
  Value: 1,
  IsSystem: false
};
msg.timestamp = new Date().toISOString();
msg.webId = "F1DP...";

System digital states (Bad, Comm Fail, etc.):

msg.payload = {
  Name: "Comm Fail",
  Value: 313,
  IsSystem: true
};

OMF (OSIsoft Message Format)

Use OMF to create new data streams in PI. Requires three steps:

  1. Create Type (schema definition)
  2. Create Container (stream/point)
  3. Send Data

OMF Type Builder

Visual interface to define OMF type schemas.

  • Set Type ID and classification (dynamic/static)
  • Define properties with types and formats
  • Mark index property (usually Timestamp)

OMF Container Builder

Create OMF containers (streams) that use defined types.

  • Single container mode
  • Multiple containers mode (batch creation)
  • Select types from global context

OMF Writer

Send OMF messages to PI Web API.

  • Message types: type, container, data
  • Actions: create, update, delete
  • Supports gzip compression

Real-time

Subscribe

WebSocket subscription to PI Point value changes.

PI Web API Configuration

Required Settings

For OMF support, configure these in PI Web API Admin:

Setting Value
CorsMethods GET,OPTIONS,POST,PUT
DisableWrites False
OmfCreateMode Insert

CSRF Defense

If EnableCSRFDefense is True, the nodes automatically include the X-Requested-With: XMLHttpRequest header.

Examples

Read Current Value

[Inject] -> [PI Point Read] -> [Debug]

Write to Existing Point

[Inject] -> [Function: Set Value] -> [PI Point Write] -> [Debug]

OMF Workflow (Create New Stream)

[Inject] -> [OMF Type Builder] -> [OMF Writer] -> [Debug]
[Inject] -> [OMF Container Builder] -> [OMF Writer] -> [Debug]
[Inject] -> [Function: Build Data] -> [OMF Writer] -> [Debug]

OMF Data Message Format

msg.payload = [{
  containerid: 'Sensor001',
  values: [{
    Timestamp: new Date().toISOString(),
    Value: 23.5
  }]
}];
msg.omfMessageType = 'data';

Global Context Integration

PI Point List can store discovered points in global context, making them available to other nodes via dropdown selection:

  1. Configure PI Point List with a global context key (e.g., piPoints)
  2. Run the list operation
  3. Other nodes (Read, Write) can select points from the dropdown

License

MIT

Author

Holger Amort

Repository

https://github.com/ErnstHolger/node-red-contrib-piwebapi

Node Info

Version: 3.4.0
Updated 3 days ago
License: MIT
Rating: not yet rated

Categories

Actions

Rate:

Downloads

127 in the last week

Nodes

  • piwebapi-config
  • piwebapi-omf-writer
  • piwebapi-omf-batch-writer
  • piwebapi-omf-point-type
  • piwebapi-omf-type-builder
  • piwebapi-omf-container-builder
  • piwebapi-subscribe
  • piwebapi-write
  • piwebapi-pipoint-read
  • piwebapi-asset-read
  • piwebapi-pipoint-list
  • piwebapi-attribute-list

Keywords

  • node-red
  • osisoft
  • pi
  • piwebapi
  • pi-web-api
  • omf
  • pi-system
  • aveva
  • time-series
  • industrial

Maintainers