General
Q: What is AWS IoT Events?
A: AWS IoT Events is a new IoT service that helps companies continuously monitor their equipment and fleets of devices for failure or changes in operation and trigger alerts to respond when events occur. AWS IoT Events recognizes events across multiple sensors to identify operational issues, such as equipment slowdowns, and generates alerts such as notifying support teams of an issue. AWS IoT Events offers a managed complex event detection service on the AWS cloud, accessible through the AWS IoT Events console, a browser-based GUI where you can define and manage your event detectors, or direct ingest application program interfaces (APIs), code that allows two applications to communicate with each other. Understanding equipment or a process based on telemetry from a single sensor is often not possible; a complex event detection service will combine multiple sources of telemetry to gain full insight into equipment and processes. You define conditional logic and states inside AWS IoT Events to evaluate incoming telemetry data to detect events in equipment or a process. When AWS IoT Events detects an event, it can trigger pre-defined actions in another AWS service, such as sending alerts through Amazon Simple Notification Service (SNS).
Q: Why should I use AWS IoT Events?
A: AWS IoT Events makes it easy to detect and respond to events that happen across multiple IoT devices, equipment subsystems, and applications. For the vast majority of IoT customers, IoT deployments consist of multiple pieces of equipment with many independent sensors. For those customers, detecting when a critical event has occurred is hard and requires the creation of custom logic, which in turn requires the engagement of specialized system integrators. AWS IoT Events makes it possible to easily and cost effectively detect events system-wide and respond with appropriate actions to drive results such as optimizing manufacturing efficiency or improving production quality.
Getting Started
Q: How do I get started with AWS IoT Events?
A: To get started, sign up for an account. Log in to the console and create an endpoint to receive telemetry data you want to monitor, such as belt speed, motor voltage, amperage, and noise levels. Then, you can define your events to detect by writing simple ‘if-then-else’ statements, and selecting the alert or custom action to trigger when the event occurs. AWS IoT Events is stateful and reacts to the same input differently depending on the current state of equipment, such as ‘running’, ‘stuck’, or ‘off’. You can define states of equipment and combine this with incoming telemetry data and conditional logic, to make the right decision at the right time. Then, you can select a pre-built action to trigger, such as sending a message to a motor to shut down, whenever an event is detected.
Q: How do I receive inputs in AWS IoT Events?
A: AWS IoT Events accepts inputs from many IoT telemetry data sources, including sensor devices, management applications, and AWS IoT services. Any telemetry data input can be pushed to AWS IoT Events using a standard API interface (“Put_Signals” API). To directly send telemetry data from a device using AWS IoT Core, you can write a rule in AWS IoT Rules Engine to forward your IoT data into AWS IoT Events - identifying the detector via its Amazon Resource Name (ARN).
Q: How do I use AWS IoT Events to detect events?
A: AWS IoT Events uses custom, pre-defined conditional logic, such as ‘if-then-else’ statements, to understand events, such as when a motor might be stuck. An event detector definition includes inputs for evaluation, states that have been defined, conditional logic to evaluate, and actions to trigger. Within IoT Events, you can define an event detection in one of two ways. The first option is to use the AWS IoT Events console to define the conditions under which an event occurs and trigger actions when the conditions evaluate to “true”. The second option is to programmatically create an event detection by calling the “Create_Detector” API.
Q: How do I take an action when AWS IoT Events detects an event?
A: AWS IoT Events triggers actions when events are detected. Many of the actions that trigger are predefined in the AWS IoT Events actions library which makes it easier for you to reuse actions. Common actions used in AWS IoT Events are sending notifications using Amazon Simple Notification Service (SNS), triggering a function in AWS Lambda, writing a record to DynamoDB, republishing a message via AWS IoT Core, and starting workflows in AWS Step Functions. When configuring IoT Events, after defining the logic that will recognize a pattern in a number of inputs, you select the type of action to trigger.
Q: Can I create custom actions?
A: When using AWS IoT Events, you will have the option of triggering a function in AWS Lambda; this allows the execution of code without provisioning or managing servers and the ability to create custom actions.
Q: If my event is stateful, how do I use AWS IoT Events and the states of my equipment?
A: States are operational modes of equipment and processes. AWS IoT Events is stateful and reacts to the same input differently depending on the current state of equipment, such as ‘running’, ‘stuck’, or ‘off’. AWS IoT Events ties together inputs, states, and conditional logic to trigger actions. A software developer can use a graphical console builder to define states and transition between states. Alternatively, they may also define the same using the available APIs.