Didacticiel : interagir avec un appareil IoT Plug-and-Play connecté à votre solution
IoT Plug-and-Play simplifie l’IoT en vous permettant d’interagir avec les fonctionnalités d’un appareil sans avoir connaissance de l’implémentation de l’appareil sous-jacent. Ce tutoriel vous montre comment utiliser C# pour vous connecter à un appareil IoT Plug-and-Play connecté à votre solution et le contrôler.
Prérequis
Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.
Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « /
». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \
».
- Le dernier Kit de développement logiciel (SDK) .NET 5.0 pour votre plateforme.
- Git.
Clonez le référentiel SDK avec l’exemple de code
Si vous avez terminé Démarrage rapide : Connecter un exemple d’application pour appareil IoT Plug-and-Play s’exécutant sur Windows à IoT Hub (C#), vous avez déjà cloné le dépôt.
Clonez les exemples à partir du dépôt GitHub Azure IoT SDK pour C#. Ouvrez une invite de commandes dans un dossier de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub Microsoft Azure IoT SDK pour .NET :
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Générer le code d’appareil
Vous pouvez maintenant générer l’exemple d’appareil et l’exécuter. Exécutez les commandes suivantes pour générer l’échantillon :
cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build
Exécuter l’exemple d’appareil
Pour exécuter l’exemple, exécutez la commande suivante :
dotnet run
L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.
Exécuter l’exemple de solution
Dans Configurer votre environnement pour les guides de démarrage rapide et tutoriels IoT Plug-and-Play, vous avez créé deux variables d’environnement pour configurer l’exemple afin qu’il se connecte à votre hub IoT :
- IOTHUB_CONNECTION_STRING : la chaîne de connexion de hub IoT que vous avez notée précédemment.
- IOTHUB_DEVICE_ID :
"my-pnp-device"
.
Dans ce tutoriel, vous utilisez un exemple de solution IoT écrit en C# pour interagir avec l’exemple d’appareil que vous venez de configurer et d’exécuter.
Dans une autre fenêtre de terminal, accédez au dossier azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Thermostat .
Exécutez la commande suivante pour générer l’exemple de service :
dotnet build
Exécutez la commande suivante pour exécuter l’exemple de service :
dotnet run
Obtenir un jumeau d’appareil
L’extrait de code suivant montre comment l’application de service récupère le jumeau d’appareil :
// Get a Twin and retrieves model Id set by Device client
Twin twin = await s_registryManager.GetTwinAsync(s_deviceId);
s_logger.LogDebug($"Model Id of this Twin is: {twin.ModelId}");
Notes
Cet exemple utilise l’espace de noms Microsoft.Azure.Devices.Client à partir du client du service IoT Hub. Pour en savoir plus sur les API, y compris l’API Digital Twins, consultez le Guide du développeur sur les services.
Ce code génère la sortie suivante :
[09/21/2020 11:26:04]dbug: Thermostat.Program[0]
Model Id of this Twin is: dtmi:com:example:Thermostat;1
L’extrait de code suivant montre comment utiliser un correctif pour mettre à jour les propriétés par le biais du jumeau d’appareil :
// Update the twin
var twinPatch = new Twin();
twinPatch.Properties.Desired[PropertyName] = PropertyValue;
await s_registryManager.UpdateTwinAsync(s_deviceId, twinPatch, twin.ETag);
Ce code génère la sortie suivante à partir de l’appareil lorsque le service met à jour la propriété targetTemperature
:
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Property: Received - { "targetTemperature": 60°C }.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Property: Update - {"targetTemperature": 60°C } is InProgress.
...
[09/21/2020 11:26:17]dbug: Thermostat.ThermostatSample[0]
Property: Update - {"targetTemperature": 60°C } is Completed.
Appeler une commande
L’exemple de code suivant montre comment appeler une commande :
private static async Task InvokeCommandAsync()
{
var commandInvocation = new CloudToDeviceMethod(CommandName) { ResponseTimeout = TimeSpan.FromSeconds(30) };
// Set command payload
string componentCommandPayload = JsonConvert.SerializeObject(s_dateTime);
commandInvocation.SetPayloadJson(componentCommandPayload);
CloudToDeviceMethodResult result = await s_serviceClient.InvokeDeviceMethodAsync(s_deviceId, commandInvocation);
if (result == null)
{
throw new Exception($"Command {CommandName} invocation returned null");
}
s_logger.LogDebug($"Command {CommandName} invocation result status is: {result.Status}");
}
Ce code génère la sortie suivante à partir de l’appareil lorsque le service appelle la commande getMaxMinReport
:
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Command: Received - Generating max, min and avg temperature report since 21/09/2020 11:25:58.
[09/21/2020 11:26:05]dbug: Thermostat.ThermostatSample[0]
Command: MaxMinReport since 21/09/2020 11:25:58: maxTemp=32, minTemp=32, avgTemp=32, startTime=21/09/2020 11:25:59, endTime=21/09/2020 11:26:04
IoT Plug-and-Play simplifie l’IoT en vous permettant d’interagir avec les fonctionnalités d’un appareil sans avoir connaissance de l’implémentation de l’appareil sous-jacent. Ce tutoriel vous montre comment utiliser Java pour vous connecter à un appareil IoT Plug-and-Play connecté à votre solution et le contrôler.
Prérequis
Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.
Vous pouvez exécuter ce tutoriel sur Linux ou Windows. Dans ce tutoriel, les commandes de l’interpréteur de commandes suivent la convention Linux des séparateurs de chemin « /
». Si vous suivez ce guide sur Windows, veillez à remplacer les séparateurs par « \
».
Pour suivre ce tutoriel, installez le logiciel suivant dans votre environnement local :
Clonez le référentiel SDK avec l’exemple de code
Si vous avez terminé Tutoriel : Connecter un exemple d’application pour appareil IoT Plug-and-Play s’exécutant sur Windows à IoT Hub (Java), vous avez déjà cloné le référentiel.
Ouvrez une invite de commandes dans le répertoire de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub SDK Microsoft Azure IoT pour Java à cet emplacement :
git clone https://github.com/Azure/azure-iot-sdk-java.git
Créer et exécuter l’exemple d’appareil
Accédez au dossier racine de l’exemple de thermostat dans le référentiel du SDK Java cloné et générez-le :
cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package
Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :
- IOTHUB_DEVICE_SECURITY_TYPE avec la valeur
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
- IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur
global.azure-devices-provisioning.net
.
Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.
À partir du dossier /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , exécutez l’application :
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
L’appareil, désormais prêt à recevoir des commandes et des mises à jour de propriétés, a commencé à envoyer des données de télémétrie au hub. Laissez l’exemple s’exécuter pendant que vous effectuez les étapes suivantes.
Exécuter l’exemple de solution
Dans Configurer votre environnement pour les guides de démarrage rapide et tutoriels IoT Plug-and-Play, vous avez créé deux variables d’environnement pour configurer l’exemple afin qu’il se connecte à votre hub IoT :
- IOTHUB_CONNECTION_STRING : la chaîne de connexion de hub IoT que vous avez notée précédemment.
- IOTHUB_DEVICE_ID :
"my-pnp-device"
.
Dans ce tutoriel, vous utilisez un exemple de solution IoT écrit en Java pour interagir avec l’exemple d’appareil que vous venez de configurer.
Notes
Cet exemple utilise l’espace de noms com.microsoft.azure.sdk.iot.service à partir du client du service IoT Hub. Pour en savoir plus sur les API, y compris l’API Digital Twins, consultez le Guide du développeur sur les services.
Ouvrez une autre fenêtre de terminal à utiliser comme terminal service.
Dans le dépôt du kit SDK Java cloné, accédez au dossier service/iot-service-samples/pnp-service-sample/thermostat-service-sample.
Pour générer et exécuter l’exemple d’application de service, exécutez la commande suivante :
mvn clean package mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.service.Thermostat"
Obtenir un jumeau d’appareil
L’extrait de code suivant montre comment récupérer le jumeau d’appareil dans le service :
// Get the twin and retrieve model Id set by Device client.
DeviceTwinDevice twin = new DeviceTwinDevice(deviceId);
twinClient.getTwin(twin);
System.out.println("Model Id of this Twin is: " + twin.getModelId());
Mettre à jour un jumeau d’appareil
L’extrait de code suivant vous montre comment utiliser un correctif pour mettre à jour les propriétés par le biais du jumeau d’appareil :
String propertyName = "targetTemperature";
double propertyValue = 60.2;
twin.setDesiredProperties(Collections.singleton(new Pair(propertyName, propertyValue)));
twinClient.updateTwin(twin);
La sortie de l’appareil montre comment l’appareil répond à cette mise à jour de propriété.
Appeler une commande
L’extrait de code suivant montre comment appeler une commande sur l’appareil :
// The method to invoke for a device without components should be "methodName" as defined in the DTDL.
String methodToInvoke = "getMaxMinReport";
System.out.println("Invoking method: " + methodToInvoke);
Long responseTimeout = TimeUnit.SECONDS.toSeconds(200);
Long connectTimeout = TimeUnit.SECONDS.toSeconds(5);
// Invoke the command.
String commandInput = ZonedDateTime.now(ZoneOffset.UTC).minusMinutes(5).format(DateTimeFormatter.ISO_DATE_TIME);
MethodResult result = methodClient.invoke(deviceId, methodToInvoke, responseTimeout, connectTimeout, commandInput);
if(result == null)
{
throw new IOException("Method result is null");
}
System.out.println("Method result status is: " + result.getStatus());
La sortie de l’appareil montre comment l’appareil répond à cette commande.
IoT Plug-and-Play simplifie l’IoT en vous permettant d’interagir avec les fonctionnalités d’un appareil sans avoir connaissance de l’implémentation de l’appareil sous-jacent. Ce tutoriel vous montre comment utiliser Node.js pour vous connecter à un appareil IoT Plug-and-Play connecté à votre solution et le contrôler.
Prérequis
Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.
Pour suivre ce tutoriel, vous avez besoin de Node.js sur votre machine de développement. Vous pouvez télécharger la dernière version recommandée pour plusieurs plateformes à partir de nodejs.org.
Vous pouvez vérifier la version actuelle de Node.js sur votre machine de développement à l’aide de la commande suivante :
node --version
Clonez le référentiel SDK avec l’exemple de code
Clonez les exemples à partir du dépôt SDK Node. Ouvrez une fenêtre de terminal dans un dossier de votre choix. Exécutez la commande suivante pour cloner le dépôt GitHub SDK Microsoft Azure IoT pour Node.js :
git clone https://github.com/Azure/azure-iot-sdk-node
Exécuter l’exemple d’appareil
Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :
- IOTHUB_DEVICE_SECURITY_TYPE avec la valeur
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
- IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur
global.azure-devices-provisioning.net
.
Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.
Dans ce tutoriel, vous utilisez un exemple de thermostat écrit en Node.js en tant qu’appareil IoT Plug-and-Play. Pour exécuter l’exemple d’appareil :
Ouvrez une fenêtre de terminal, puis accédez au dossier local contenant le référentiel SDK Microsoft Azure IoT pour Node.js que vous avez cloné depuis GitHub.
Cette fenêtre de terminal est utilisée en tant que terminal device. Accédez au dossier de votre dépôt cloné, puis accédez au dossier /azure-iot-sdk-node/device/samples/javascript. Installez toutes les dépendances en exécutant la commande suivante :
npm install
Pour exécutez l’exemple d’appareil à thermostat, utilisez la commande suivante :
node pnp_simple_thermostat.js
Des messages s’affichent pour indiquer que l’appareil a envoyé des informations et qu’il s’est signalé comme étant en ligne. Ces messages indiquent que l’appareil a commencé à envoyer des données de télémétrie au hub et est maintenant prêt à recevoir des commandes et des mises à jour de propriétés. Ne fermez pas ce terminal. Vous en aurez besoin pour confirmer que l’exemple de service fonctionne également.
Exécuter l’exemple de solution
Dans Configurer votre environnement pour les guides de démarrage rapide et tutoriels IoT Plug-and-Play, vous avez créé deux variables d’environnement pour configurer l’exemple afin qu’il se connecte à votre hub IoT :
- IOTHUB_CONNECTION_STRING : la chaîne de connexion de hub IoT que vous avez notée précédemment.
- IOTHUB_DEVICE_ID :
"my-pnp-device"
.
Dans ce tutoriel, vous utilisez un exemple de solution Node.js IoT pour interagir avec l’exemple d’appareil que vous venez de configurer et d’exécuter.
Ouvrez une autre fenêtre de terminal à utiliser comme terminal service.
Dans le dépôt SDK Node cloné, accédez au dossier azure-iot-sdk-node/service/samples/javascript. Installez toutes les dépendances en exécutant la commande suivante :
npm install
Lire une propriété
Lorsque vous avez exécuté l’exemple de thermostat dans le terminal de l’appareil, vous avez vu les messages suivants indiquant son état en ligne :
properties have been reported for component sending telemetry message 0...
Accédez au terminal de service et utilisez la commande suivante pour exécuter l’exemple de lecture des informations de l’appareil :
node twin.js
Dans la sortie de terminal du service, notez la réponse du jumeau d’appareil. Vous voyez l’ID de modèle d’appareil et les propriétés associées signalées :
Model Id: dtmi:com:example:Thermostat;1 { "deviceId": "my-pnp-device", "etag": "AAAAAAAAAAE=", "deviceEtag": "Njc3MDMxNDcy", "status": "enabled", "statusUpdateTime": "0001-01-01T00:00:00Z", "connectionState": "Connected", "lastActivityTime": "0001-01-01T00:00:00Z", "cloudToDeviceMessageCount": 0, "authenticationType": "sas", "x509Thumbprint": { "primaryThumbprint": null, "secondaryThumbprint": null }, "modelId": "dtmi:com:example:Thermostat;1", "version": 4, "properties": { "desired": { "$metadata": { "$lastUpdated": "2020-10-05T11:35:19.4574755Z" }, "$version": 1 }, "reported": { "maxTempSinceLastReboot": 31.343640523762232, "serialNumber": "123abc", "$metadata": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z", "maxTempSinceLastReboot": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z" }, "serialNumber": { "$lastUpdated": "2020-10-05T11:35:23.7339042Z" } }, "$version": 3 } }, "capabilities": { "iotEdge": false }, "tags": {} }
L’extrait de code suivant montre le code dans twin.js qui extrait l’ID de modèle du jumeau d’appareil :
var registry = Registry.fromConnectionString(connectionString); registry.getTwin(deviceId, function(err, twin) { if (err) { console.error(err.message); } else { console.log('Model Id: ' + twin.modelId); //... } //... }
Dans ce scénario, il génère la sortie suivante : Model Id: dtmi:com:example:Thermostat;1
.
Notes
Ces exemples de services utilisent la classe Registry à partir du client du service IoT Hub. Pour en savoir plus sur les API, y compris l’API Digital Twins, consultez le Guide du développeur sur les services.
Mettre à jour une propriété accessible en écriture
Ouvrez le fichier twin.js dans un éditeur de code.
Examinez l’exemple de code ; il vous montre deux façons de mettre à jour le jumeau d’appareil. Pour utiliser la première méthode, modifiez la variable
twinPatch
comme suit :var twinPatch = { tags: { city: "Redmond" }, properties: { desired: { targetTemperature: 42 } } };
La propriété
targetTemperature
est définie en tant que propriété accessible en écriture dans le modèle d’appareil à thermostat.Dans le terminal du service, utilisez la commande suivante pour exécuter l’exemple de mise à jour de la propriété :
node twin.js
Dans votre terminal d’appareil, vous voyez que l’appareil a reçu la mise à jour :
The following properties will be updated for the default component: { targetTemperature: { value: 42, ac: 200, ad: 'Successfully executed patch for targetTemperature', av: 2 } } updated the property
Dans votre terminal de service, exécutez la commande suivante pour confirmer la mise à jour de la propriété :
node twin.js
Dans la sortie de terminal du service, dans la section des propriétés
reported
, vous voyez la température de la cible mise à jour signalée. L’appareil peut prendre un certain temps pour terminer la mise à jour. Répétez cette étape jusqu’à ce que l’appareil ait traité la mise à jour de propriété."reported": { //... "targetTemperature": { "value": 42, "ac": 200, "ad": "Successfully executed patch for targetTemperature", "av": 4 }, //... }
Appeler une commande
Ouvrez le fichier device_method.js et passez en revue le code.
Accédez au terminal de service. Utilisez la commande suivante pour exécuter exemple d’appel de la commande :
set IOTHUB_METHOD_NAME=getMaxMinReport set IOTHUB_METHOD_PAYLOAD=commandpayload node device_method.js
La sortie du terminal de service montre la confirmation suivante :
getMaxMinReport on my-pnp-device: { "status": 200, "payload": { "maxTemp": 23.460596940801928, "minTemp": 23.460596940801928, "avgTemp": 23.460596940801928, "endTime": "2020-10-05T12:48:08.562Z", "startTime": "2020-10-05T12:47:54.450Z" } }
Dans le terminal de l’appareil, vous voyez que la commande a été reconnue :
MaxMinReport commandpayload Response to method 'getMaxMinReport' sent successfully.
IoT Plug-and-Play simplifie l’IoT en vous permettant d’interagir avec le modèle d’un appareil sans avoir connaissance de l’implémentation de l’appareil sous-jacent. Ce tutoriel vous montre comment utiliser Python pour vous connecter à un appareil IoT Plug-and-Play connecté à votre solution et le contrôler.
Prérequis
Avant de continuer, assurez-vous d’avoir configuré votre environnement, y compris votre hub IoT.
Pour suivre ce tutoriel, vous avez besoin de l’installation de Python sur votre machine de développement. Consultez le Kit de développement logiciel (SDK) Python Azure IoT pour connaître les exigences actuelles en matière de version de Python. Vous pouvez vérifier votre version de Python à l’aide de la commande suivante :
python --version
Vous pouvez télécharger la dernière version recommandée pour plusieurs plateformes à partir de python.org.
Dans votre environnement Python local, installez le package azure-iot-devicecomme suit :
pip install azure-iot-device
Installez le package azure-iot-hub en exécutant la commande suivante :
pip install azure-iot-hub
Exécuter l’exemple d’appareil
Dans Configurer votre environnement, vous avez créé quatre variables d’environnement pour configurer l’exemple afin d’utiliser le service Device Provisioning Service (DPS) pour vous connecter à votre hub IoT :
- IOTHUB_DEVICE_SECURITY_TYPE avec la valeur
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE avec l’étendue ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID avec la valeur
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY avec la clé primaire d’inscription.
- IOTHUB_DEVICE_DPS_ENDPOINT avec la valeur
global.azure-devices-provisioning.net
.
Pour en savoir plus sur l’exemple de configuration, consultez l’exemple de fichier Lisez-moi.
Dans ce tutoriel, vous utilisez un exemple d’appareil à thermostat, écrit en Python, en tant qu’appareil IoT Plug-and-Play. Pour exécuter l’exemple d’appareil :
Ouvrez une fenêtre de terminal dans un dossier de votre choix. Exécutez la commande suivante pour cloner le référentiel GitHub Azure IoT Device Python SDK à cet emplacement :
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
Cette fenêtre de terminal est utilisée en tant que terminal device. Accédez au dossier de votre référentiel cloné, puis au dossier azure-iot-sdk-python/samples/pnp.
Pour exécutez l’exemple d’appareil à thermostat, utilisez la commande suivante :
python simple_thermostat.py
Des messages s’affichent pour indiquer que l’appareil a envoyé des informations et qu’il s’est signalé comme étant en ligne. Ces messages indiquent que l’appareil a commencé à envoyer des données de télémétrie au hub et est maintenant prêt à recevoir des commandes et des mises à jour de propriétés. Ne fermez pas ce terminal. Vous en aurez besoin pour confirmer que l’exemple de service fonctionne également.
Exécuter l’exemple de solution
Dans ce tutoriel, vous utilisez un exemple de solution IoT en Python pour interagir avec l’exemple d’appareil que vous venez de configurer.
Ouvrez une autre fenêtre de terminal à utiliser comme terminal service. Exécutez la commande suivante pour cloner le référentiel GitHub Azure IoT Hub Python SDK à cet emplacement :
git clone https://github.com/Azure/azure-iot-hub-python
Installer
Accédez au dossier /azure-iot-hub-python/samples du référentiel du kit SDK Python cloné.
Ouvrez le fichier registry_manager_pnp_sample.py et passez en revue le code. Cet exemple montre comment utiliser la classe IoTHubRegistryManager pour interagir avec votre appareil IoT Plug-and-Play.
Notes
Ces exemples de services utilisent la classe IoTHubRegistryManager à partir du client du service IoT Hub. Pour en savoir plus sur les API, y compris l’API Digital Twins, consultez le Guide du développeur sur les services.
Obtenir le jumeau d’appareil
Dans Configurer votre environnement pour les guides de démarrage rapide et tutoriels IoT Plug-and-Play, vous avez créé deux variables d’environnement pour configurer l’exemple afin qu’il se connecte à votre hub IoT :
- IOTHUB_CONNECTION_STRING : la chaîne de connexion de hub IoT que vous avez notée précédemment.
- IOTHUB_DEVICE_ID :
"my-pnp-device"
.
Utilisez la commande suivante dans le terminal service pour exécuter cet exemple :
set IOTHUB_METHOD_NAME="getMaxMinReport"
set IOTHUB_METHOD_PAYLOAD="hello world"
python registry_manager_pnp_sample.py
Notes
Si vous exécutez cet exemple sur Linux, utilisez export
à la place de set
.
La sortie affiche le jumeau d’appareil et son ID de modèle :
The Model ID for this device is:
dtmi:com:example:Thermostat;1
L’extrait de code suivant montre l’exemple de code de registry_manager_pnp_sample.py :
# Create IoTHubRegistryManager
iothub_registry_manager = IoTHubRegistryManager(iothub_connection_str)
# Get device twin
twin = iothub_registry_manager.get_twin(device_id)
print("The device twin is: ")
print("")
print(twin)
print("")
# Print the device's model ID
additional_props = twin.additional_properties
if "modelId" in additional_props:
print("The Model ID for this device is:")
print(additional_props["modelId"])
print("")
Mettre à jour un jumeau d’appareil
Cet exemple montre comment mettre à jour la propriété targetTemperature
accessible en écriture dans l’appareil :
# Update twin
twin_patch = Twin()
twin_patch.properties = TwinProperties(
desired={"targetTemperature": 42}
) # this is relevant for the thermostat device sample
updated_twin = iothub_registry_manager.update_twin(device_id, twin_patch, twin.etag)
print("The twin patch has been successfully applied")
print("")
Vous pouvez vérifier que la mise à jour est appliquée dans le terminal device qui affiche la sortie suivante :
the data in the desired properties patch was: {'targetTemperature': 42, '$version': 2}
Le terminal service confirme que le correctif a réussi :
The twin patch has been successfully applied
Appeler une commande
L’exemple appelle ensuite une commande :
Le terminal service affiche un message de confirmation de l’appareil :
The device method has been successfully invoked
Dans le terminal device, vous voyez que l’appareil reçoit la commande :
Command request received with payload
hello world
Will return the max, min and average temperature from the specified time hello to the current time
Done generating
{"tempReport": {"avgTemp": 34.2, "endTime": "09/07/2020 09:58:11", "maxTemp": 49, "minTemp": 10, "startTime": "09/07/2020 09:56:51"}}
Nettoyer les ressources
Si vous avez terminé les guides de démarrage rapide et les tutoriels, consultez Nettoyer les ressources.
Étapes suivantes
Dans ce didacticiel, vous avez appris à connecter un appareil IoT Plug-and-Play à une solution IoT. Pour découvrir plus d’informations sur les modèles d’appareils IoT Plug-and-Play, consultez :