Making smart alerts about deviation problems
IoT is a solution that allows you to connect different devices and transfer data between them. Synerise gives you the ability to connect to any device, so you will be able to easily monitor the accuracy of its operation.
Example of use - Food Industry
Challenge
Our use case is based on a project that shows that IOT integration with the food industry works well and provides a competitive advantage.
Our client has a food parcel lockers network, which are devices that allow you to order food and store it until you pick it up. They usually consist of three temperature settings, one for frozen products where the temperature should be at most minus 10 degrees, another for products requiring a storage temperature of one to five degrees and a third setting of about 15 degrees. Increasing or decreasing the temperature for some products can cause damage.
Solution
This means that the temperature inside must be constantly monitored, and any deviation must be immediately notified. For this purpose, each of these food parcel lockers has a terminal which constantly monitors the temperature and has the ability to share this data.
We created several alert scenarios for him that created notifications about:
- temperature (general report)
- temperature deviations (too low/too high temperature)
- when devices go offline
Prerequisites
General:
- Devices with the ability to connect to the internet via GSM or Wi-fi module.
- Basic knowledge about API/webhooks and the Synerise platform.
Optional
- Configured email and SMS provider in your Synerise workspace.
- Knowledge about API of communicators that you are using.
Create automation
-
Go to the Automation module in the Integration – Incoming section. Here we can configure the endpoint. We will receive a URL to which we will be able to send data. At the beginning you have to set up your device. Synerise allows you to create an endpoint to which you can send external data and as the result of such an action, you will receive a URL to which you can send the data in JSON format. Below you will see an example of a data frame.
{ "time": "x", "label": "x", "action": "x", "client": { "uuid": "xxx-xxx-xxx" }, "params": { "temp1": "x", "temp2": "x", "temp3": "x", "temp4": "x" } }
-
When our devices are configured and they are sending data to this URL we can start to create an automation.
-
Automations allow us to convert received data into events on our device cards.
-
We use business events as a trigger, which means that our automation will be triggered every time our end point receives some data. So, when one of our devices sends any data, our automation will be triggered.
-
Then it will send outgoing webhooks. And here in the body of our outgoing webhook, we use Jinjava in order to get information about the values of these particular parameters.
Case 1: Making smart alerts about temperature deviation problems
- Go to Automation > Workflow > New workflow.
- Start with the Profile Event trigger and in the settings of the node, select the custom.temp event. This automation is triggered every time this event appears on the profile card.
- Choose Update Profile action. Update the device status to online because when the device is sending data, that means it’s online.
- Choose Profile Filter. In this step we check if the average of the last 4 measurements was between 10 and 15 degrees. Because let’s assume that this is the temperature that we want to have.
- If Profile Filter is matched add Update Profile node. In settings define that it should updating a temperature status into “in scale” and then the automation is ending with End node.
- But when our average temperature falls below 10 degrees or moves above 15 degrees, our automation will go with a different path. If Profile Filter is not matched add some Delay node.
- Next, add another Profile Filter in which we check if the last temperature status was “in scale”. We do it for the purpose of capping.
Note: Let’s say that we want to receive only one notification per day. But in this particular way I assume that I wanted to get one notification when my fridge is broken and another one only when it’s been fixed but it’s broken again. So, of course, this is a very flexible and this is just one way of doing this automation if you want you can receive as many alerts as you want but this is just an example.
- If conditions are not matched add End node.
- If conditions are matched add Alerts. In this way you can send a bunch of email alerts and SMS alerts and some Slack notifications. We also update the hourly temperature status into out of scale.
Based on that automation we are sure that a broken device would not send us and annotification until we fixed the fridge.
Case 2: Making smart alerts about device connection problems
- Go to Automation > Workflow > New workflow.
- As a trigger add Audience node. Set up Run trigger as repeatable, and send interval as one hour. In this way, this automation will be triggered, every hour.
- Add Profile Filter. It checks if we have any devices in our segment that didn’t respond for one hour.
- If Profile Filter is not matched, add End node.
- If Profile Filter is matched, add Update Profile node. If it finds such devices, it will update its status to offline.
- Add Outgoing Integration node, which send us a notification.
- Add Profile Filter. We’ll check if we have any devices that didn’t respond for at least 12 hours.
- If Profile Filter is not matched, add End node.
- If Profile Filter is matched, add Update Profile node. If there are any such devices it will update the device status to offline.
- Add Outgoing Integration. It will send a notification that our device is offline for at least 12 hours. In this scenario we will only get two emails when one of our devices is offline.
- Finish the workflow adding End node.