The Internet of Things on AWS – Official Blog

Real-time monitoring of industrial equipment using Alarms in AWS IoT SiteWise


The Alarms feature in AWS IoT SiteWise allows you to set up, visualize, and manage rule-based alerts for devices, equipment, and processes. You can receive alerts via SMS or email in near-real time when equipment data breaches thresholds, allowing operations teams to take timely actions to reduce unplanned equipment downtime. AWS IoT SiteWise Alarms is powered by AWS IoT Events and is tightly integrated with it, so you can create alarms from the AWS IoT SiteWise console, AWS IoT SiteWise Monitor web applications, or using the AWS IoT SiteWise SDK. In this blog, we demonstrate the integrated Alarms experience in AWS IoT SiteWise and AWS IoT SiteWise Monitor. We create alarms in AWS IoT SiteWise and monitor them in AWS IoT SiteWise and AWS IoT SiteWise Monitor.

Note, you can also create, monitor and manage Alarms directly in AWS IoT Events, independently of AWS IoT SiteWise. To learn more about this, please see Monitoring with alarms in the AWS IoT Events Developer Guide.

With AWS IoT SiteWise Alarms, OT personnel can create alarms in a single step

To create an alarm for any incoming equipment data, there are three high level steps:

  1. Define an alarm rule to apply e.g. rotations per minute is greater than a certain value
  2. Select the severity of this alarm e.g. an integer between 1-5 to indicate increasing importance
  3. Configure notifications to send when an alarm is triggered e.g. email and SMS and/or trigger other AWS services

To illustrate, we use a real-life application example of Clean-In-Place (CIP) systems. CIP systems are used in manufacturing facilities that produce food & beverages, biotech and pharmaceutical products to clean equipment without disassembly (i.e. “in place”) to neutralize flavors and clear any residues from previous cycles. For efficient cleaning, plant operators need to maintain prescribed temperatures for cleaning fluids such as caustic liquid. In our example, we will monitor the temperature of caustic liquid using Alarms and raise notifications when the temperature falls below a pre-set threshold.

Creating an asset model

We start with creating an asset model in AWS IoT SiteWise, that is used to create a virtual representation of a CIP system. In a real-world scenario there are likely to be multiple CIP systems being monitored, which can be grouped based on equipment type, location or other criteria. For this example, we create a CIP System asset model and a CIP Group asset model to contain multiple CIP Systems. For details on how to create asset models in AWS IoT SiteWise see Creating asset models.

Create CIP System and CIP Group asset models in AWS IoT SiteWise


Next we define some measurements (e.g., raw data from sensors) relevant to the CIP Systems asset model, as shown in the following image. They represent tank and temperature levels for tanks containing different types of cleaning fluids.

Define measurements for the CIP System asset model


In the CIP System asset model we also created an attribute Caustic Temperature Threshold to store a temperature threshold value of 40 °C. We use this attribute value later when creating the alarm to monitor a tank’s temperature.

Set temperature threshold used later in alarm definition


Creating assets

Having created the asset models, we now create the assets themselves. The CIP Group asset represents a grouping of multiple CIP systems, based on a common criteria such as location. We also create two CIP system assets CIP System 1 and CIP System 2 and add them under the asset CIP Group. While such grouping is not required for the creation of Alarms, we are doing so to organize our assets aligned with real-world scenarios.

Create CIP system assets and place them in a group


The CIP system assets in AWS IoT SiteWise need to get data from actual CIP systems. This often uses OPC-UA a communication protocol for industrial automation applications. OPC-UA data is organized as aliases and these need to be mapped to each of the assets’ measurements. For more details on this process, please see the mapping industrial data streams documentation. Once this is done, data starts streaming into the CIP system in AWS IoT SiteWise.

Defining an Alarm

So far, we’ve modeled our CIP system, instantiated virtual CIP system assets, and started streaming data directly into each asset from their OPC-UA servers. Now, we define alarms for when our CIP systems’ operating parameters fall out of control bounds.

As an example, we create an alarm for when the caustic tank’s temperature falls below a specified value. Alarms are created as part of the asset model, in this case the CIP System asset model. By creating alarms as part of the asset model, all assets created using this model will automatically be set up for this alarm with a default configuration. The alarm configuration can be updated for each individual asset, subsequently created using this asset model.

As we start, the asset model has no alarms defined yet.

At the start no Alarms have been created


We add our first alarm definition, named CausticTemperatureAlarm, to the asset model. AWS IoT SiteWise Alarms are evaluated by the AWS IoT Events service, so the default Alarm type is AWS IoT Events alarm.

The other alarm type, External alarm, refers to alarms that are generated in other alarm detection and management systems, outside of AWS IoT SiteWise. To consolidate your alarms you can also ingest these into AWS IoT SiteWise. We don’t cover this type of alarm in this post, but you can read more about ingesting external alarm state here.

Add an Alarm


The threshold definition for the alarm specifies when to trigger the alarm, based on the value of a property meeting a specific condition. For CIP systems, it’s important for the fluid in the caustic tank to be at a temperature higher than 40 °C, so we set up the threshold for when the Caustic Tank Temperature is less than the Caustic Temperature Threshold. You’ll recall that Caustic Temperature Threshold was created earlier and set to 40 °C (see Creating Asset Models above).

Set the Alarm threshold


Optionally, you can also configure email and text notifications for this alarm. Note that the AWS Single Sign-On service must be enabled and the users added in the current region for them to show up as valid destinations.

In addition to email and text notifications, to integrate alarm notifications with your own ticketing systems, you can also configure actions to other AWS services such as AWS Lambda, Amazon Simple Queue Service (SQS), and Amazon Simple Notification Service (SNS), to be executed when an alarm triggers. For example, you can call an AWS Lambda function to trigger and cause an update to a ticketing system, and also update an Amazon DynamoDB table. You can find details of all supported actions here.

In our example, we send both email and text notifications.

Select notification options for Alarm


We’ll set the Default asset state as Enabled and save the alarm by clicking Add alarm. The Enabled state ensures that all assets created from this asset model will have this alarm evaluated by default.

Alarms are enabled for this asset


The CausticTemperatureAlarm alarm can now be seen in the Alarm definitions tab of the CIP System asset model page.

Define the alarm


Alarm monitoring

We can now see the alarm and its status in the Asset details page. The caustic tank temperature is within normal limits, so the status is shown as Normal.

Alarm is in Normal state


Next, to demonstrate an alarm being raised, we cause CausticTemperatureAlarm to trigger. We’ll do this by varying the caustic tank temperature, using simulated input values. We do not cover this simulation method in this blog.

We also created a dashboard using AWS IoT SiteWise Monitor to visualize the alarms. For creating dashboards in AWS IoT SiteWise Monitor, see this guide.

The AWS IoT SiteWise Monitor screen below shows the simulated temperature values for CIP System 1. After remaining steady at 50 °C, the temperature starts dropping and eventually breaches the 40 °C temperature threshold setup earlier.

AWS IoT SiteWise Monitor shows Active Alarm


The Asset details page now shows an Active alarm. If notifications were set up, those would have triggered as well.

The Actions button shows your response options for Active alarms. You can Acknowledge the alarm indicating receipt, Snooze it for a period (after which the alarm returns to active), or Reset it. In a typical industrial process, an operator sees the alarm, and then acknowledges it to indicate the start of the problem identification and resolution process. We will mimic this workflow and Acknowledge the alarm. For more details on the alarm lifecycle, see the documentation section on Alarm states.

Various actions allowed on an Active alarm


Once the alarm has been acknowledged, the alarm status changes to Acknowledged. The operational team is thus made aware that the alarm is being investigated. For more details on the other options and the alarm lifecycle, see the documentation on Alarm states.

Alarm state changes to Acknowledged



With the Alarms feature, process industries can use automatic monitoring and alerting so operational teams can stay continuously focused on meeting quality and productivity goals.

As demonstrated in this post, the integrated Alarms experience across AWS IoT SiteWise, AWS IoT Events, and AWS IoT SiteWise Monitor simplifies the creation, monitoring, and handling of alarms. Email and SMS notifications can also be configured to be sent when an alarm is raised. Alarms can be viewed both in the AWS IoT SiteWise console, as well as in AWS IoT SiteWise Monitor web applications. To integrate alarm notifications with your own ticketing systems, you can also configure actions to other AWS services such as AWS Lambda, Amazon Simple Queue Service (SQS), and Amazon Simple Notification Service (SNS), to be executed when an alarm triggers.

Get started with Alarms by going to the AWS Management Console and navigating to AWS IoT SiteWise.