Description

The RecipientSwitch component is used to route received alarms to different recipients based on a schedule of on-call users and alarm escalations.


Implementation

  • Copy and paste the component into the AlarmService
  • Set the number of users per level from the component's LevelXUserCount slots
  • Prepare "EnumSchedule" type time schedules by defining names corresponding to the different related recipients in the "range" slot, starting with the ordinal 1 (see screen shot below).


  • Then define the time slots corresponding to the different recipients in each EnumSchedule.

          (warning) You cannot link ConsoleRecipient components to this object

  • Link the Out slots of your EnumSchedule components to the SchedLevelX slots of the RecipientSwitch for each escalation level.
  • Link the LevelXUserY slots of the RecipientSwitch to the routeAlarm slot of your existing recipients based on the list defined in the EnumSchedule of the associated level.
  • Link the alarm topics of the alarm classes (AlarmClass) to the receive slot of the RecipientSwitch. Also link the EscalatedReceiveX topics to the EscalatedAlarmX slots if necessary.


Properties

  • Status: Indicates the general status of the component, {ok} if the operation was successful or {fault} to indicate abnormal behavior
  • FaultCause: Indicates the cause of a configuration error. The FaultCause is empty if the component is properly configured.

      (warning) Configuration error: Execution of the component is blocked while it is misconfigured (non-empty Status.fault and FaultCause).

  • LastExecFailure: The date and time of the last execution failure of the component
  • LastExecFailureCause: The reason for the last execution failure of the component

      (warning) Runtime Error: If the component fails to run, its status changes to fault. This status is lost if the configuration is changed but remains valid and if the station restarts.

  • LevelXUserCount: Determines the number of users per level. If this is 0, the level is considered not to exist.
  • SchedLevelX: Entry defining to which recipient the alarm will be redirected


Actions

  • EscalatedReceiveX : Actions allowing the reception of alarms from the alarm classes according to their level of escalation


Topics

  • LevelXUserY : Propogates the alarm to the associated recipient based on the associated EnumSchedule and the alarm level.


Errors

Configuration erorrs

    • LevelXUserCount: As soon as a level X is defined with 0 users, all subsequent levels are ignored. The following levels must therefore all be set to 0.
    • SchedLevelX: The value of a SchedLevelX must be between 1 (inclusive) and the number of users defined for this level X (from the LevelXUserCount slot) (inclusive).

Exécution errors

    • The level of the action cannot be found: the "receive" (or "escalatedReceive") action was renamed. In this case, set level X to 0 and then reset it to the right number of users via the levelXUserCount slot.
    • The SchedLevelX property cannot be found: to make it reappear, set level X to 0 and then reset it to the right number of users via the levelXUserCount slot.
    • The status of the SchedLevelX property is invalid: the execution is canceled; change its state to a valid one.
    • The levelXUserY topic cannot be found: either the property does not exist or it is not a topic. If it exists, delete it, set level X to 0 and then reset it to the right number of users via the levelXUserCount slot.


Training

You can follow this e-learning course to practice