Tutorial: Interaja com um dispositivo IoT Plug and Play conectado à sua solução

O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar o C# para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

Você pode executar este tutorial no Linux ou Windows. Os comandos shell neste tutorial seguem a convenção do Linux para separadores de caminho '/', se você estiver acompanhando no Windows, certifique-se de trocar esses separadores por '\'.

Clone o repositório do SDK com o código de exemplo

Se você concluiu o Tutorial: Conectar um aplicativo de dispositivo IoT Plug and Play de exemplo em execução no Windows ao Hub IoT (C#), já clonou o repositório.

Clone os exemplos do repositório GitHub do SDK do Azure IoT para C#. Abra um prompt de comando em uma pasta de sua escolha. Execute o seguinte comando para clonar o Microsoft Azure IoT SDK para repositório .NET GitHub:

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

Crie o código do dispositivo

Agora você pode criar o exemplo de dispositivo e executá-lo. Execute os seguintes comandos para criar o exemplo:

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

Executar o exemplo de dispositivo

Para executar o exemplo, execute o seguinte comando:

dotnet run

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Executar a solução de exemplo

Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:

  • IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Neste tutorial, você usa uma solução de IoT de exemplo escrita em C# para interagir com o dispositivo de exemplo que acabou de configurar e executar.

  1. Em outra janela do terminal, navegue até a pasta azure-iot-sdk-csharp/iothub/service/samples/solutions/PnpServiceSamples/Thermostat .

  2. Execute o seguinte comando para criar o exemplo de serviço:

    dotnet build
    
  3. Execute o seguinte comando para executar o exemplo de serviço:

    dotnet run
    

Obter dispositivo twin

O trecho de código a seguir mostra como o aplicativo de serviço recupera o gêmeo do dispositivo:

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

Nota

Este exemplo usa o namespace Microsoft.Azure.Devices.Client do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.

Este código gera a seguinte saída:

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

O trecho de código a seguir mostra como usar um patch para atualizar propriedades por meio do gêmeo de dispositivo:

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

Esse código gera a seguinte saída do dispositivo quando o serviço atualiza a targetTemperature propriedade:

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

Invocar um comando

O trecho de código a seguir mostra como chamar um comando:

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

Esse código gera a seguinte saída do dispositivo quando o serviço chama o getMaxMinReport comando:

[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

O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar o Java para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

Você pode executar este tutorial no Linux ou Windows. Os comandos shell neste tutorial seguem a convenção do Linux para separadores de caminho '/', se você estiver acompanhando no Windows, certifique-se de trocar esses separadores por '\'.

Para concluir este tutorial, instale o seguinte software em seu ambiente de desenvolvimento local:

Clone o repositório do SDK com o código de exemplo

Se você concluiu o Tutorial: Conectar um aplicativo de dispositivo IoT Plug and Play de exemplo em execução no Windows ao Hub IoT (Java), já clonou o repositório.

Abra um prompt de comando no diretório de sua escolha. Execute o seguinte comando para clonar os SDKs IoT do Microsoft Azure para o repositório Java GitHub neste local:

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

Criar e executar o dispositivo de exemplo

Navegue até a pasta raiz do exemplo de termostato no repositório clonado do Java SDK e construa-o:

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

Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valorDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

Na pasta /device/iot-device-samples/pnp-device-sample/thermostat-device-sample , execute o aplicativo:

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

O dispositivo agora está pronto para receber comandos e atualizações de propriedade e começou a enviar dados de telemetria para o hub. Mantenha o exemplo em execução enquanto conclui as próximas etapas.

Executar a solução de exemplo

Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:

  • IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Neste tutorial, você usa uma solução de IoT de exemplo escrita em Java para interagir com o dispositivo de exemplo que acabou de configurar.

Nota

Este exemplo usa o namespace com.microsoft.azure.sdk.iot.service do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.

  1. Abra outra janela do terminal para usar como seu terminal de serviço .

  2. No repositório clonado do Java SDK, navegue até a pasta service/iot-service-samples/pnp-service-sample/thermostat-service-sample .

  3. Para criar e executar o aplicativo de serviço de exemplo, execute os seguintes comandos:

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

Obter dispositivo twin

O trecho de código a seguir mostra como recuperar o gêmeo de dispositivo no serviço:

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

Atualizar um dispositivo twin

O trecho de código a seguir mostra como usar um patch para atualizar propriedades por meio do gêmeo de dispositivo:

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

A saída do dispositivo mostra como o dispositivo responde a essa atualização de propriedade.

Invocar um comando

O trecho de código a seguir mostra que você chama um comando no dispositivo:

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

A saída do dispositivo mostra como o dispositivo responde a esse comando.

O IoT Plug and Play simplifica a IoT permitindo que você interaja com os recursos de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar Node.js para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

Para concluir este tutorial, você precisa Node.js em sua máquina de desenvolvimento. Você pode baixar a versão recomendada mais recente para várias plataformas do nodejs.org.

Pode verificar qual a versão atual do Node.js no seu computador de desenvolvimento através do seguinte comando:

node --version

Clone o repositório do SDK com o código de exemplo

Clone os exemplos de um repositório do SDK do Nó. Abra uma janela do terminal em uma pasta de sua escolha. Execute o seguinte comando para clonar o SDK do Microsoft Azure IoT para Node.js repositório GitHub:

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

Execute o dispositivo de exemplo

Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valorDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

Neste tutorial, você usa um dispositivo de termostato de exemplo escrito em Node.js como o dispositivo IoT Plug and Play. Para executar o dispositivo de exemplo:

  1. Abra uma janela do terminal e navegue até a pasta local que contém o SDK do Microsoft Azure IoT para Node.js repositório clonado do GitHub.

  2. Esta janela do terminal é usada como o terminal do seu dispositivo . Vá para a pasta do repositório clonado e navegue até a pasta /azure-iot-sdk-node/device/samples/javascript . Instale todas as dependências executando o seguinte comando:

    npm install
    
  3. Execute o dispositivo de termostato de amostra com o seguinte comando:

    node pnp_simple_thermostat.js
    
  4. Você vê mensagens dizendo que o dispositivo enviou algumas informações e se denunciou online. Essas mensagens indicam que o dispositivo começou a enviar dados de telemetria para o hub e agora está pronto para receber comandos e atualizações de propriedade. Não feche este terminal, você precisa dele para confirmar que a amostra de serviço está funcionando.

Executar a solução de exemplo

Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:

  • IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Neste tutorial, você usa um exemplo Node.js solução IoT para interagir com o dispositivo de exemplo que acabou de configurar e executar.

  1. Abra outra janela do terminal para usar como seu terminal de serviço .

  2. No repositório clonado do SDK do Nó, navegue até a pasta azure-iot-sdk-node/service/samples/javascript . Instale todas as dependências executando o seguinte comando:

    npm install
    

Ler um imóvel

  1. Quando você executou o dispositivo de termostato de amostra no terminal do dispositivo , você viu as seguintes mensagens indicando seu status on-line:

    properties have been reported for component
    sending telemetry message 0...
    
  2. Vá para o terminal de serviço e use o seguinte comando para executar o exemplo para ler informações do dispositivo:

    node twin.js
    
  3. Na saída do terminal de serviço , observe a resposta do gêmeo do dispositivo. Você vê o ID do modelo do dispositivo e as propriedades associadas relatadas:

    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. O trecho a seguir mostra o código no twin.js que recupera o ID do modelo do gêmeo do dispositivo:

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

Nesse cenário, ele produz Model Id: dtmi:com:example:Thermostat;1.

Nota

Esses exemplos de serviço usam a classe Registry do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.

Atualizar uma propriedade gravável

  1. Abra o arquivo twin.js em um editor de código.

  2. Revise o código de exemplo, ele mostra duas maneiras de atualizar o dispositivo gêmeo. Para usar a primeira maneira, modifique a twinPatch variável da seguinte maneira:

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

    A targetTemperature propriedade é definida como uma propriedade gravável no modelo de dispositivo de termostato.

  3. No terminal de serviço , use o seguinte comando para executar o exemplo de atualização da propriedade:

    node twin.js
    
  4. No terminal do dispositivo, você vê que o dispositivo recebeu a atualização:

    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. No terminal de serviço , execute o seguinte comando para confirmar que a propriedade foi atualizada:

    node twin.js
    
  6. Na saída do terminal de serviço , na reported seção de propriedades, você vê a temperatura de destino atualizada relatada. Pode demorar um pouco para o dispositivo concluir a atualização. Repita esta etapa até que o dispositivo tenha processado a atualização de propriedade:

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

Invocar um comando

  1. Abra o arquivo device_method.js e revise o código.

  2. Dirija-se ao terminal de serviço . Use o seguinte comando para executar o exemplo para invocar o comando:

    set IOTHUB_METHOD_NAME=getMaxMinReport
    set IOTHUB_METHOD_PAYLOAD=commandpayload
    node device_method.js
    
  3. A saída no terminal de serviço mostra a seguinte confirmação:

    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. No terminal do dispositivo , você vê que o comando é reconhecido:

    MaxMinReport commandpayload
    Response to method 'getMaxMinReport' sent successfully.
    

O IoT Plug and Play simplifica a IoT, permitindo que você interaja com o modelo de um dispositivo sem conhecimento da implementação subjacente do dispositivo. Este tutorial mostra como usar Python para se conectar e controlar um dispositivo IoT Plug and Play conectado à sua solução.

Pré-requisitos

Antes de continuar, certifique-se de que configurou o seu ambiente, incluindo o seu hub IoT.

Para concluir este tutorial, você precisa do Python instalado em sua máquina de desenvolvimento. Verifique o SDK do Python do Azure IoT para obter os requisitos de versão atuais do Python. Você pode verificar sua versão do Python com o seguinte comando:

python --version

Você pode baixar a versão recomendada mais recente para várias plataformas do python.org.

Em seu ambiente Python local, instale o pacote azure-iot-device da seguinte maneira:

pip install azure-iot-device

Instale o pacote azure-iot-hub executando o seguinte comando:

pip install azure-iot-hub

Execute o dispositivo de exemplo

Em Configurar seu ambiente, você criou quatro variáveis de ambiente para configurar o exemplo para usar o DPS (Serviço de Provisionamento de Dispositivo) para se conectar ao seu hub IoT:

  • IOTHUB_DEVICE_SECURITY_TYPE com o valorDPS
  • IOTHUB_DEVICE_DPS_ID_SCOPE com o escopo DPS ID.
  • IOTHUB_DEVICE_DPS_DEVICE_ID com o valor my-pnp-device.
  • IOTHUB_DEVICE_DPS_DEVICE_KEY com a chave primária de inscrição.
  • IOTHUB_DEVICE_DPS_ENDPOINT com o valor global.azure-devices-provisioning.net.

Para saber mais sobre a configuração de exemplo, consulte o Leiame de exemplo.

Neste tutorial, você usa um dispositivo termostato de exemplo, escrito em Python, como o dispositivo IoT Plug and Play. Para executar o dispositivo de exemplo:

  1. Abra uma janela do terminal em uma pasta de sua escolha. Execute o seguinte comando para clonar o repositório GitHub do SDK Python do Dispositivo IoT do Azure neste local:

    git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python
    
  2. Esta janela do terminal é usada como o terminal do seu dispositivo . Vá para a pasta do repositório clonado e navegue até a pasta azure-iot-sdk-python/samples/pnp .

  3. Execute o dispositivo de termostato de amostra com o seguinte comando:

    python simple_thermostat.py
    
  4. Você vê mensagens dizendo que o dispositivo enviou algumas informações e se denunciou online. Essas mensagens indicam que o dispositivo começou a enviar dados de telemetria para o hub e agora está pronto para receber comandos e atualizações de propriedade. Não feche este terminal, você precisa dele para confirmar que a amostra de serviço está funcionando.

Executar a solução de exemplo

Neste tutorial, você usa uma solução IoT de exemplo em Python para interagir com o dispositivo de exemplo que acabou de configurar.

  1. Abra outra janela do terminal para usar como seu terminal de serviço . Execute o seguinte comando para clonar o repositório GitHub do SDK Python do Hub IoT do Azure neste local:

    git clone https://github.com/Azure/azure-iot-hub-python
    
  2. Instale a seringa

  3. Navegue até a pasta /azure-iot-hub-python/samples do repositório clonado do SDK do Python.

  4. Abra o arquivo registry_manager_pnp_sample.py e revise o código. Este exemplo mostra como usar a classe IoTHubRegistryManager para interagir com seu dispositivo IoT Plug and Play.

Nota

Esses exemplos de serviço usam a classe IoTHubRegistryManager do cliente de serviço do Hub IoT. Para saber mais sobre as APIs, incluindo a API de gêmeos digitais, consulte o guia do desenvolvedor de serviços.

Obtenha o dispositivo twin

Em Configurar seu ambiente para os tutoriais e inícios rápidos do IoT Plug and Play, você criou duas variáveis de ambiente para configurar o exemplo para se conectar ao seu hub IoT:

  • IOTHUB_CONNECTION_STRING: a cadeia de conexão do hub IoT que você anotou anteriormente.
  • IOTHUB_DEVICE_ID: "my-pnp-device".

Use o seguinte comando no terminal de serviço para executar este exemplo:

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

Nota

Se você estiver executando este exemplo no Linux, use export no lugar de set.

A saída mostra o dispositivo gêmeo e imprime seu ID de modelo:

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

O trecho a seguir mostra o código de exemplo do 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("")

Atualizar um dispositivo twin

Este exemplo mostra como atualizar a targetTemperature propriedade gravável no dispositivo:

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

Você pode verificar se a atualização é aplicada no terminal do dispositivo que mostra a seguinte saída:

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

O terminal de serviço confirma que o patch foi bem-sucedido:

The twin patch has been successfully applied

Invocar um comando

Em seguida, o exemplo invoca um comando:

O terminal de serviço mostra uma mensagem de confirmação do dispositivo:

The device method has been successfully invoked

No terminal do dispositivo , você vê que o dispositivo recebe o comando:

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

Clean up resources (Limpar recursos)

Se tiver terminado os guias de início rápido e os tutoriais, consulte Limpar recursos.

Próximos passos

Neste tutorial, você aprendeu como conectar um dispositivo IoT Plug and Play a uma solução IoT. Para saber mais sobre os modelos de dispositivo IoT Plug and Play, consulte: