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:

Â