Write Acknowledgements and Round Readings to AVEVA PI

Enable mRounds to write to AVEVA PI, and understand the two separate writes: the alert acknowledgement and the operator's round reading.

Tenant settings

Outbound posting to AVEVA PI is configured for the tenant through Tenant Manager.

KeyValue
enableRoundsPiOutboundTurns posting of mRounds values to AVEVA PI on (true) or off.
piOutboundIntegration.eventTypeEvent type. Use pi_outbound.
piOutboundIntegration.identifierLevelIdentifier level. Use element.
piOutboundIntegration.unifiedEnvMapping.developmentUnified environment name for the development environment (example: dev-cwp-maximo).
"enableRoundsPiOutbound": true,
"piOutboundIntegration": {
  "eventType": "pi_outbound",
  "identifierLevel": "element",
  "unifiedEnvMapping": {
    "development": "<unified-environment-name>"
  }
}

Values in angle brackets are tenant-specific inputs.

Two separate writes

WriteWhen Innovapptive sends itAttributeValue writtenTimestamp
Alert acknowledgementAfter the event frame is stored. For a webhook, after the HTTP 200; for a poll, after the polled frame is stored.The acknowledgement attribute you name, for example Acknowledged (Boolean)trueWhen Innovapptive received the alert
Round readingAfter an operator records a reading on a roundThe measurement attribute mapped to that round task, for example BearingTempThe value the operator recorded, not the value read earlier from the event frameWhen the operator recorded the reading

Both writes use the same request, the same sign-in (see Authentication), and "Good": true.

Request

POST https://pi.example-customer.com/piwebapi/streams/{attributeWebId}/value
Content-Type: application/json
Accept: application/json
  • One request updates one attribute. A round that records three tags sends three requests.
  • The URL uses the attribute's stream WebId. Innovapptive does not look it up, and element or event-frame WebIds cannot be used.
  • Value must match the attribute type: a JSON boolean, number or string.
  • Units are not sent; PI already has them on the attribute.
  • A successful write returns HTTP 202 or 204 with no body.

Acknowledge the alert (Acknowledged attribute):

POST https://pi.example-customer.com/piwebapi/streams/F1AbEbgZy4oKQ9kiBiZJTW7eugwPVA1y2Hm7xGoYvuP1UXqzglh3z0Ld8YUmKpDQwX3W4bQ/value
Content-Type: application/json

{
  "Timestamp": "2026-10-06T17:09:32.551Z",
  "Value": true,
  "Good": true
}

Write a round reading (the operator records bearing temperature as 86.4 on the BearingTemp attribute):

POST https://pi.example-customer.com/piwebapi/streams/F1AbEAI8QAAAAAAAAAAAAAAAAAAAAAAATTRTMP01/value
Content-Type: application/json

{
  "Timestamp": "2026-10-06T18:22:00Z",
  "Value": 86.4,
  "Good": true
}

A string attribute is written the same way, with Value as a JSON string. A boolean round task is written with Value as true or false.

Confirm for each attribute

Acknowledgement attributeEach round measurement attribute
Name and AF pathFor example Acknowledged on \\PIAF01\PlantA\Area1\Pump-01For example BearingTemp on the same element
Attribute WebIdThe attribute's stream WebIdThe attribute's stream WebId
Data typeBooleanNumber, string or boolean, matching the attribute
Value writtentrueThe reading the operator recorded
Where it sitsOn the element or on the event frameOn the element or on the event frame

The write account needs write permission on the acknowledgement attribute and on every measurement attribute a round can update.