Tutorial: Berinteraksi dengan perangkat IoT Plug and Play yang tersambung ke solusi Anda
IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan C# untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.
Prasyarat
Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.
Anda dapat menjalankan tutorial ini di Linux atau Windows. Perintah shell dalam tutorial ini mengikuti konvensi Linux untuk pemisah jalur '/
', jika Anda mengikuti di Windows pastikan untuk menukar pemisah ini dengan '\
'.
Mengkloning repositori SDK dengan kode sampel
Jika Anda menyelesaikan Tutorial: Menyambungkan sampel aplikasi perangkat IoT Plug and Play yang berjalan di Windows ke Azure IoT Hub (C#), Anda telah mengkloning repositori.
Kloning sampel dari repositori Azure IoT SDK for C# GitHub. Buka perintah di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Microsoft Azure IoT SDK for .NET :
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Membangun kode perangkat
Anda sekarang dapat membuat sampel perangkat dan menjalankannya. Jalankan perintah berikut untuk membuat sampel:
cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build
Menjalankan sampel perangkat
Untuk menjalankan sampel, jalankan perintah berikut:
dotnet run
Sekarang perangkat siap untuk menerima perintah dan pembaruan properti, dan telah mulai mengirim data telemetri ke hub. Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.
Menjalankan solusi sampel
Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:
- IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Dalam tutorial ini, Anda menggunakan contoh solusi IoT yang ditulis dalam C# untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan dan jalankan.
Di jendela terminal lain, navigasikan ke folder azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Thermostat .
Jalankan perintah berikut untuk membuat sampel layanan:
dotnet build
Jalankan perintah berikut untuk menjalankan sampel layanan:
dotnet run
Dapatkan kembaran perangkat
Cuplikan kode berikut menunjukkan bagaimana aplikasi layanan mengambil perangkat kembar:
// 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}");
Catatan
Sampel ini menggunakan namespace layanan Microsoft.Azure.Devices.Client dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.
Kode ini menghasilkan output berikut:
[09/21/2020 11:26:04]dbug: Thermostat.Program[0]
Model Id of this Twin is: dtmi:com:example:Thermostat;1
Cuplikan kode berikut menunjukkan cara menggunakan patch untuk memperbarui properti melalui perangkat kembar:
// Update the twin
var twinPatch = new Twin();
twinPatch.Properties.Desired[PropertyName] = PropertyValue;
await s_registryManager.UpdateTwinAsync(s_deviceId, twinPatch, twin.ETag);
Kode ini menghasilkan output berikut dari perangkat saat layanan memperbarui properti 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.
Memanggil perintah
Cuplikan kode berikut menunjukkan cara memanggil perintah:
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}");
}
Kode ini menghasilkan output berikut dari perangkat saat layanan memanggil perintah 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 menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan Java untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.
Prasyarat
Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.
Anda dapat menjalankan tutorial ini di Linux atau Windows. Perintah shell dalam tutorial ini mengikuti konvensi Linux untuk pemisah jalur '/
', jika Anda mengikuti di Windows pastikan untuk menukar pemisah ini dengan '\
'.
Untuk menyelesaikan tutorial ini, instal perangkat lunak berikut di lingkungan pengembangan lokal Anda:
Mengkloning repositori SDK dengan kode sampel
Jika Anda menyelesaikan Tutorial: Menyambungkan sampel aplikasi perangkat IoT Plug and Play yang berjalan di Windows ke IoT Hub (Java), Anda telah mengkloning repositori.
Buka perintah di direktori pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub SDK Microsoft Azure IoT untuk Java ke lokasi ini:
git clone https://github.com/Azure/azure-iot-sdk-java.git
Membuat dan menjalankan perangkat sampel
Navigasikan ke folder akar sampel termostat di repositori Java SDK kloning dan buat:
cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package
Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:
- IOTHUB_DEVICE_SECURITY_TYPE dengan nilai
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
- IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai
global.azure-devices-provisioning.net
.
Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.
Dari folder /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , jalankan aplikasi:
mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"
Sekarang perangkat siap untuk menerima perintah dan pembaruan properti, dan telah mulai mengirim data telemetri ke hub. Tetap jalankan sampel saat Anda menyelesaikan langkah-langkah berikutnya.
Menjalankan solusi sampel
Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:
- IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Dalam tutorial ini, Anda menggunakan contoh solusi IoT yang ditulis di Java untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan.
Catatan
Sampel ini menggunakan namespace layanan com.microsoft.azure.sdk.iot.service dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.
Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda.
Di repositori Java SDK yang dikloning, navigasikan ke folder service/iot-service-samples/pnp-service-sample/thermostat-service-sample .
Untuk membangun dan menjalankan aplikasi layanan sampel, jalankan perintah berikut:
mvn clean package mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.service.Thermostat"
Dapatkan kembaran perangkat
Cuplikan kode berikut menunjukkan cara mengambil perangkat kembar dalam layanan:
// 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());
Memperbarui perangkat kembar
Cuplikan kode berikut menunjukkan cara menggunakan patch untuk memperbarui properti melalui perangkat kembar:
String propertyName = "targetTemperature";
double propertyValue = 60.2;
twin.setDesiredProperties(Collections.singleton(new Pair(propertyName, propertyValue)));
twinClient.updateTwin(twin);
Output perangkat memperlihatkan bagaimana perangkat merespons pembaruan properti ini.
Memanggil perintah
Cuplikan kode berikut menunjukkan bagaimana memanggil perintah pada perangkat:
// 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());
Output perangkat memperlihatkan bagaimana perangkat merespons perintah ini.
IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan kemampuan perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan cara menggunakan Node.js untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.
Prasyarat
Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.
Untuk menyelesaikan tutorial ini, Anda memerlukan Node.js di komputer pengembangan Anda. Anda dapat mengunduh versi terbaru yang direkomendasikan untuk beberapa platform dari nodejs.org.
Anda dapat memverifikasi versi Node.js saat ini di komputer pengembangan Anda menggunakan perintah berikut:
node --version
Mengkloning repositori SDK dengan kode sampel
Kloning sampel dari repositori Node SDK. Buka jendela terminal di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Microsoft Azure IoT SDK untuk Node.js:
git clone https://github.com/Azure/azure-iot-sdk-node
Menjalankan perangkat sampel
Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:
- IOTHUB_DEVICE_SECURITY_TYPE dengan nilai
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
- IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai
global.azure-devices-provisioning.net
.
Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.
Dalam tutorial ini, Anda menggunakan contoh perangkat termostat yang ditulis dalam Node.js sebagai perangkat IoT Plug and Play. Untuk menjalankan perangkat sampel:
Buka jendela terminal dan navigasikan ke folder lokal yang berisi Microsoft Azure IoT SDK untuk repositori Node.js yang Anda kloning dari GitHub.
Jendela terminal ini digunakan sebagai terminal perangkat Anda. Buka folder repositori kloning Anda, dan navigasikan ke folder /azure-iot-sdk-node/device/samples/javascript . Pasang semua dependensi dengan menjalankan perintah berikut:
npm install
Jalankan sampel perangkat termostat dengan perintah berikut:
node pnp_simple_thermostat.js
Anda melihat pesan yang mengatakan bahwa perangkat telah mengirim beberapa informasi dan melaporkan dirinya sendiri secara online. Pesan-pesan ini menunjukkan bahwa perangkat telah mulai mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti. Jangan tutup terminal ini, Anda memerlukannya untuk mengonfirmasi bahwa sampel layanan berfungsi.
Menjalankan solusi sampel
Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:
- IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Dalam tutorial ini, Anda menggunakan sampel Node.js solusi IoT untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan dan jalankan.
Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda.
Di repositori Node SDK yang dikloning, navigasikan ke folder azure-iot-sdk-node/service/samples/javascript . Pasang semua dependensi dengan menjalankan perintah berikut:
npm install
Membaca properti
Saat Anda menjalankan perangkat termostat sampel di terminal perangkat, Anda melihat pesan berikut yang menunjukkan status online-nya:
properties have been reported for component sending telemetry message 0...
Buka terminal layanan dan gunakan perintah berikut untuk menjalankan sampel untuk membaca informasi perangkat:
node twin.js
Di output terminal layanan, perhatikan respons dari perangkat kembar. Anda melihat ID model perangkat dan properti terkait yang dilaporkan:
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": {} }
Cuplikan berikut menunjukkan kode dalam twin.js yang mengambil ID model kembar perangkat:
var registry = Registry.fromConnectionString(connectionString); registry.getTwin(deviceId, function(err, twin) { if (err) { console.error(err.message); } else { console.log('Model Id: ' + twin.modelId); //... } //... }
Dalam skenario ini, ini menghasilkan Model Id: dtmi:com:example:Thermostat;1
.
Catatan
Sampel layanan ini menggunakan kelas Registri dari klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.
Memperbarui properti bisa-tulis
Buka file twin.js di editor kode.
Tinjau kode sampel, ini menunjukkan dua cara untuk memperbarui perangkat kembar. Untuk menggunakan cara pertama, ubah variabel
twinPatch
sebagai berikut:var twinPatch = { tags: { city: "Redmond" }, properties: { desired: { targetTemperature: 42 } } };
Properti
targetTemperature
didefinisikan sebagai properti bisa-tulis dalam model perangkat Termostat.Di terminal service, gunakan perintah berikut untuk menjalankan sampel pembaruan properti:
node twin.js
Di terminal perangkat Anda, Anda melihat perangkat telah menerima pembaruan:
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
Di terminal layanan Anda, jalankan perintah berikut untuk mengonfirmasi bahwa properti telah diperbarui:
node twin.js
Di output terminal layanan, di bagian
reported
properti, Anda melihat suhu target yang diperbarui dilaporkan. Mungkin perlu beberapa saat agar perangkat menyelesaikan pembaruan. Ulangi langkah ini hingga perangkat telah memproses pembaruan properti:"reported": { //... "targetTemperature": { "value": 42, "ac": 200, "ad": "Successfully executed patch for targetTemperature", "av": 4 }, //... }
Memanggil perintah
Buka file device_method.js dan tinjau kode.
Buka terminal layanan. Gunakan perintah berikut untuk menjalankan sampel untuk menjalankan perintah:
set IOTHUB_METHOD_NAME=getMaxMinReport set IOTHUB_METHOD_PAYLOAD=commandpayload node device_method.js
Output di terminal layanan menunjukkan konfirmasi berikut:
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" } }
Di terminal perangkat, Anda melihat perintah diakui:
MaxMinReport commandpayload Response to method 'getMaxMinReport' sent successfully.
IoT Plug and Play menyederhanakan IoT dengan memungkinkan Anda berinteraksi dengan model perangkat tanpa mengetahui implementasi perangkat yang mendasarinya. Tutorial ini menunjukkan kepada Anda cara menggunakan Python untuk menyambungkan dan mengontrol perangkat IoT Plug and Play yang terhubung ke solusi Anda.
Prasyarat
Sebelum melanjutkan, pastikan Anda telah menyiapkan lingkungan Anda, termasuk hub IoT Anda.
Untuk menyelesaikan tutorial ini, Anda memerlukan Python yang diinstal pada komputer pengembangan Anda. Periksa Azure IoT Python SDK untuk persyaratan versi Python saat ini. Anda dapat memeriksa versi Python Anda dengan perintah berikut:
python --version
Anda dapat mengunduh versi terbaru yang disarankan untuk berbagai platform dari python.org.
Di lingkungan Python lokal Anda, instal paket azure-iot-device sebagai berikut:
pip install azure-iot-device
Instal paket azure-iot-hub dengan menjalankan perintah berikut ini:
pip install azure-iot-hub
Menjalankan perangkat sampel
Di Menyiapkan lingkungan Anda, Anda membuat empat variabel lingkungan guna mengonfigurasi sampel untuk menggunakan Device Provisioning Service (DPS) agar menyambungkan ke IoT Hub:
- IOTHUB_DEVICE_SECURITY_TYPE dengan nilai
DPS
- IOTHUB_DEVICE_DPS_ID_SCOPE dengan cakupan ID DPS.
- IOTHUB_DEVICE_DPS_DEVICE_ID dengan nilai
my-pnp-device
. - IOTHUB_DEVICE_DPS_DEVICE_KEY dengan kunci utama pendaftaran.
- IOTHUB_DEVICE_DPS_ENDPOINT dengan nilai
global.azure-devices-provisioning.net
.
Untuk mempelajari selengkapnya tentang konfigurasi sampel, lihat sampel readme.
Dalam tutorial ini, Anda menggunakan perangkat termostat sampel, yang ditulis dalam Python, sebagai perangkat IoT Plug and Play. Untuk menjalankan perangkat sampel:
Buka jendela terminal di folder pilihan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Azure IoT Device Python SDK ke lokasi ini:
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
Jendela terminal ini digunakan sebagai terminal perangkat Anda. Buka folder repositori kloning Anda, dan navigasikan ke folder azure-iot-sdk-python/samples/pnp .
Jalankan sampel perangkat termostat dengan perintah berikut:
python simple_thermostat.py
Anda melihat pesan yang mengatakan bahwa perangkat telah mengirim beberapa informasi dan melaporkan dirinya sendiri secara online. Pesan-pesan ini menunjukkan bahwa perangkat telah mulai mengirim data telemetri ke hub, dan sekarang siap untuk menerima perintah dan pembaruan properti. Jangan tutup terminal ini, Anda memerlukannya untuk mengonfirmasi bahwa sampel layanan berfungsi.
Menjalankan solusi sampel
Dalam tutorial ini, Anda menggunakan contoh solusi IoT di Python untuk berinteraksi dengan perangkat sampel yang baru saja Anda siapkan.
Buka jendela terminal lain untuk digunakan sebagai terminal layanan Anda. Jalankan perintah berikut untuk mengkloning repositori GitHub Azure IoT Hub Python SDK ke lokasi ini:
git clone https://github.com/Azure/azure-iot-hub-python
Instal
Navigasikan ke folder /azure-iot-hub-python/samples dari repositori Python SDK kloning.
Buka file registry_manager_pnp_sample.py dan tinjau kodenya. Sampel ini menunjukkan cara menggunakan kelas IoTHubRegistryManager untuk berinteraksi dengan perangkat IoT Plug and Play Anda.
Catatan
Sampel layanan ini menggunakan kelas IoTHubRegistryManager dari Klien layanan IoT Hub. Untuk mempelajari selengkapnya tentang API, termasuk API kembar digital, lihat panduan pengembang layanan.
Dapatkan perangkat kembar
Di Siapkan lingkungan Anda untuk mulai cepat dan tutorial IoT Plug and Play, Anda membuat dua variabel lingkungan untuk mengonfigurasi sampel untuk terhubung ke hub IoT Anda:
- IOTHUB_CONNECTION_STRING: string koneksi IoT Hub yang Anda catat sebelumnya.
- IOTHUB_DEVICE_ID:
"my-pnp-device"
.
Gunakan perintah berikut di terminal layanan untuk menjalankan sampel ini:
set IOTHUB_METHOD_NAME="getMaxMinReport"
set IOTHUB_METHOD_PAYLOAD="hello world"
python registry_manager_pnp_sample.py
Catatan
Jika Anda menjalankan sampel ini di Linux, gunakan export
untuk menggantikan set
.
Output menunjukkan perangkat kembar dan mencetak ID modelnya:
The Model ID for this device is:
dtmi:com:example:Thermostat;1
Cuplikan berikut menunjukkan kode sampel dari 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("")
Memperbarui perangkat kembar
Sampel ini memperlihatkan kepada Anda cara memperbarui targetTemperature
properti bisa-tulis di perangkat:
# 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("")
Anda dapat memverifikasi bahwa pembaruan diterapkan di terminal perangkat yang menunjukkan output berikut:
the data in the desired properties patch was: {'targetTemperature': 42, '$version': 2}
Terminal layanan mengonfirmasi bahwa patch berhasil:
The twin patch has been successfully applied
Memanggil perintah
Sampel kemudian memanggil perintah:
Terminal layanan memperlihatkan pesan konfirmasi dari perangkat:
The device method has been successfully invoked
Di terminal perangkat, Anda melihat perangkat menerima perintah:
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"}}
Membersihkan sumber daya
Jika Anda sudah selesai dengan mulai cepat dan tutorial, lihat Membersihkan sumber daya.
Langkah berikutnya
Dalam tutorial ini, Anda telah mempelajari cara menyambungkan perangkat IoT Plug and Play ke solusi IoT. Untuk mempelajari selengkapnya model perangkat IoT Plug and Play, lihat: