You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot/concepts-architecture.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
---
2
-
title: IoT Plug and Play architecture | Microsoft Docs
2
+
title: IoT Plug and Play architecture
3
3
description: Understand the key architectural elements of an IoT Plug and Play solution.
4
-
author: ridomin
5
-
ms.author: rmpablos
6
-
ms.date: 1/23/2024
4
+
author: dominicbetts
5
+
ms.author: dobett
6
+
ms.date: 03/13/2025
7
7
ms.topic: conceptual
8
8
ms.custom: mvc
9
9
ms.service: azure-iot
@@ -13,7 +13,7 @@ ms.service: azure-iot
13
13
14
14
IoT Plug and Play enables solution builders to integrate IoT devices with their solutions without any manual configuration. At the core of IoT Plug and Play, is a device _model_ that describes a device's capabilities to an IoT Plug and Play-enabled application. This model is structured as a set of interfaces that define:
15
15
16
-
-_Properties_ that represent the read-only or writable state of a device or other entity. For example, a device serial number may be a read-only property and a target temperature on a thermostat may be a writable property.
16
+
-_Properties_ that represent the read-only or writable state of a device or other entity. For example, a device serial number is a read-only property and a target temperature on a thermostat is a writable property.
17
17
-_Telemetry_ that's the data emitted by a device, whether the data is a regular stream of sensor readings, an occasional error, or an information message.
18
18
-_Commands_ that describe a function or operation that can be done on a device. For example, a command could reboot a gateway or take a picture using a remote camera.
19
19
@@ -70,7 +70,7 @@ An IoT hub:
70
70
71
71
## Backend solution
72
72
73
-
A backend solution monitors and controls connected devices by interacting with digital twins in the IoT hub. Use one of the Azure IoT service SDKs to implement your backend solution. To understand the capabilities of a connected device, the solution backend:
73
+
A backend solution monitors and controls connected devices by interacting with digital twins in the IoT hub. To implement a backend solution, use one of the Azure IoT service SDKs. To understand the capabilities of a connected device, the solution backend:
74
74
75
75
1. Retrieves the model ID the device registered with the IoT hub.
76
76
1. Uses the model ID to retrieve the interface definitions from any model repository.
@@ -87,5 +87,5 @@ The backend solution can use the information from the interface definitions to:
87
87
88
88
Now that you have an overview of the architecture of an IoT Plug and Play solution, the next steps are to learn more about:
89
89
90
-
-[Digital twin model integration](./concepts-model-discovery.md)
90
+
-[Use models in a solution](./concepts-model-discovery.md)
91
91
-[Developing for IoT Plug and Play](./concepts-developer-guide-device.md)
Copy file name to clipboardExpand all lines: articles/iot/concepts-convention.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: IoT Plug and Play conventions | Microsoft Docs
2
+
title: IoT Plug and Play conventions
3
3
description: Description of the conventions IoT Plug and Play expects devices to use when they send telemetry and properties, and handle commands and property updates.
Copy file name to clipboardExpand all lines: articles/iot/concepts-developer-guide-device.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Device developer guide - IoT Plug and Play | Microsoft Docs
2
+
title: Device developer guide - IoT Plug and Play
3
3
description: "Description of IoT Plug and Play for device developers. Includes examples in the following languages: C, C#, Java, JavaScript, Python, and Embedded C."
IoT Plug and Play lets you build IoT devices that advertise their capabilities to Azure IoT applications. IoT Plug and Play devices don't require manual configuration when a customer connects them to IoT Plug and Play-enabled applications.
19
19
20
-
IoT Plug and Play lets you use devices that have announced their model ID with your IoT hub. For example, you can access the properties and commands of a device directly.
20
+
IoT Plug and Play lets you use devices that announce their model ID to your IoT hub. For example, you can access the properties and commands of a device directly.
21
21
22
22
If you're using IoT Central, you can use the IoT Central UI and REST API to interact with IoT Plug and Play devices connected to your application.
Copy file name to clipboardExpand all lines: articles/iot/concepts-digital-twin.md
+7-8Lines changed: 7 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: Understand IoT Plug and Play digital twins
3
3
description: Understand how IoT Plug and Play uses digital twins
4
4
author: dominicbetts
5
5
ms.author: dobett
6
-
ms.date: 1/23/2024
6
+
ms.date: 03/18/2025
7
7
ms.topic: conceptual
8
8
ms.service: azure-iot
9
9
---
@@ -15,7 +15,7 @@ An IoT Plug and Play device implements a model described by the [Digital Twins D
15
15
> [!NOTE]
16
16
> DTDL isn't exclusive to IoT Plug and Play. Other IoT services, such as [Azure Digital Twins](../digital-twins/overview.md), use it to represent entire environments such as buildings and energy networks.
17
17
18
-
The Azure IoT service SDKs include APIs that let a service interact a device's digital twin. For example, a service can read device properties from the digital twin or use the digital twin to call a command on a device. To learn more, see [IoT Hub digital twin examples](concepts-developer-guide-service.md#iot-hub-digital-twin-examples).
18
+
The Azure IoT service SDKs include APIs that let a service interact with a device's digital twin. For example, a service can read device properties from the digital twin or use the digital twin to call a command on a device. To learn more, see [IoT Hub digital twin examples](concepts-developer-guide-service.md#iot-hub-digital-twin-examples).
19
19
20
20
The example IoT Plug and Play device in this article implements a [Temperature Controller model](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/samples/TemperatureController.json) that has [Thermostat](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/samples/Thermostat.json) components.
21
21
@@ -226,12 +226,12 @@ In this example, `3.0` is the current value of the `fanSpeed` property reported
226
226
227
227
Components let you build a model interface as an assembly of other interfaces. For example, the [Thermostat](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/samples/Thermostat.json) interface can be incorporated as components `thermostat1` and `thermostat2` in the [Temperature Controller model](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/samples/TemperatureController.json) model.
228
228
229
-
In a device twin, a component is identified by the `{ "__t": "c"}` marker. In a digital twin, the presence of `$metadata` marks a component.
229
+
In a device twin, the `{ "__t": "c"}` marker identifies a component. In a digital twin, the presence of `$metadata` marks a component.
230
230
231
231
In this example, `thermostat1` is a component with two properties:
232
232
233
233
-`maxTempSinceLastReboot` is a read-only property.
234
-
-`targetTemperature` is a writable property that's been successfully synchronized by the device. The desired value and synchronization state of these properties are in the component's `$metadata`.
234
+
-`targetTemperature` is a writable property that was successfully synchronized by the device. The desired value and synchronization state of these properties are in the component's `$metadata`.
235
235
236
236
The following snippets show the side-by-side JSON representation of the `thermostat1` component:
237
237
@@ -297,15 +297,15 @@ The following snippets show the side-by-side JSON representation of the `thermos
297
297
298
298
## Digital twin APIs
299
299
300
-
The digital twin APIs include **Get Digital Twin**, **Update Digital Twin**, **Invoke Component Command** and **Invoke Command** operations more managing a digital twin. You can either use the [REST APIs](/rest/api/iothub/service/digitaltwin) directly or through one of the [service SDKs](concepts-developer-guide-service.md#service-sdks).
300
+
The digital twin APIs include **Get Digital Twin**, **Update Digital Twin**, **Invoke Component Command** and **Invoke Command** operations for managing a digital twin. You can either use the [REST APIs](/rest/api/iothub/service/digitaltwin) directly or through one of the [service SDKs](concepts-developer-guide-service.md#service-sdks).
301
301
302
302
## Digital twin change events
303
303
304
304
When digital twin change events are enabled, an event is triggered whenever the current or desired value of the component or property changes. Digital twin change events are generated in [JSON Patch](http://jsonpatch.com/) format. Corresponding events are generated in the device twin format if twin change events are enabled.
305
305
306
306
To learn how to enable routing for device and digital twin events, see [Use IoT Hub message routing to send device-to-cloud messages to different endpoints](../iot-hub/iot-hub-devguide-messages-d2c.md#non-telemetry-events). To understand the message format, see [Create and read IoT Hub messages](../iot-hub/iot-hub-devguide-messages-construct.md).
307
307
308
-
For example, the following digital twin change event is triggered when `targetTemperature` is set by the solution:
308
+
For example, the following digital twin change event is triggered when the solution sets a `targetTemperature` value:
309
309
310
310
```json
311
311
iothub-connection-device-id:sample-device
@@ -326,7 +326,7 @@ content-encoding:utf-8
326
326
]
327
327
```
328
328
329
-
The following digital twin change event is triggered when the device reports that the above desired change was applied:
329
+
The following digital twin change event is triggered when the device reports that the previous desired change was applied:
330
330
331
331
```json
332
332
iothub-connection-device-id:sample-device
@@ -374,4 +374,3 @@ Now that you've learned about digital twins, here are some more resources:
374
374
-[How to use IoT Plug and Play digital twin APIs](howto-manage-digital-twin.md)
375
375
-[Interact with a device from your solution](./tutorial-service.md)
376
376
-[IoT Digital Twin REST API](/rest/api/iothub/service/digitaltwin)
Copy file name to clipboardExpand all lines: articles/iot/concepts-message-payloads.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: Plug and Play device message payloads
3
3
description: Understand the format of the telemetry, property, and command messages that a Plug and Play device can exchange with a service.
4
4
author: dominicbetts
5
5
ms.author: dobett
6
-
ms.date: 1/23/2024
6
+
ms.date: 03/18/2025
7
7
ms.topic: conceptual
8
8
ms.service: azure-iot
9
9
ms.custom: device-developer
@@ -30,7 +30,10 @@ Each example shows a snippet from the device model that defines the type and exa
30
30
31
31
The example JSON snippets in this article use [Digital Twin Definition Language (DTDL) v2](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/DTDL.v2.md). There are also some [DTDL extensions that IoT Central](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/DTDL.iotcentral.v2.md) uses.
32
32
33
-
For sample device code that shows some of these payloads in use, see the [Connect a sample IoT Plug and Play device application running on Linux or Windows to IoT Hub tutorial](./tutorial-connect-device.md) or the [Create and connect a client application to your Azure IoT Central application](../iot-central/core/tutorial-connect-device.md) tutorial.
33
+
For sample device code that shows some of these payloads in use, see the following tutorials:
34
+
35
+
*[Connect a sample IoT Plug and Play device application running on Linux or Windows to IoT Hub tutorial](./tutorial-connect-device.md)
36
+
*[Create and connect a client application to your Azure IoT Central application](../iot-central/core/tutorial-connect-device.md).
34
37
35
38
## View raw data
36
39
@@ -50,7 +53,7 @@ For more troubleshooting tips, see [Troubleshoot why data from your devices isn'
50
53
51
54
To learn more about the DTDL telemetry naming rules, see [DTDL > Telemetry](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/DTDL.v2.md#telemetry). You can't start a telemetry name using the `_` character.
52
55
53
-
Don't create telemetry types with the following names. IoT Central uses these reserved names internally. If you try to use these names, IoT Central will ignore your data:
56
+
Don't create telemetry types with the following names. IoT Central uses these reserved names internally. If you try to use these names, IoT Central ignores your data:
54
57
55
58
*`EventEnqueuedUtcTime`
56
59
*`EventProcessedUtcTime`
@@ -69,7 +72,7 @@ If the telemetry is defined in a component, add a custom message property called
69
72
70
73
### Telemetry in inherited interfaces
71
74
72
-
If the telemetry is defined in an inherited interface, your device sends the telemetry as if it is defined in the root interface. Given the following device model:
75
+
If the telemetry is defined in an inherited interface, your device sends the telemetry as if it's defined in the root interface. Given the following device model:
73
76
74
77
```json
75
78
[
@@ -842,7 +845,7 @@ To learn more, see [Connect an IoT Plug and Play multiple component device appli
842
845
843
846
The device or module should confirm that it received the property by sending a reported property. The reported property should include:
844
847
845
-
*`value` - the actual value of the property (typically the received value, but the device may decide to report a different value).
848
+
*`value` - the actual value of the property (typically the received value, but the device can decide to report a different value).
846
849
*`ac` - an acknowledgment code that uses an HTTP status code.
847
850
*`av` - an acknowledgment version that refers to the `$version` of the desired property. You can find this value in the desired property JSON payload.
Copy file name to clipboardExpand all lines: articles/iot/concepts-modeling-guide.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Understand IoT Plug and Play device models | Microsoft Docs
2
+
title: Understand IoT Plug and Play device models
3
3
description: Understand the Digital Twins Definition Language (DTDL) modeling language for IoT Plug and Play devices. The article describes primitive and complex datatypes, reuse patterns that use components and inheritance, and semantic types. The article provides guidance on the choice of device twin model identifier and tooling support for model authoring.
Copy file name to clipboardExpand all lines: articles/iot/howto-convert-to-pnp.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
1
---
2
-
title: Convert an existing device to use IoT Plug and Play | Microsoft Docs
2
+
title: Convert an existing device to use IoT Plug and Play
3
3
description: This article describes how to convert your existing device code to work with IoT Plug and Play by creating a device model and then sending the model ID when the device connects.
0 commit comments