1---2name: azure-iot3description: Expert knowledge for Azure IoT development including troubleshooting, best practices, decision making, architecture & design patterns, security, configuration, and integrations & coding patterns. Use when using IoT Hub/DPS, MQTT, IoT Plug and Play/DTDL, Azure IoT Explorer security, or industrial IoT architectures, and other Azure IoT related development tasks. Not for Azure IoT Hub (use azure-iot-hub), Azure IoT Edge (use azure-iot-edge), Azure IoT Central (use azure-iot-central), Azure Defender For Iot (use azure-defender-for-iot).4---5# Azure IoT Skill
6
7This skill provides expert guidance for Azure IoT. Covers troubleshooting, best practices, decision making, architecture & design patterns, security, configuration, and integrations & coding patterns. It combines local quick-reference content with remote documentation fetching capabilities.
8
9## How to Use This Skill
10
11> **IMPORTANT for Agent**: Use the **Category Index** below to locate relevant sections. For categories with line ranges (e.g., `L35-L120`), use `read_file` with the specified lines. For categories with file links (e.g., `[security.md](security.md)`), use `read_file` on the linked reference file
12
13> **IMPORTANT for Agent**: If `metadata.generated_at` is more than 3 months old, suggest the user pull the latest version from the repository. If `mcp_microsoftdocs` tools are not available, suggest the user install it: [Installation Guide](https://github.com/MicrosoftDocs/mcp/blob/main/README.md)
14
15This skill requires **network access** to fetch documentation content:
16- **Preferred**: Use `mcp_microsoftdocs:microsoft_docs_fetch` with query string `from=learn-agent-skill`. Returns Markdown.
17- **Fallback**: Use `fetch_webpage` with query string `from=learn-agent-skill&accept=text/markdown`. Returns Markdown.
18
19## Category Index
20
21| Category | Lines | Description |
22|----------|-------|-------------|
23| Troubleshooting | L35-L39 | Debugging Azure IoT embedded device tutorials, including build/deploy failures, connection/auth issues, sample app errors, and how to collect logs and diagnose common device-side problems. |
24| Best Practices | L40-L45 | Guidance on resilient device reconnection patterns for Azure IoT and how to model IoT Plug and Play devices using DTDL for interoperability and digital twins. |
25| Decision Making | L46-L51 | Guidance on using IoT Plug and Play device models in solutions and deciding between Azure IoT C vs Embedded C SDKs based on device, performance, and integration needs. |
26| Architecture & Design Patterns | L52-L57 | Reference architectures and patterns for industrial IoT on Azure, including dataspace-based designs, component choices, and end-to-end implementation guidance for industrial scenarios. |
27| Security | L58-L62 | Guidance on securely using Azure IoT Explorer with IoT Hub, including authentication, permissions, connection strings, and best practices to protect devices and hub access. |
28| Configuration | L63-L67 | Guidance on choosing the right Azure IoT device and service SDKs (languages, platforms, and capabilities) for building and integrating IoT solutions. |
29| Integrations & Coding Patterns | L68-L79 | Patterns and code for integrating devices via MQTT and IoT Plug and Play, building device/service apps, formatting payloads, using DPS/IoT Hub, and connecting SAP ERP to Azure IoT. |
30
31### Troubleshooting
32| Topic | URL |
33|-------|-----|
34| Troubleshoot Azure IoT embedded device tutorials | https://learn.microsoft.com/en-us/azure/iot/troubleshoot-embedded-device-tutorials |
35
36### Best Practices
37| Topic | URL |
38|-------|-----|
39| Design resilient Azure IoT device reconnection strategies | https://learn.microsoft.com/en-us/azure/iot/concepts-manage-device-reconnections |
40| Model IoT Plug and Play devices with DTDL | https://learn.microsoft.com/en-us/azure/iot/concepts-modeling-guide |
41
42### Decision Making
43| Topic | URL |
44|-------|-----|
45| Use IoT Plug and Play models in solutions | https://learn.microsoft.com/en-us/azure/iot/concepts-model-discovery |
46| Choose between Azure IoT C and Embedded C SDKs | https://learn.microsoft.com/en-us/azure/iot/concepts-using-c-sdk-and-embedded-c-sdk |
47
48### Architecture & Design Patterns
49| Topic | URL |
50|-------|-----|
51| Enable industrial dataspace architectures on Azure | https://learn.microsoft.com/en-us/azure/iot/howto-iot-industrial-dataspaces |
52| Implement Azure industrial IoT reference architecture | https://learn.microsoft.com/en-us/azure/iot/tutorial-iot-industrial-solution-architecture |
53
54### Security
55| Topic | URL |
56|-------|-----|
57| Use Azure IoT Explorer securely with IoT Hub | https://learn.microsoft.com/en-us/azure/iot/howto-use-iot-explorer |
58
59### Configuration
60| Topic | URL |
61|-------|-----|
62| Select Azure IoT device and service SDKs | https://learn.microsoft.com/en-us/azure/iot/iot-sdks |
63
64### Integrations & Coding Patterns
65| Topic | URL |
66|-------|-----|
67| Apply IoT Plug and Play MQTT messaging conventions | https://learn.microsoft.com/en-us/azure/iot/concepts-convention |
68| Implement IoT Plug and Play devices with Azure SDKs | https://learn.microsoft.com/en-us/azure/iot/concepts-developer-guide-device |
69| Build IoT Plug and Play service applications | https://learn.microsoft.com/en-us/azure/iot/concepts-developer-guide-service |
70| Work with IoT Plug and Play digital twins | https://learn.microsoft.com/en-us/azure/iot/concepts-digital-twin |
71| Format IoT Plug and Play device message payloads | https://learn.microsoft.com/en-us/azure/iot/concepts-message-payloads |
72| Connect on-premises SAP ERP to Azure industrial IoT | https://learn.microsoft.com/en-us/azure/iot/howto-connect-on-premises-sap-to-azure |
73| Use MQTT protocol with Azure IoT DPS | https://learn.microsoft.com/en-us/azure/iot/iot-mqtt-connect-to-iot-dps |
74| Use MQTT protocol with Azure IoT Hub | https://learn.microsoft.com/en-us/azure/iot/iot-mqtt-connect-to-iot-hub |
75| Create an Azure IoT device client using raw MQTT | https://learn.microsoft.com/en-us/azure/iot/tutorial-use-mqtt |