Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

This document describe how to configure your project to send an email using the NotificationMethod feature when an alarm is active.

Installation Notes

This document describe how to configure your project to send an email using the NotificationMethod feature when an alarm is active.

This feature requires Action.NET version 2016.2.12 or newer. You can find the NotificationMethod column in the Alarm > Group section.

When you double-click on the NotificationMethod column, it shows every class with the domain Server. After you select the server class, it will show which Method will be used for the call back when an alarm happens. However, the NotificationMethod must follow this prototype:

public void NotificationMethod(AlarmEventInfo[] events)

Configuration example

In order for your project to send an email when an alarm happens, you need to configure some alarm items. See the image below:

After the items are configured, its time to configure a server class to have a NotificationMethod that receives the alarm events that are being generated. See an example code below:

Code Block
public void AlarmEvents(AlarmEventInfo[] events)
{
    //Protection in case events its null
    if (events == null)
        return;
     
    //Get the first event
    AlarmEventInfo event = events[0];
    if  (event.State != 1)
        return;
     
    //Get information about the alarm event to create the body of the email
    string body = "Time: " + event.ActiveLocalTime.ToString() + "\n" +
    "Message = " +  event.Message + "\n" +
    "Area = " + event.Area + "\n" +
    "Group = " + event.Group + "\n" +
    "Tag = " +  event.TagName + "\n"     ;
     
    //Code to send email           
    try
    {
            //Configuring the SMTP Client
        System.Net.Mail.SmtpClient mySmtpClient = new System.Net.Mail.SmtpClient(@Tag.smtpServer, 587);
                mySmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                mySmtpClient.EnableSsl = true;
                mySmtpClient.UseDefaultCredentials = false;
                mySmtpClient.Credentials = new System.Net.NetworkCredential(@Tag.fromEmail, @Tag.passFromEmail);
        
        //Sending the email
        mySmtpClient.Send(@Tag.fromEmail, @Tag.toEmail, "Dmail notification", body);
       
    }
    catch (Exception ex)
    {
        @Info.Trace("Error sending message: " + ex.Message);
    }
}

The next step is to configure the NotificationMethod column in the Alarm>Group section:

Image Modified

The last steps are to create a display, configure the email, and generate some alarms. See an example below:

Image Modified

Functionality

Every time an alarm happens when the project is running, the method configured in the NotificationMethod column is called. The method will receive an Array of the AlarmEventInfo class as a parameter. The following members can be used for the AlarmEventInfo class.

Code Block
DateTimeOffset AckTime
         DateTimeOffset ActiveLocalTime
         DateTimeOffset ActiveTime
         string Area
         string Category
         string ColorBG
         string ColorFG
         string Comment
         int Condition
         DateTimeOffset DateCreated
         string Deadband
         string DetailsValue
         int Disable
         TimeSpan Duration
         string Group
         string Level
         string Limit
         string Limit1
         string Limit2
         string Message
         DateTimeOffset NormTime
         int Priority
         int Quality
         string Setpoint
         string SetpointDeadband
         int State
         string TagName
         int UnAck
         string UserName
         string Value

Once in the NotificationMethod, you can do everything you want; send an email, send a message box, speech an alarm message, etc.

On this page:

Table of ContentsminLevel1maxLevel3printable
Scroll ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-htmltrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue

On this page:

12false