Alarm Send Email
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:
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:
Â
The last steps are to create a display, configure the email, and generate some alarms. See an example below:
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.
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:
Â