Skip to content

Commit f72134b

Browse files
authored
Merge pull request #217907 from dominicbetts/central-howto-screenshots
IoT Central: how to screenshot updates
2 parents 4c43159 + e3309fc commit f72134b

File tree

62 files changed

+107
-120
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+107
-120
lines changed

articles/iot-central/core/howto-configure-file-uploads.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ To configure device file uploads:
4040

4141
1. Select **Save**. When the status shows **Configured**, you're ready to upload files from devices.
4242

43-
:::image type="content" source="media/howto-configure-file-uploads/file-upload-configuration.png" alt-text="Configure file upload in application":::
43+
:::image type="content" source="media/howto-configure-file-uploads/file-upload-configuration.png" alt-text="Screenshot that shows a properly configured file upload." lightbox="media/howto-configure-file-uploads/file-upload-configuration.png":::
4444

4545
## Disable device file uploads
4646

@@ -69,7 +69,7 @@ If you enabled access to files in the file upload configuration, users with the
6969
7070
To view and delete uploaded files, navigate to the **Files** view for a device. On this page, you can see thumbnails of the uploaded files and toggle between a gallery and list view. Each file has options to download or delete it:
7171

72-
:::image type="content" source="media/howto-configure-file-uploads/file-upload-list-files.png" alt-text="Screenshot that shows the gallery view for uploaded files.":::
72+
:::image type="content" source="media/howto-configure-file-uploads/file-upload-list-files.png" alt-text="Screenshot that shows the gallery view for uploaded files." lightbox="media/howto-configure-file-uploads/file-upload-list-files.png":::
7373

7474
> [!TIP]
7575
> The file type is determined by the mime type assigned to the file when it was uploaded to blob storage. The default type is `binary/octet-stream`.
@@ -78,7 +78,7 @@ You can customize the list view by filtering based on file name and choosing the
7878

7979
To preview the content of the file and get more information about the file, select it. IoT Central supports previews of common file types such as text and images:
8080

81-
:::image type="content" source="media/howto-configure-file-uploads/file-upload-preview.png" alt-text="Screenshot that shows a preview of a text file.":::
81+
:::image type="content" source="media/howto-configure-file-uploads/file-upload-preview.png" alt-text="Screenshot that shows a preview of a text file." lightbox="media/howto-configure-file-uploads/file-upload-preview.png":::
8282

8383
## Next steps
8484

articles/iot-central/core/howto-configure-rules.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@ Rules in IoT Central serve as a customizable response tool that trigger on activ
1919

2020
Use the target devices section to select on what kind of devices this rule will be applied. Filters allow you to further refine what devices should be included. The filters use properties on the device template to filter down the set of devices. Filters themselves don't trigger an action. In the following screenshot, the devices that are being targeted are of device template type **Refrigerator**. The filter states that the rule should only include **Refrigerators** where the **Manufactured State** property equals **Washington**.
2121

22-
:::image type="content" source="media/howto-configure-rules/filters.png" alt-text="Screenshot that shows a condition definition.":::
22+
:::image type="content" source="media/howto-configure-rules/filters.png" alt-text="Screenshot that shows a filter definition in a rule." lightbox="media/howto-configure-rules/filters.png":::
2323

2424
## Use multiple conditions
2525

2626
Conditions are what rules trigger on. You can add multiple conditions to a rule and specify if the rule should trigger when all the conditions are true or any of the conditions are true.
2727

28-
In the following screenshot, the conditions check when the temperature is greater than 70° F and the humidity is less than 10. When any of these statements are true, the rule evaluates to true and triggers an action.
28+
In the following screenshot, the conditions check when the temperature is greater than 70° F and the humidity is less than 10%. When any of these statements are true, the rule evaluates to true and triggers an action.
2929

3030
:::image type="content" source="media/howto-configure-rules/conditions.png" alt-text="Screenshot shows a refrigerator monitor with conditions specified for temperature and humidity." lightbox="media/howto-configure-rules/conditions.png":::
3131

3232
> [!NOTE]
33-
> Currently only Telemetry Conditions are supported.
33+
> Currently only telemetry conditions are supported.
3434
3535
### Use a cloud property in a value field
3636

@@ -42,13 +42,13 @@ If you choose an event type telemetry value, the **Value** drop-down includes th
4242

4343
You can specify a time aggregation to trigger your rule based on a time window. Rule conditions evaluate aggregate time windows on telemetry data as tumbling windows. If there are any property filters in the rule, they're applied at the end of the time window. In the screenshot below, the time window is five minutes. Every five minutes, the rule evaluates on the last five minutes of telemetry data. The data is only evaluated once in the window to which it corresponds.
4444

45-
:::image type="content" source="media/howto-configure-rules/tumbling-window.png" alt-text="A diagram showing how tumbling windows are defined.":::
45+
:::image type="content" source="media/howto-configure-rules/tumbling-window.png" alt-text="A diagram showing how tumbling windows are defined." border="false":::
4646

4747
## Create an email action
4848

4949
When you create an email action, the email address must be a **user ID** in the application, and the user must have signed in to the application at least once. You can also specify a note to include in the email. IoT Central shows an example of what the email will look like when the rule triggers:
5050

51-
:::image type="content" source="media/howto-configure-rules/email-action.png" alt-text="Screenshot that shows an email action for a rule.":::
51+
:::image type="content" source="media/howto-configure-rules/email-action.png" alt-text="Screenshot that shows an email action for a rule." lightbox="media/howto-configure-rules/email-action.png":::
5252

5353
## Create a webhook action
5454

@@ -62,7 +62,7 @@ In this example, you connect to *RequestBin* to get notified when a rule fires:
6262

6363
1. Add an action to your rule:
6464

65-
:::image type="content" source="media/howto-configure-rules/webhook-create.png" alt-text="Screenshot that shows the webhook creation screen.":::
65+
:::image type="content" source="media/howto-configure-rules/webhook-create.png" alt-text="Screenshot that shows the webhook creation screen." lightbox="media/howto-configure-rules/webhook-create.png":::
6666

6767
1. Choose the webhook action, enter a display name, and paste the RequestBin URL as the **Callback URL**.
6868

@@ -193,15 +193,15 @@ An action group can:
193193

194194
The following screenshot shows an action group that sends email and SMS notifications and calls a webhook:
195195

196-
:::image type="content" source="media/howto-configure-rules/action-group.png" alt-text="Screenshot that shows an action group in the Azure portal.":::
196+
:::image type="content" source="media/howto-configure-rules/action-group.png" alt-text="Screenshot that shows an action group in the Azure portal." lightbox="media/howto-configure-rules/action-group.png":::
197197

198198
To use an action group in an IoT Central rule, the action group must be in the same Azure subscription as the IoT Central application.
199199

200200
When you add an action to the rule in IoT Central, select **Azure Monitor Action Groups**.
201201

202202
Choose an action group from your Azure subscription:
203203

204-
:::image type="content" source="media/howto-configure-rules/choose-action-group.png" alt-text="Screenshot that shows an action group in an IoT Central rule.":::
204+
:::image type="content" source="media/howto-configure-rules/choose-action-group.png" alt-text="Screenshot that shows an action group in an IoT Central rule." lightbox="media/howto-configure-rules/choose-action-group.png":::
205205

206206
Select **Save**. The action group now appears in the list of actions to run when the rule is triggered.
207207

articles/iot-central/core/howto-create-custom-analytics.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Use the URL output by the script to navigate to the IoT Central application it c
108108
| Host name | The event hub namespace host name, it's the value you assigned to `eventhubnamespace` in the earlier script |
109109
| Event Hub | The event hub name, it's the value you assigned to `eventhub` in the earlier script |
110110

111-
:::image type="content" source="media/howto-create-custom-analytics/data-export-1.png" alt-text="Screenshot showing data export destination.":::
111+
:::image type="content" source="media/howto-create-custom-analytics/data-export-1.png" alt-text="Screenshot showing data export destination." lightbox="media/howto-create-custom-analytics/data-export-1.png":::
112112

113113
1. Select **Save**.
114114

@@ -127,7 +127,7 @@ To create the export definition:
127127

128128
1. Select **Save**.
129129

130-
:::image type="content" source="media/howto-create-custom-analytics/data-export-2.png" alt-text="Screenshot showing data export definition.":::
130+
:::image type="content" source="media/howto-create-custom-analytics/data-export-2.png" alt-text="Screenshot showing data export definition." lightbox="media/howto-create-custom-analytics/data-export-2.png":::
131131

132132
Wait until the export status is **Healthy** on the **Data export** page before you continue.
133133

articles/iot-central/core/howto-create-custom-rules.md

Lines changed: 42 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Extend Azure IoT Central with custom rules and notifications | Microsoft
33
description: As a solution developer, configure an IoT Central application to send email notifications when a device stops sending telemetry. This solution uses Azure Stream Analytics, Azure Functions, and SendGrid.
44
author: dominicbetts
55
ms.author: dobett
6-
ms.date: 06/21/2022
6+
ms.date: 11/08/2022
77
ms.topic: how-to
88
ms.service: iot-central
99
services: iot-central
@@ -43,9 +43,9 @@ Create an IoT Central application on the [Azure IoT Central application manager]
4343
| URL | Accept the default or choose your own unique URL prefix |
4444
| Directory | Your Azure Active Directory tenant |
4545
| Azure subscription | Your Azure subscription |
46-
| Region | Your nearest region |
46+
| Location | Your nearest Azure data center |
4747

48-
The examples and screenshots in this article use the **United States** region. Choose a location close to you and make sure you create all your resources in the same region.
48+
The examples and screenshots in this article use the **East US*** location. Choose a location close to you and make sure you create all your resources in the same location.
4949

5050
This application template includes two simulated thermostat devices that send telemetry.
5151

@@ -88,24 +88,27 @@ Use the [Azure portal to create a function app](https://portal.azure.com/#create
8888
| App name | Choose your function app name |
8989
| Subscription | Your subscription |
9090
| Resource group | DetectStoppedDevices |
91-
| OS | Windows |
92-
| Hosting Plan | Consumption Plan |
93-
| Location | East US |
91+
| Publish | Code |
9492
| Runtime Stack | .NET |
93+
| Region | East US |
94+
| OS | Windows |
95+
| Hosting Plan | Consumption (Serverless) |
9596
| Storage | Create new |
9697

9798
### SendGrid account and API Keys
9899

99100
If you don't have a Sendgrid account, create a [free account](https://app.sendgrid.com/) before you begin.
100101

101-
1. From the Sendgrid Dashboard Settings on the left menu, select **API Keys**.
102-
1. Click **Create API Key.**
102+
1. From the Sendgrid Dashboard, select **Settings** on the left menu, select **Settings > API Keys**.
103+
1. Select **Create API Key.**
103104
1. Name the new API key **AzureFunctionAccess.**
104-
1. Click **Create & View**.
105+
1. Select **Create & View**.
106+
107+
:::image type="content" source="media/howto-create-custom-rules/sendgrid-api-keys.png" alt-text="Screenshot that shows how to create a SendGrid API key." lightbox="media/howto-create-custom-rules/sendgrid-api-keys.png":::
105108

106-
:::image type="content" source="media/howto-create-custom-rules/sendgrid-api-keys.png" alt-text="Screenshot of the Create SendGrid API key.":::
109+
Make a note of the generated API key, you use it later.
107110

108-
Afterwards, you will be given an API key. Save this string for later use.
111+
Create a **Single Sender Verification** in your SendGrid account for the email address you'll use as the **From** address.
109112

110113
## Create an event hub
111114

@@ -114,26 +117,24 @@ You can configure an IoT Central application to continuously export telemetry to
114117
1. In the Azure portal, navigate to your Event Hubs namespace and select **+ Event Hub**.
115118
1. Name your event hub **centralexport**, and select **Create**.
116119

117-
Your Event Hubs namespace looks like the following screenshot:
118-
119-
:::image type="content" source="media/howto-create-custom-rules/event-hubs-namespace.png" alt-text="Screenshot of Event Hubs namespace." border="false":::
120+
:::image type="content" source="media/howto-create-custom-rules/event-hubs-namespace.png" alt-text="Screenshot of the Event Hubs namespace with an event hub." border="false" lightbox="media/howto-create-custom-rules/event-hubs-namespace.png":::
120121

121122
## Define the function
122123

123124
This solution uses an Azure Functions app to send an email notification when the Stream Analytics job detects a stopped device. To create your function app:
124125

125-
1. In the Azure portal, navigate to the **App Service** instance in the **DetectStoppedDevices** resource group.
126-
1. Select **+** to create a new function.
127-
1. Select **HTTP Trigger**.
128-
1. Select **Add**.
126+
1. In the Azure portal, navigate to the **Function App** instance in the **DetectStoppedDevices** resource group.
127+
1. Select **Functions**, then **+ Create** to create a new function.
128+
1. Select **HTTP Trigger** as the function template.
129+
1. Select **Create**.
129130

130-
:::image type="content" source="media/howto-create-custom-rules/add-function.png" alt-text="Image of the Default HTTP trigger function":::
131+
:::image type="content" source="media/howto-create-custom-rules/add-function.png" alt-text="Screenshot of the Azure portal that shows how to create an HTTP trigger function." lightbox="media/howto-create-custom-rules/add-function.png":::
131132

132133
## Edit code for HTTP Trigger
133134

134-
The portal creates a default function called **HttpTrigger1**:
135+
The portal creates a default function called **HttpTrigger1**. Select **Code + Test**:
135136

136-
:::image type="content" source="media/howto-create-custom-rules/default-function.png" alt-text="Screenshot of Edit HTTP trigger function.":::
137+
:::image type="content" source="media/howto-create-custom-rules/default-function.png" alt-text="Screenshot that shows the default function code." lightbox="media/howto-create-custom-rules/default-function.png":::
137138

138139
1. Replace the C# code with the following code:
139140

@@ -174,7 +175,6 @@ The portal creates a default function called **HttpTrigger1**:
174175
}
175176
```
176177

177-
You may see an error message until you save the new code.
178178
1. Select **Save** to save the function.
179179

180180
## Add SendGrid Key
@@ -184,48 +184,46 @@ To add your SendGrid API Key, you need to add it to your **Function Keys** as fo
184184
1. Select **Function Keys**.
185185
1. Choose **+ New Function Key**.
186186
1. Enter the *Name* and *Value* of the API Key you created before.
187-
1. Click **OK.**
188-
189-
:::image type="content" source="media/howto-create-custom-rules/add-key.png" alt-text="Screenshot of Add Sangrid Key.":::
187+
1. Select **OK.**
190188

189+
:::image type="content" source="media/howto-create-custom-rules/add-key.png" alt-text="Screenshot of function keys including the SendGridAPI key." lightbox="media/howto-create-custom-rules/add-key.png":::
191190

192191
## Configure HttpTrigger function to use SendGrid
193192

194193
To send emails with SendGrid, you need to configure the bindings for your function as follows:
195194

196-
1. Select **Integrate**.
197-
1. Choose **Add Output** under **HTTP ($return)**.
195+
1. Select **Integration**.
196+
1. Select **HTTP ($return)**.
198197
1. Select **Delete.**
199-
1. Choose **+ New Output**.
200-
1. For Binding Type, then choose **SendGrid**.
201-
1. For SendGrid API Key Setting Type, click New.
198+
1. Select **+ Add output**.
199+
1. Select **SendGrid** as the binding type.
200+
1. For the **SendGrid API Key App Setting**, select **New**.
202201
1. Enter the *Name* and *Value* of your SendGrid API key.
203202
1. Add the following information:
204203

205204
| Setting | Value |
206205
| ------- | ----- |
207-
| Message parameter name | Choose your name |
208-
| To address | Choose the name of your To Address |
209-
| From address | Choose the name of your From Address |
210-
| Message subject | Enter your subject header |
211-
| Message text | Enter the message from your integration |
206+
| Message parameter name | name |
207+
| To address | Enter your To Address |
208+
| From address | Enter your SendGrid verified single sender email address |
209+
| Message subject | Device stopped |
210+
| Message text | The device connected to IoT Central has stopped sending telemetry. |
212211

213-
1. Select **OK**.
214-
215-
:::image type="content" source="media/howto-create-custom-rules/add-output.png" alt-text="Screenshot of Add SandGrid Output.":::
212+
1. Select **Save**.
216213

214+
:::image type="content" source="media/howto-create-custom-rules/add-output.png" alt-text="Screenshot of the SendGrid output configuration." lightbox="media/howto-create-custom-rules/add-output.png":::
217215

218216
### Test the function works
219217

220-
To test the function in the portal, first choose **Logs** at the bottom of the code editor. Then choose **Test** to the right of the code editor. Use the following JSON as the **Request body**:
218+
To test the function in the portal, first select **Logs** at the bottom of the code editor. Then select **Test/Run**. Use the following JSON as the **Request body**:
221219

222220
```json
223221
[{"deviceid":"test-device-1","time":"2019-05-02T14:23:39.527Z"},{"deviceid":"test-device-2","time":"2019-05-02T14:23:50.717Z"},{"deviceid":"test-device-3","time":"2019-05-02T14:24:28.919Z"}]
224222
```
225223

226224
The function log messages appear in the **Logs** panel:
227225

228-
:::image type="content" source="media/howto-create-custom-rules/function-app-logs.png" alt-text="Function log output":::
226+
:::image type="content" source="media/howto-create-custom-rules/function-app-logs.png" alt-text="Screenshot that shows the function log output." lightbox="media/howto-create-custom-rules/function-app-logs.png":::
229227

230228
After a few minutes, the **To** email address receives an email with the following content:
231229

@@ -306,9 +304,9 @@ This solution uses a Stream Analytics query to detect when a device stops sendin
306304
1. Select **Save**.
307305
1. To start the Stream Analytics job, choose **Overview**, then **Start**, then **Now**, and then **Start**:
308306

309-
:::image type="content" source="media/howto-create-custom-rules/stream-analytics.png" alt-text="Screenshot of Stream Analytics.":::
307+
:::image type="content" source="media/howto-create-custom-rules/stream-analytics.png" alt-text="Screenshot of Stream Analytics overview page." lightbox="media/howto-create-custom-rules/stream-analytics.png":::
310308

311-
## Configure export in IoT Central
309+
## Configure export in IoT Central
312310

313311
On the [Azure IoT Central application manager](https://aka.ms/iotcentral) website, navigate to the IoT Central application you created.
314312

@@ -322,10 +320,10 @@ In this section, you configure the application to stream the telemetry from its
322320
| Display Name | Export to Event Hubs |
323321
| Enabled | On |
324322
| Type of data to export | Telemetry |
325-
| Enrichments | Enter desired key / Value of how you want the exported data to be organized |
323+
| Enrichments | Enter desired key / Value of how you want the exported data to be organized |
326324
| Destination | Create New and enter information for where the data will be exported |
327325

328-
:::image type="content" source="media/howto-create-custom-rules/cde-configuration.png" alt-text="Screenshot of the Data Export.":::
326+
:::image type="content" source="media/howto-create-custom-rules/cde-configuration.png" alt-text="Screenshot of the data export settings in IoT Central." lightbox="media/howto-create-custom-rules/cde-configuration.png":::
329327

330328
Wait until the export status is **Running** before you continue.
331329

articles/iot-central/core/howto-export-to-azure-data-explorer.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: Export data to Azure Data Explorer IoT Central | Microsoft Docs
33
description: How to use the new data export to export your IoT data to Azure Data Explorer
44
services: iot-central
5-
author: eross-msft
6-
ms.author: lizross
5+
author: dominicbetts
6+
ms.author: dobett
77
ms.date: 04/28/2022
88
ms.topic: how-to
99
ms.service: iot-central

articles/iot-central/core/howto-export-to-blob-storage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
title: Export data to Blob Storage IoT Central | Microsoft Docs
33
description: How to use the new data export to export your IoT data to Blob Storage
44
services: iot-central
5-
author: eross-msft
6-
ms.author: lizross
5+
author: dominicbetts
6+
ms.author: dobett
77
ms.date: 04/28/2022
88
ms.topic: how-to
99
ms.service: iot-central

0 commit comments

Comments
 (0)