Industrial App Store (Preview)

The Industrial App Store from Intelligent Plant is built on an architecture that enables cloud-based applications and services to interact with on-site Process Data Historians and Alarm & Event Logs. Use the Industrial App Store Connector to introduce plant data to your flows.

This connector is available in the following products and regions:

Service Class Regions
Logic Apps Standard All Logic Apps regions except the following:
     -   Azure Government regions
     -   Azure China regions
     -   US Department of Defense (DoD)
Power Automate Premium All Power Automate regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Power Apps Premium All Power Apps regions except the following:
     -   US Government (GCC)
     -   US Government (GCC High)
     -   China Cloud operated by 21Vianet
     -   US Department of Defense (DoD)
Contact
Name Intelligent Plant
URL https://appstore.intelligentplant.com
Email support@intelligentplant.com
Connector Metadata
Publisher Intelligent Plant
Website https://appstore.intelligentplant.com
Privacy policy https://appstore.intelligentplant.com/Content/assets/legal/IAS-PrivacyPolicy.html
Categories Internet of Things;Business Intelligence

Industrial App Store Power Automate connector

Intelligent Plant developed the Industrial App Store which enables interaction with all the different historian data through a unified API. At the start of May 2020 Intelligent Plant released an official, Microsoft certified Industrial App Store connector for Power Automate. No more hefty SQL queries or Excel document interrogations with no easy real-time update option or complicated architecture solutions, simply install Industrial App Store connect and out of the box you will be able to connect to Aspentech IP.21, OSIsoft PI, Honeywell Dynamo, OPC DA & HDA, Siemens and many more. This allows our customers to bring data from various sources into Microsoft Automate flows to deliver insights that weren’t possible before. Real-time updates prompt money-saving decisions by engineers that also increase plant safety and efficiency. More information can be found here.

IAS - Power Platform integration

Prerequisites

  • Register with the Industrial App store simply by logging in using your Linked In, Google or Microsoft account. Azure AD sync is also supported which will enable you to log in using your work credentials.
  • Demo data sources are there for you to play around with but if you want to connect to your historian data simply install App Store Connect, connect to your data using one out of the box data source driver and you're ready to go!

How to get credentials

Simply log in using your Linked In, Google or Microsoft account. Azure AD sync is also supported which will enable you to log in using your work credentials.

IAS - log in

Getting started with your connector

Simply add Industrial App Store as an action in your flow, specify one of the queries, enter parameters e.g. Tagname, start, end times and thats it! An example of data retrieval:

  1. Start Power Automate
    Navigate to Microsoft Power Autoamte. Log in if required.
  2. Create new Flow
    Hit :heavy_plus_sign: Create on the left hand side menu and choose an Instant Flow or a Scheduled Flow and confirm your selection.

Industrial App Store Connector - Autoamte - Getting started

  1. Sign in
    Sign in using your credentials.

NOTE: you'll only need to do this once per flow. The same connection credentials can be re-used in other flows

Industrial App Store Connector - Autoamte - Log in

  1. Fill in parameters
    Fill in the required parameters with the following values:
Name Value Note
Data source name dsn - variable Use your data source name provided when you created it in App Store Connect.
Tag to query tag - variable Specify your historian tags.
Start time 2001-01-01 The absolute or relative query start time.
End time 2001-03-01 The absolute or relative query end time.
Data function AVG
Sample interval 1d

Industrial App Store Connector - Autoamte - Log in

The historical data returned to Power Automate describes the instrument values using the JSON file format. An example data set is shown below:

{
    "Edge Historian (LDT-INTELPLANT)": {
        "TIC001-HI": {
            "TagName": "TIC001-HI",
            "DisplayType": "TrailingEdge",
            "Values": [
                {
                    "IsNumeric": true,
                    "TagName": "TIC001-HI",
                    "UtcSampleTime": "2020-09-08T04:20:40Z",
                    "NumericValue": 13.89999,
                    "TextValue": "13.89999",
                    "Status": "Good",
                    "Unit": "degC",
                    "Notes": null,
                    "Error": null,
                    "HasError": false
                },
                {
                    "IsNumeric": true,
                    "TagName": "TIC001-HI",
                    "UtcSampleTime": "2020-09-09T04:20:40Z",
                    "NumericValue": 13.89999,
                    "TextValue": "13.89999",
                    "Status": "Good",
                    "Unit": "degC",
                    "Notes": null,
                    "Error": null,
                    "HasError": false
                },
				// -- remaining values removed for brevity --
            ]
        }
    }
}

The data is indexed by data source name (Edge Historian (LDT-INTELPLANT)) and then tag name (TIC001-HI). The entry for each tag contains the following fields:

  • TagName - the display name of the tag.
  • DisplayType - provides a hint describing how lines between individual values should be drawn when visualizing the data on a chart.
  • Values - a list of tag values.

Each entry in the Values collection describes a single value for the tag at a specific point in time. Although there are several fields defined on each value, the fields that we are most interested in are:

  • UtcSampleTime - the UTC timestamp for the sample, specified in ISO 8601 format.
  • NumericValue - the numerical value recorded by the instrument.
  • Status - the quality status associated with the value (Good, Bad, or Uncertain). The status will generally be Good unless the physical instrument has been diagnosed with a fault.
  • Unit - the unit of measure for the value.

And that's it, you have historical data for futher processing. From here you can issue notifications, compile rpeorts, kick off procedures, etc.

Known issues and limitations

We are working on better schema definition so the returned data set is easier to navigate.

Common errors and remedies

Make sure you are authorised to access the data source. Either contact the person who configured your App Store Connect or Intelligent Plant (support@intelligentplant.com).

FAQ

Please refer to this article which dives into more detail of the whole set up. Do not hesitate to contact Intelligent Plant for more information or if you have any questions at info@intelligentplant.com

Throttling Limits

Name Calls Renewal Period
API calls per connection10060 seconds

Actions

Get Data Sources

Retrieve list of available data sources.

Get Plot Data

Perform a plot query on a data source.

Get Processed Data

Perform a processed/aggregation query on a data source.

Get Raw Data

Perform a raw query on a data source.

Get Snapshot

Perform a snapshot/now query on a data source.

Get Tags

Perform a tag search on a data source.

Get Data Sources

Retrieve list of available data sources.

Returns

Name Path Type Description
array of object
Host
Host string

Data source host

SupportedFeatures
SupportedFeatures string

Features supported by data source

Name
Name.Name string

Data source component name

Namespace
Name.Namespace string

Data source namespace

QualifiedName
Name.QualifiedName string

Data source qualified name

DisplayName
Name.DisplayName string

Display Name

Aliases
Name.Aliases array of

Aliases

TypeName
TypeName string

Data source component type name

Description
Description string

Data source component description

RunningStatus
Status.RunningStatus string

Data source running status

IsHealthy
Status.HealthStatus.IsHealthy boolean

IsHealthy

Properties
Status.HealthStatus.Properties array of

Properties

IsInitialised
Status.IsInitialised boolean

IsInitialised

IsDisabled
Status.IsDisabled boolean

Disabled status

DebugMode
Status.DebugMode boolean

Debug mode

UtcStartupTime
Status.UtcStartupTime string

Startup UTC Time

UtcLastModified
Status.UtcLastModified string

Last Modified UTC Date Time

Uptime
Status.Uptime string

Data source uptime

Messages
Status.Messages array of

Messages

Settings
Settings array of

Data source settings

Keep-Alive Data Queries
Properties.Keep-Alive Data Queries string

Keep-Alive Data Queries

Remote Type
Properties.Remote Type string

Remote Type

AuthorizationRules
AuthorizationRules array of

Data source authorization rules

Get Plot Data

Perform a plot query on a data source.

Parameters

Name Key Required Type Description
The data source name.
dsn True string

Data source name to perform data query on.

The tag to query.
tag True string

The tag to query.

The absolute or relative query start time.
start True string

The absolute or relative query start time.

The absolute or relative query end time.
end True string

The absolute or relative query end time.

The number of intervals to use for the PLOT request.
intervals True integer

The number of intervals to use for the PLOT request.

When true, tag value properties will be included in the results.
includeProperties boolean

When true, tag value properties will be included in the results.

Returns

Get Processed Data

Perform a processed/aggregation query on a data source.

Parameters

Name Key Required Type Description
The data source name.
dsn True string

Data source name to perform data query on.

The tag to query.
tag True string

The tag to query.

The absolute or relative query start time.
start True string

The absolute or relative query start time.

The absolute or relative query end time.
end True string

The absolute or relative query end time.

Data function/aggregation to use when performing data query.
function True string

The data function to use.

The sample interval for the query.
step True string

The sample interval for the query.

When true, tag value properties will be included in the result.
includeProperties boolean

When true, tag value properties will be included in the result.

Returns

Get Raw Data

Perform a raw query on a data source.

Parameters

Name Key Required Type Description
The data source name.
dsn True string

Data source name to perform data query on.

The tag to query.
tag True string

The tag to query.

The absolute or relative query start time.
start True string

The absolute or relative query start time.

The absolute or relative query end time.
end True string

The absolute or relative query end time.

The maximum number of points to return per tag.
points True integer

The maximum number of points to return per tag.

Returns

Get Snapshot

Perform a snapshot/now query on a data source.

Parameters

Name Key Required Type Description
The data source name.
dsn True string

Data source name to perform data query on.

The tag to query.
tag True string

The tag to query.

When true, specifies that cached snapshot values should not be used.
nocache boolean

When true, specifies that cached snapshot values should not be used (i.e. a snapshot query will always be executed against the data source).

When true, tag value properties will be included in the results.
includeProperties boolean

When true, tag value properties will be included in the results.

Returns

Name Path Type Description
TagName
tagname.TagName string

Tag name

UtcSampleTime
tagname.UtcSampleTime string

Tag value sample time (UTC)

NumericValue
tagname.NumericValue float

Tag numeric value

IsNumeric
tagname.IsNumeric boolean

Does tag have a numeric value?

TextValue
tagname.TextValue string

Tag text value

Status
tagname.Status string

Tag value status

Unit
tagname.Unit string

Tag value unit-of-measurement.

Notes
tagname.Notes string

Notes

Error
tagname.Error string

Tag value error details

HasError
tagname.HasError boolean

Tag value HasError status

Get Tags

Perform a tag search on a data source.

Parameters

Name Key Required Type Description
The data source name to use for data query.
dsn True string

The data source name.

Tag name filter to use. Default value is "*".
name True string

The tag name filter.

The page number of the matching results that should be returned.
page True integer

The page number of the matching results that should be returned.

Page size for the results.
pageSize True integer

Page size for the results.

Returns

Name Path Type Description
array of object
Id
Id string

Unique tag identifier

Name
Name string

Tag name

Description
Description string

Tag description

UnitOfMeasure
UnitOfMeasure string

Tag value unit-of-measurement

Value
Properties.index.Value integer

Value

Name
Properties.index.Name string

Name

Category
Properties.index.Category string

Category

Description
Properties.index.Description string

Description

DisplayIndex
Properties.index.DisplayIndex integer

DisplayIndex

IsReadOnly
Properties.index.IsReadOnly boolean

IsReadOnly

DigitalStates
DigitalStates array of

DigitalStates

IsMetaTag
IsMetaTag boolean

Flag that specifies if the tag is a meta tag created by a driver.

Definitions

HistoricalDataQueryResponse

Name Path Type Description
TagName
Tag name.TagName string

Tag name

DisplayType
Tag name.DisplayType string

Display Type

Values
Tag name.Values array of object

Values

TagName
Tag name.Values.TagName string

Tag Name

UtcSampleTime
Tag name.Values.UtcSampleTime string

Tag value sample time (UTC)

NumericValue
Tag name.Values.NumericValue float

Tag numeric value

IsNumeric
Tag name.Values.IsNumeric boolean

Does IsNumeric status

TextValue
Tag name.Values.TextValue string

Tag text value

Status
Tag name.Values.Status string

Tag value status

Unit
Tag name.Values.Unit string

Tag value unit-of-measurement

Notes
Tag name.Values.Notes string

Notes

Error
Tag name.Values.Error string

Tag value error details

HasError
Tag name.Values.HasError boolean

Tag value HasError status