Alarm Properties

Alarm Properties

An alarm event is made up of many pieces of information. The state, the value, the time, all of the configuration data for the alarm, and more are collectively known as the properties of the event. A "property" is generally a name, potentially along with a default value. There are many properties that an alarm may have, and if the property isn't present, the default value is usually assumed.

How Properties are Used

Properties are used in a number of ways, they:

  • Define how an alarm behaves.

  • Are referenced in messages, such as the body of an email, or sms message.

  • Are referenced in Expressions, such as in the binding of a different property, or in an Expression block.

  • Are created and used in pipelines as temporary variables, such as to make a counter.

  • ... and various other places.

While properties are always accessed the same (for example by using the {propertyName} syntax in a message or Expression, or the getProperty() Expression function), there are some subtle variations on where the property value comes from, and what its lifecycle will be. To understand this better, consider that an Alarm Event has the following structure:

Alarm Event
Active Event Properties
Clear Event Properties
Acknowledged Event Properties
Runtime Properties

The first three collections of properties get created when the described type of event occurs.
Consequentially, it's possible for the same property to exist multiple times in an Alarm Event. For example, a bound configuration property or associated data is captured on both the active and clear events. When you reference a property, the alarm event will provide you with the most recent value. So, if you have a bound property call "MyData", and you reference it when the alarm is active, you may get a different result than when the reference is executed later and the alarm has cleared. The individual values are stored separately in the alarm journal, however.

Configuration Properties

 

Name

The name of the Alarm.

Enabled

Set to False to turn off the alarm state and all associated actions.

Priority

Used for sorting/filtering. 0=Diagnostic, 1=Low, 2=Medium, 3=High, 4=Critical

Display Path

The unique path of the Alarm state.

Active Pipeline

Which pipeline (if any) to use when the alarm goes into the Active State.

ClearPipeline

Which pipeline (if any) to use when the alarm goes into the Clear State.

TimeOnDelaySeconds

The amount of consecutive seconds that the alarm state must be True before the Tag enters this alarm state.

TimeOffDelaySeconds

The amount of consecutive seconds that the alarm state must be False before the Tag exits this alarm state.

Notes

Free-form notes for the alarm state.

As described in the previous section, Runtime Properties are different in that they only exist while the alarm event is in memory (still "live", that is, not cleared, or not acknowledged). They do not get stored in the alarm journal. In addition to properties created through the Set Property block, the system also has a number of defined Runtime Properties that it may use for various purposes. Though these are used internally, they are technically still regular properties, and can be accessed and modified through the normal means.

Runtime Properties (generated for the event)

IsInitialEvent

Set to "true" when the event is caused by the initial state of the alarm.

SystemAck

Set to "true" when the alarm has been acknowledged by the system, due to an overflow of the "live event queue". Live events are alarm events that are active or not acknowledged, and are limited for each alarm by the general alarm settings.

ShelfExpiration

When the shelf will expire for this event.

IsShelved

Is the alarm currently shelved?

EventCanceled

If set, the event will drop out as soon as possible from the pipelines

EventId

The unique id (uuid) of this alarm event. Each event gets a completely unique id.

Source

The qualified path to the item that generated this event.

DisplayPathOrSource

Gets the display path if defined, otherwise returns the source.

State

The current overall state of the alarm: ClearUnacked (0), ClearAcked (1), ActiveUnacked (2), ActiveAcked (3)

EventState

The transitional state that caused the current event: Active (0), Clear (1), Ack (2).

EventValue

The value associated with the current event.

AckUser

The user who acknowledged this event.

IsAcked

"True" if the event has been acknowledged.

IsActive

"True" if the event is still active.

IsClear

"True" if the event is not still active.

ActiveTime, ClearTime, AckTime

The timestamp for each event.

PipelineTransitionCount

How many transitions the event has made inside of the pipelines.

Associcated Data

You can extent alarm properties by creating your own associated data. Associated data properties can be configured on any alarms that are already configured in a project. To learn more, refer to Alarm Associated Data.

Next ...