From 0f63a64f6e9f0c7f59b3f2632584f9065013a4b4 Mon Sep 17 00:00:00 2001 From: Sierra Guequierre Date: Thu, 17 Oct 2024 08:26:47 -0400 Subject: [PATCH] DOCS-3018: Update helmet tutorial for email option (#3553) --- assets/tutorials/helmet/trigger.png | Bin 0 -> 53011 bytes docs/configure/triggers.md | 12 +++--- docs/tutorials/projects/helmet.md | 57 +++++++++++++--------------- 3 files changed, 34 insertions(+), 35 deletions(-) create mode 100644 assets/tutorials/helmet/trigger.png diff --git a/assets/tutorials/helmet/trigger.png b/assets/tutorials/helmet/trigger.png new file mode 100644 index 0000000000000000000000000000000000000000..63936251f785450356e6c87dfa593b7d50fed1cc GIT binary patch literal 53011 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𝔰-CG{eoH)BrUx&mpx{%>7r6W$A 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 OpO(7**#gxoq5lPdEton0 literal 0 HcmV?d00001 diff --git a/docs/configure/triggers.md b/docs/configure/triggers.md index 69022cf9e6..7a134bc6b4 100644 --- a/docs/configure/triggers.md +++ b/docs/configure/triggers.md @@ -10,15 +10,15 @@ aliases: - /build/configure/triggers/ --- -Triggers allow you to trigger webhooks when certain types of data are sent from your machine to the cloud, or when the your machine parts connect to Viam. -For example, you can configure a trigger to send you a notification when your robot's sensor collects a new reading. -Viam provides the following trigger types depending on the event you want to trigger on: +Triggers allow you to send webhook requests or emails for the following events: - **Data has been synced to the cloud**: trigger when data from the machine is synced - **Part is online**: trigger continuously at a specified interval while the {{< glossary_tooltip term_id="part" text="machine part" >}} is online - **Part is offline**: trigger continuously at a specified interval while the machine part is offline - **Conditional data ingestion**: trigger any time data is captured from a specified component with a specified method and condition +For example, you can configure a trigger to send you a notification when your robot's sensor collects a new reading. + To configure a trigger: {{< tabs >}} @@ -65,7 +65,8 @@ You must [configure data capture](/services/data/capture-sync/) for your compone {{< tabs name="Notifications types" >}} {{% tab name="Webhooks" %}} -Replace the **URL** value with the URL of your cloud function or lambda. +Click **Add Webhook**. +Add the URL of your cloud function or lambda. Configure the time between notifications. ![The trigger configured with an example URL in the Viam app.](/build/configure/trigger-configured.png) @@ -73,10 +74,11 @@ Configure the time between notifications. {{% /tab %}} {{% tab name="Emails" %}} +Click **Add Email**. Add the email you wish to be notified whenever this trigger is triggered. Configure the time between notifications. -![The trigger configured with an example URL in the Viam app.](/build/configure/trigger-configured-email.png) +![The trigger configured with an example email in the Viam app.](/build/configure/trigger-configured-email.png) {{% /tab %}} {{< /tabs >}} diff --git a/docs/tutorials/projects/helmet.md b/docs/tutorials/projects/helmet.md index a27ec2d7fe..9a19c2ceb3 100644 --- a/docs/tutorials/projects/helmet.md +++ b/docs/tutorials/projects/helmet.md @@ -2,7 +2,7 @@ title: "Monitor Job Site Helmet Usage with Computer Vision" linkTitle: "Helmet Monitor" type: "docs" -description: "Get an email alert if people are not wearing hard hats." +description: "Use computer vision to detect problems such as people not wearing safety gear and get email alerts." videos: ["/tutorials/helmet/hardhat.webm", "/tutorials/helmet/hardhat.mp4"] images: ["/tutorials/helmet/hardhat.gif"] videoAlt: "A man without a hard hat is detected and labeled as No-Hardhat. Then he puts on a hard hat and a bounding box labeled Hardhat appears. He gives a thumbs-up to the camera." @@ -18,10 +18,12 @@ cost: 120 {{}} -We all know personal protective equipment (PPE) helps keep us safe, but sometimes we need a reminder to use it consistently. -Luckily, you can address this problem using Viam's integrated [data capture](/services/data/capture-sync/), [computer vision](/services/vision/), and [triggers](/configure/triggers/), along with a hard hat detection model. +Personal protective equipment (PPE) helps keep us safe, but sometimes we need a reminder to use it consistently. +If you want to monitor the usage of PPE equipment, you can address this problem using computer vision and a machine learning model that can detect if someone is wearing a hard. -By following this tutorial you will build a system to look out for you and your team, sending an email notification when someone isn't wearing a hard hat. +By following this tutorial you will build a system that can monitor camera feeds and detect situations that require review. +In other words, this system performs anomaly detection. +Whenever the system detects an anomaly, like someone not wearing a hard hat, it will send an email notification. {{}} @@ -248,13 +250,18 @@ Now that you have verified that the detector and data sync are working, modify y ## Set up email notifications -[Triggers](/configure/triggers/) allow you to trigger actions by sending an HTML request when a certain event happens. -In this case, you're going to set up a trigger to trigger a serverless function that sends you an email when an image of someone without a hard hat is uploaded to the cloud. +[Triggers](/configure/triggers/) allow you to send webhook requests or email notifications when certain events happen. -Before you configure a trigger on your machine, you need to create a serverless function for the trigger to call. +For example, you can set up a trigger to perform an action whenever an image of someone without a hard hat is uploaded to the cloud. + +You can set up the trigger with a serverless function which sends you a customized email or with Viam's built-in email alerts which sends a generic email letting you know that data has been synced. + +If you wish to use Viam's built-in email alerts, skip ahead to [configuring a trigger on your machine](#set-up-email-notifications). +To set up a serverless function, continue reading. ### Create a serverless function +Before you configure a trigger on your machine, you need to create a serverless function for the trigger to call. A serverless function is a simple script that is hosted by a service such as [Google Cloud Functions](https://cloud.google.com/functions) or [AWS Lambda](https://aws.amazon.com/pm/lambda). You don't need to host it on your machine; instead, it is always available and runs only when an event triggers it. @@ -411,36 +418,26 @@ Now you can test the script: ### Configure a trigger on your machine -Now it's time to configure a [trigger](/configure/triggers/) on your machine to trigger the email cloud function when a person is not wearing a hard hat. +Now it's time to configure a trigger so that you get an email when a person is not wearing a hard hat. Since you configured data to sync only when an image of a person without a hard hat is captured, configuring the trigger to trigger each time an image is synced to the cloud will produce the desired result. -Configure a trigger as follows: +Go to the **CONFIGURE** tab of your machine on the [Viam app](https://app.viam.com). +Click the **+** (Create) button in the left side menu and select **Trigger**. -1. Navigate to the **CONFIGURE** tab of your machine. - Select **JSON** mode in the left-hand menu. +Name the trigger and click **Create**. -2. Paste the following JSON template into your JSON config. - `"triggers"` is a top-level section like `"components"`, `"services"`, or any of the other config sections. +Select trigger **Type** as **Data has been synced to the cloud** and **Data Types** as **Binary (image)**. - ```json {class="line-numbers linkable-line-numbers"} - "triggers": [ - { - "url": "", - "event": { - "attributes": { - "data_types": ["binary"] - }, - "type": "part_data_ingested" - } - } - ] - ``` +{{}} -3. Replace the `url` value with your cloud function URL. - You can get this URL by copying it from the **TRIGGER** tab in the cloud function console. - Once you've done this, the `url` line should resemble, for example, `"url": "https://us-east1-example-string-123456.cloudfunctions.net/hat-email"`. +To configure notifications, either -4. Click **Save** in the top right corner of the screen to save your changes. +- add a webhook and enter the URL of your custom cloud function, if you created one +- add an email address to use Viam's built-in email notifications + +For both options also configure the time between notifications. + +Click **Save** in the top right corner of the screen to save your changes. ## Test the whole system