Input Names

Agency inputs follow the format….

 <asset name>.<property name>

For example, if you're looking for the Pressure (a property) of a cars Front Right Tire (an asset), you'd write…

 Front Right Tyre.Pressure

Dynamic Names

When you're attaching an alert to more than one asset, you'll need to dynamically update the name of the point you're attaching to.

Writing {0} in the place of the assets name will substitute the name of each attached asset into the input.

Neighbours

If you're attaching to assets using a relationship, you can alter the number to access those assets either before (ie {-1} picks the previous asset) or after ({1} picks the next asset).

This is useful if looking for leaks or discontinuities across a sequence.

Other Options

You can reference child assets using the greater-than symbol between the curly braces. For example…

{0>#1} will pick the first child under the asset.

{0>Motor} will pick the first child with 'Motor' in its name under the asset.

This can be useful if you're connecting an alert to assets that have multiple component parts and you'd like to check for differences between them.

Complex Example

In our Paint Line example, we have machines called bridles.

These have two rollers inside that should be synchronised. If they run at different speeds, it could indicate severe problems with the production line. The condition where the two rollers are running differently is called 'slipping'.

Each bridle has a type named 'Bridle' and two sub-components representing each roller.

For example…

  Bridle #2
      Bridle #2 Roller 1
      Bridle #2 Roller 2

To make a single alert that searches every bridle for slipping, you'd use something like the configuration below…

{
    "name": "Slipping",
    "type": ["Bridle"]
    "ondelay": 1,
    "inputs": ["{0>Roller 1}.Speed - Actual","{0>Roller 2}.Speed - Actual"],
    "comparison": "abs({0} - {1}) > 0.5",
}