Kurz: Interakce se zařízením IoT technologie Plug and Play připojeným k vašemu řešení

IoT technologie Plug and Play zjednodušuje IoT tím, že umožňuje pracovat s funkcemi zařízení bez znalosti základní implementace zařízení. V tomto kurzu se dozvíte, jak se pomocí jazyka C# připojit k zařízení IoT technologie Plug and Play připojenému k vašemu řešení a řídit ho.

Požadavky

Než budete pokračovat, ujistěte se, že jste nastavili prostředí, včetně ioT Hubu.

Tento kurz můžete spustit v Linuxu nebo Windows. Příkazy prostředí v tomto kurzu se řídí konvencí Linuxu pro oddělovače/ cest, pokud postupujete společně s Windows, nezapomeňte tyto oddělovače prohodit za "\".

Klonování úložiště sady SDK pomocí ukázkového kódu

Pokud jste dokončili kurz: Připojení ukázkovou aplikaci ioT technologie Plug and Play zařízení spuštěnou ve Windows do ioT Hubu (C#), už jste naklonovali úložiště.

Naklonujte ukázky z úložiště Azure IoT SDK pro GitHub v jazyce C#. Otevřete příkazový řádek ve složce podle vašeho výběru. Spuštěním následujícího příkazu naklonujte sadu Microsoft Azure IoT SDK pro úložiště .NET GitHub:

git clone https://github.com/Azure/azure-iot-sdk-csharp.git

Sestavení kódu zařízení

Teď můžete sestavit ukázku zařízení a spustit ji. Spuštěním následujících příkazů sestavte ukázku:

cd azure-iot-sdk-csharp/iothub/device/samples/solutions/PnpDeviceSamples/Thermostat
dotnet build

Spuštění ukázky zařízení

Ukázku spustíte spuštěním následujícího příkazu:

dotnet run

Zařízení je teď připravené přijímat příkazy a aktualizace vlastností a začal odesílat telemetrická data do centra. Při dokončení dalších kroků ponechte ukázku spuštěnou.

Spuštění ukázkového řešení

V části Nastavení prostředí pro službu IoT technologie Plug and Play rychlý start a kurzy, které jste vytvořili dvě proměnné prostředí pro konfiguraci ukázky pro připojení ke službě IoT Hub:

  • IOTHUB_CONNECTION_STRING: IoT Hub připojovací řetězec jste si předtím poznamenali.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

V tomto kurzu použijete ukázkové řešení IoT napsané v jazyce C# k interakci s ukázkovým zařízením, které jste právě nastavili a spustili.

  1. V jiném okně terminálu přejděte do složky azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Termostat .

  2. Spuštěním následujícího příkazu sestavte ukázku služby:

    dotnet build
    
  3. Spuštěním následujícího příkazu spusťte ukázku služby:

    dotnet run
    

Získání dvojčete zařízení

Následující fragment kódu ukazuje, jak aplikace služby načte dvojče zařízení:

// 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}");

Poznámka:

Tato ukázka používá obor názvů Microsoft.Azure.Devices.Client z klienta služby IoT Hub. Další informace o rozhraních API, včetně rozhraní API pro digitální dvojčata, najdete v příručce pro vývojáře služeb.

Tento kód vygeneruje následující výstup:

[09/21/2020 11:26:04]dbug: Thermostat.Program[0]
      Model Id of this Twin is: dtmi:com:example:Thermostat;1

Následující fragment kódu ukazuje, jak pomocí opravy aktualizovat vlastnosti prostřednictvím dvojčete zařízení:

// Update the twin
var twinPatch = new Twin();
twinPatch.Properties.Desired[PropertyName] = PropertyValue;
await s_registryManager.UpdateTwinAsync(s_deviceId, twinPatch, twin.ETag);

Tento kód vygeneruje ze zařízení následující výstup, když služba aktualizuje targetTemperature vlastnost:

[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.

Vyvolání příkazu

Následující fragment kódu ukazuje, jak volat příkaz:

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}");
}

Tento kód vygeneruje ze zařízení následující výstup, když služba volá getMaxMinReport příkaz:

[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 technologie Plug and Play zjednodušuje IoT tím, že umožňuje pracovat s funkcemi zařízení bez znalosti základní implementace zařízení. V tomto kurzu se dozvíte, jak se pomocí Javy připojit a řídit zařízení ioT technologie Plug and Play, které je připojené k vašemu řešení.

Požadavky

Než budete pokračovat, ujistěte se, že jste nastavili prostředí, včetně ioT Hubu.

Tento kurz můžete spustit v Linuxu nebo Windows. Příkazy prostředí v tomto kurzu se řídí konvencí Linuxu pro oddělovače/ cest, pokud postupujete společně s Windows, nezapomeňte tyto oddělovače prohodit za "\".

K dokončení tohoto kurzu nainstalujte do místního vývojového prostředí následující software:

Klonování úložiště sady SDK pomocí ukázkového kódu

Pokud jste dokončili kurz: Připojení ukázkovou aplikaci ioT technologie Plug and Play zařízení spuštěnou ve Windows do IoT Hubu (Java) jste už naklonovali úložiště.

Otevřete příkazový řádek v adresáři podle vašeho výběru. Spuštěním následujícího příkazu naklonujte sady SDK Microsoft Azure IoT pro úložiště GitHub v Javě do tohoto umístění:

git clone https://github.com/Azure/azure-iot-sdk-java.git

Sestavení a spuštění ukázkového zařízení

Přejděte do kořenové složky ukázky termostatu v naklonovaném úložišti sady Java SDK a sestavte ji:

cd azure-iot-sdk-java/device/iot-device-samples/pnp-device-sample/thermostat-device-sample
mvn clean package

V nastavení prostředí jste vytvořili čtyři proměnné prostředí pro konfiguraci ukázky tak, aby se k vašemu centru IoT připojila pomocí služby Device Provisioning Service (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE s hodnotouDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE s rozsahem ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID s hodnotou my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY s primárním klíčem registrace.
  • IOTHUB_DEVICE_DPS_ENDPOINT s hodnotou global.azure-devices-provisioning.net.

Další informace o konfiguraci ukázky najdete v ukázkovém souboru readme.

Ve složce /device/iot-device-samples/pnp-device-sample/termostat-device-sample spusťte aplikaci:

mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.device.Thermostat"

Zařízení je teď připravené přijímat příkazy a aktualizace vlastností a začal odesílat telemetrická data do centra. Při dokončení dalších kroků ponechte ukázku spuštěnou.

Spuštění ukázkového řešení

V části Nastavení prostředí pro službu IoT technologie Plug and Play rychlý start a kurzy, které jste vytvořili dvě proměnné prostředí pro konfiguraci ukázky pro připojení ke službě IoT Hub:

  • IOTHUB_CONNECTION_STRING: IoT Hub připojovací řetězec jste si předtím poznamenali.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

V tomto kurzu použijete ukázkové řešení IoT napsané v Javě k interakci s ukázkovým zařízením, které jste právě nastavili.

Poznámka:

Tato ukázka používá obor názvů com.microsoft.azure.sdk.iot.service z klienta služby IoT Hub. Další informace o rozhraních API, včetně rozhraní API pro digitální dvojčata, najdete v příručce pro vývojáře služeb.

  1. Otevřete další okno terminálu, které chcete použít jako terminál služby .

  2. V naklonovaném úložišti sady Java SDK přejděte do složky service/iot-service-samples/pnp-service-sample/termostat-service-sample .

  3. Pokud chcete sestavit a spustit ukázkovou aplikaci služby, spusťte následující příkazy:

    mvn clean package
    mvn exec:java -Dexec.mainClass="samples.com.microsoft.azure.sdk.iot.service.Thermostat"
    

Získání dvojčete zařízení

Následující fragment kódu ukazuje, jak ve službě načíst dvojče zařízení:

 // 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());

Aktualizace dvojčete zařízení

Následující fragment kódu ukazuje, jak pomocí opravy aktualizovat vlastnosti prostřednictvím dvojčete zařízení:

String propertyName = "targetTemperature";
double propertyValue = 60.2;
twin.setDesiredProperties(Collections.singleton(new Pair(propertyName, propertyValue)));
twinClient.updateTwin(twin);

Výstup zařízení ukazuje, jak zařízení reaguje na tuto aktualizaci vlastnosti.

Vyvolání příkazu

Následující fragment kódu ukazuje volání příkazu na zařízení:

// 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());

Výstup zařízení ukazuje, jak zařízení reaguje na tento příkaz.

IoT technologie Plug and Play zjednodušuje IoT tím, že umožňuje pracovat s funkcemi zařízení bez znalosti základní implementace zařízení. V tomto kurzu se dozvíte, jak se pomocí Node.js připojit a řídit zařízení technologie Plug and Play IoT, které je připojené k vašemu řešení.

Požadavky

Než budete pokračovat, ujistěte se, že jste nastavili prostředí, včetně ioT Hubu.

K dokončení tohoto kurzu potřebujete Node.js na vývojovém počítači. Nejnovější doporučenou verzi pro více platforem si můžete stáhnout z nodejs.org.

Aktuální verzi Node.js na počítači používaném pro vývoj můžete ověřit pomocí následujícího příkazu:

node --version

Klonování úložiště sady SDK pomocí ukázkového kódu

Naklonujte ukázky z úložiště Node SDK. Otevřete okno terminálu ve složce podle vašeho výběru. Spuštěním následujícího příkazu naklonujte sadu Microsoft Azure IoT SDK pro Node.js úložiště GitHub:

git clone https://github.com/Azure/azure-iot-sdk-node

Spuštění ukázkového zařízení

V nastavení prostředí jste vytvořili čtyři proměnné prostředí pro konfiguraci ukázky tak, aby se k vašemu centru IoT připojila pomocí služby Device Provisioning Service (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE s hodnotouDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE s rozsahem ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID s hodnotou my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY s primárním klíčem registrace.
  • IOTHUB_DEVICE_DPS_ENDPOINT s hodnotou global.azure-devices-provisioning.net.

Další informace o konfiguraci ukázky najdete v ukázkovém souboru readme.

V tomto kurzu použijete ukázkové termostatické zařízení napsané v Node.js jako zařízení technologie Plug and Play IoT. Spuštění ukázkového zařízení:

  1. Otevřete okno terminálu a přejděte do místní složky, která obsahuje sadu Microsoft Azure IoT SDK pro Node.js úložiště, které jste naklonovali z GitHubu.

  2. Toto okno terminálu se používá jako terminál zařízení. Přejděte do složky klonovaného úložiště a přejděte do složky /azure-iot-sdk-node/device/samples/javascript . Nainstalujte všechny závislosti spuštěním následujícího příkazu:

    npm install
    
  3. Spusťte ukázkové termostatické zařízení pomocí následujícího příkazu:

    node pnp_simple_thermostat.js
    
  4. Zobrazí se zprávy s oznámením, že zařízení odeslalo nějaké informace a oznámilo se online. Tyto zprávy značí, že zařízení začalo do centra odesílat telemetrická data a je teď připravené přijímat příkazy a aktualizace vlastností. Tento terminál nezavírejte, potřebujete ho k potvrzení, že ukázka služby funguje.

Spuštění ukázkového řešení

V části Nastavení prostředí pro službu IoT technologie Plug and Play rychlý start a kurzy, které jste vytvořili dvě proměnné prostředí pro konfiguraci ukázky pro připojení ke službě IoT Hub:

  • IOTHUB_CONNECTION_STRING: IoT Hub připojovací řetězec jste si předtím poznamenali.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

V tomto kurzu použijete ukázkové Node.js řešení IoT k interakci s ukázkovým zařízením, které jste právě nastavili a spustili.

  1. Otevřete další okno terminálu, které chcete použít jako terminál služby .

  2. V naklonovaném úložišti sady Node SDK přejděte do složky azure-iot-sdk-node/service/samples/javascript . Nainstalujte všechny závislosti spuštěním následujícího příkazu:

    npm install
    

Čtení vlastnosti

  1. Když jste spustili ukázkové termostatické zařízení v terminálu zařízení , viděli jste následující zprávy označující jeho stav online:

    properties have been reported for component
    sending telemetry message 0...
    
  2. Přejděte do terminálu služby a pomocí následujícího příkazu spusťte ukázku pro čtení informací o zařízení:

    node twin.js
    
  3. Ve výstupu terminálu služby si všimněte odpovědi dvojčete zařízení. Zobrazí se ID modelu zařízení a ohlášené přidružené vlastnosti:

    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": {}
    }
    
  4. Následující fragment kódu ukazuje kód v twin.js , který načte ID modelu dvojčete zařízení:

    var registry = Registry.fromConnectionString(connectionString);
    registry.getTwin(deviceId, function(err, twin) {
      if (err) {
        console.error(err.message);
      } else {
        console.log('Model Id: ' + twin.modelId);
        //...
      }
      //...
    }
    

V tomto scénáři se zobrazí výstup Model Id: dtmi:com:example:Thermostat;1.

Poznámka:

Tyto ukázky služeb používají třídu Registru z klienta služby IoT Hub. Další informace o rozhraních API, včetně rozhraní API pro digitální dvojčata, najdete v příručce pro vývojáře služeb.

Aktualizace zapisovatelné vlastnosti

  1. Otevřete soubor twin.js v editoru kódu.

  2. Projděte si ukázkový kód, který ukazuje dva způsoby aktualizace dvojčete zařízení. Pokud chcete použít první způsob, upravte twinPatch proměnnou následujícím způsobem:

    var twinPatch = {
      tags: {
        city: "Redmond"
      },
      properties: {
        desired: {
          targetTemperature: 42
        }
      }
    };
    

    Vlastnost targetTemperature je definována jako zapisovatelná vlastnost v modelu zařízení Termostat.

  3. V terminálu služby spusťte ukázku pro aktualizaci vlastnosti pomocí následujícího příkazu:

    node twin.js
    
  4. V terminálu zařízení uvidíte, že zařízení obdrželo aktualizaci:

    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
    
  5. V terminálu služby spusťte následující příkaz, abyste potvrdili, že je vlastnost aktualizována:

    node twin.js
    
  6. Ve výstupu terminálu služby se v reported části vlastnosti zobrazí aktualizovaná cílová teplota. Dokončení aktualizace může chvíli trvat. Tento krok opakujte, dokud zařízení nezpracovalo aktualizaci vlastnosti:

    "reported": {
      //...
      "targetTemperature": {
        "value": 42,
        "ac": 200,
        "ad": "Successfully executed patch for targetTemperature",
        "av": 4
      },
      //...
    }
    

Vyvolání příkazu

  1. Otevřete soubor device_method.js a zkontrolujte kód.

  2. Přejděte do terminálu služby . Pomocí následujícího příkazu spusťte ukázku pro vyvolání příkazu:

    set IOTHUB_METHOD_NAME=getMaxMinReport
    set IOTHUB_METHOD_PAYLOAD=commandpayload
    node device_method.js
    
  3. Výstup v terminálu služby zobrazí následující potvrzení:

    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"
      }
    }
    
  4. V terminálu zařízení se zobrazí potvrzení příkazu:

    MaxMinReport commandpayload
    Response to method 'getMaxMinReport' sent successfully.
    

IoT technologie Plug and Play zjednodušuje IoT tím, že umožňuje pracovat s modelem zařízení bez znalosti základní implementace zařízení. V tomto kurzu se dozvíte, jak se pomocí Pythonu připojit a řídit zařízení ioT technologie Plug and Play, které je připojené k vašemu řešení.

Požadavky

Než budete pokračovat, ujistěte se, že jste nastavili prostředí, včetně ioT Hubu.

K dokončení tohoto kurzu potřebujete Python nainstalovaný na vývojovém počítači. Zkontrolujte aktuální požadavky na verzi Pythonu v sadě Azure IoT Python SDK. Verzi Pythonu můžete zkontrolovat pomocí následujícího příkazu:

python --version

Nejnovější doporučenou verzi pro více platforem si můžete stáhnout z python.org.

V místním prostředí Pythonu nainstalujte balíček azure-iot-device následujícím způsobem:

pip install azure-iot-device

Nainstalujte balíček azure-iot-hub spuštěním následujícího příkazu:

pip install azure-iot-hub

Spuštění ukázkového zařízení

V nastavení prostředí jste vytvořili čtyři proměnné prostředí pro konfiguraci ukázky tak, aby se k vašemu centru IoT připojila pomocí služby Device Provisioning Service (DPS):

  • IOTHUB_DEVICE_SECURITY_TYPE s hodnotouDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE s rozsahem ID DPS.
  • IOTHUB_DEVICE_DPS_DEVICE_ID s hodnotou my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY s primárním klíčem registrace.
  • IOTHUB_DEVICE_DPS_ENDPOINT s hodnotou global.azure-devices-provisioning.net.

Další informace o konfiguraci ukázky najdete v ukázkovém souboru readme.

V tomto kurzu použijete ukázkové termostatické zařízení napsané v Pythonu jako zařízení technologie Plug and Play IoT. Spuštění ukázkového zařízení:

  1. Otevřete okno terminálu ve složce podle vašeho výběru. Spuštěním následujícího příkazu naklonujte úložiště GitHub SDK pro zařízení Azure IoT Do tohoto umístění:

    git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
    
  2. Toto okno terminálu se používá jako terminál zařízení. Přejděte do složky klonovaného úložiště a přejděte do složky azure-iot-sdk-python/samples/pnp .

  3. Spusťte ukázkové termostatické zařízení pomocí následujícího příkazu:

    python simple_thermostat.py
    
  4. Zobrazí se zprávy s oznámením, že zařízení odeslalo nějaké informace a oznámilo se online. Tyto zprávy značí, že zařízení začalo do centra odesílat telemetrická data a je teď připravené přijímat příkazy a aktualizace vlastností. Tento terminál nezavírejte, potřebujete ho k potvrzení, že ukázka služby funguje.

Spuštění ukázkového řešení

V tomto kurzu použijete ukázkové řešení IoT v Pythonu k interakci s ukázkovým zařízením, které jste právě nastavili.

  1. Otevřete další okno terminálu, které chcete použít jako terminál služby . Spuštěním následujícího příkazu naklonujte úložiště GitHub SDK služby Azure IoT Hub v Pythonu do tohoto umístění:

    git clone https://github.com/Azure/azure-iot-hub-python
    
  2. Instalace nástroje

  3. Přejděte do složky /azure-iot-hub-python/samples naklonovaného úložiště sady Python SDK.

  4. Otevřete soubor registry_manager_pnp_sample.py a zkontrolujte kód. Tato ukázka ukazuje, jak používat třídu IoTHubRegistryManager k interakci s vaším zařízením technologie Plug and Play IoT.

Poznámka:

Tyto ukázky služeb používají třídu IoTHubRegistryManager z klienta služby IoT Hub. Další informace o rozhraních API, včetně rozhraní API pro digitální dvojčata, najdete v příručce pro vývojáře služeb.

Získání dvojčete zařízení

V části Nastavení prostředí pro službu IoT technologie Plug and Play rychlý start a kurzy, které jste vytvořili dvě proměnné prostředí pro konfiguraci ukázky pro připojení ke službě IoT Hub:

  • IOTHUB_CONNECTION_STRING: IoT Hub připojovací řetězec jste si předtím poznamenali.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Pomocí následujícího příkazu v terminálu služby spusťte tuto ukázku:

set IOTHUB_METHOD_NAME="getMaxMinReport"
set IOTHUB_METHOD_PAYLOAD="hello world"
python registry_manager_pnp_sample.py

Poznámka:

Pokud používáte tuto ukázku v Linuxuset, použijte export místo .

Výstup zobrazuje dvojče zařízení a vytiskne jeho ID modelu:

The Model ID for this device is:
dtmi:com:example:Thermostat;1

Následující fragment kódu ukazuje ukázkový kód z 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("")

Aktualizace dvojčete zařízení

Tato ukázka ukazuje, jak aktualizovat targetTemperature zapisovatelnou vlastnost v zařízení:

    # 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("")

Můžete ověřit, že se aktualizace nainstalovala v terminálu zařízení , která zobrazuje následující výstup:

the data in the desired properties patch was: {'targetTemperature': 42, '$version': 2}

Terminál služby potvrdí, že oprava proběhla úspěšně:

The twin patch has been successfully applied

Vyvolání příkazu

Ukázka pak vyvolá příkaz:

V terminálu služby se zobrazí potvrzovací zpráva ze zařízení:

The device method has been successfully invoked

V terminálu zařízení se zobrazí, že zařízení obdrží příkaz:

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"}}

Vyčištění prostředků

Pokud jste dokončili rychlé starty a kurzy, přečtěte si téma Vyčištění prostředků.

Další kroky

V tomto kurzu jste zjistili, jak připojit zařízení IoT technologie Plug and Play k řešení IoT. Další informace o modelech zařízení ioT technologie Plug and Play najdete tady: