How Analytics works

The structure of Niagara 4 makes it possible for the framework to render charts, generate alerts and automate device management with minimal configuration effort.

At the risk of oversimplifying framework workflow, the following flowchart shows how a request for data initiates processing, which results in human-readable analysis and action.

Figure 4.   Flowchart
Image

In the standard Niagara Framework, device points update on change of value (CoV). By contrast, Niagara Analytics Framework points update upon request. An analytic request is inherent in the structure of the data model, formulas and Px views. There are two types of requests:

The framework processes an analytic request when:

  1. A poller triggers an analytic alert
  2. A user opens a Px view, which causes a Px widget (analytic chart, analytic table, bound label with analytic binding, or any widget with an analytic binding) to execute
  3. An analytic proxy extension executes.
  4. A user opens a Wire Sheet that contains analytic data.
  5. The framework receives an analytic web API request.
  6. An analytic request may just be for a type of data, such as hs:zoneAirTempSensor and not specifically an algorithm like alg:HighTemp.
  7. The request uses tags to pull data from the station database.
  8. In addition to the Property Sheet, the framework uses the familiar Wire Sheet as its canvas on which to collect source data. An algorithm then analyzes the data you tagged by executing the blocks on the Wire Sheet.

    Alerts, Algorithms, Data Definitions, Analytic Proxy Extensions, Data Source Blocks, and Request Overrides use aggregation, rollup, totalize and data filters to configure calculations.

  9. A value request returns a value. A trend request returns a table, which contains one or more records including at least a timestamp (BAbsTime) and value (Boolean, Numeric, Enum or String).

There is no way to directly invoke an action based on the result of an analytic query, but the results of an algorithm, resolved through a control point with an analytic proxy extension, could be linked into some custom component that might invoke an action.