

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestisci i comandi e gli eventi dei dispositivi IoT
<a name="device-commands-events"></a>

I comandi del dispositivo offrono la possibilità di gestire in remoto un dispositivo fisico garantendo il controllo completo sul dispositivo, oltre a eseguire aggiornamenti critici di sicurezza, software e hardware. Con un'ampia flotta di dispositivi, sapere quando un dispositivo esegue un comando consente di supervisionare l'intera implementazione del dispositivo. Un comando o un aggiornamento automatico del dispositivo attiverà una modifica dello stato del dispositivo, che a sua volta creerà un nuovo evento del dispositivo. Questo evento del dispositivo attiverà una notifica inviata automaticamente a una destinazione gestita dal cliente.

**Topics**
+ [Comandi per i dispositivi](#device-commands)
+ [Eventi del dispositivo](#device-events)

## Comandi per i dispositivi
<a name="device-commands"></a>

Una richiesta di comando è il comando inviato al dispositivo. Una richiesta di comando include un payload che specifica l'azione da intraprendere, ad esempio accendere la lampadina. Per inviare un comando al dispositivo, l'`SendManagedThingCommand`API viene chiamata per conto dell'utente finale da Managed Integrations e la richiesta di comando viene inviata al dispositivo. 

La risposta a a `SendManagedThingCommand` è a `traceId` ed è possibile utilizzarla `traceId` per tenere traccia dell'erogazione dei comandi e dei relativi flussi di lavoro di risposta ai comandi, ove possibile.

Per ulteriori informazioni sul funzionamento dell'`SendManagedThingCommand`API, consulta [SendManagedThingCommand](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendManagedThingCommand.html).

**Operazione `UpdateState`**

Per aggiornare lo stato di un dispositivo, ad esempio l'ora in cui si accende una luce, utilizza l'`UpdateState`azione quando si chiama l'`SendManagedThingCommand`API. Fornisci la proprietà del modello di dati e il nuovo valore in cui esegui l'aggiornamento`parameters`. L'esempio seguente illustra una richiesta `SendManagedThingCommand` API che aggiorna una lampadina a`5`. `OnTime`

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "matter.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "UpdateState",
              "parameters": {
                "OnTime": 5
              }
            }
          ]
        }
      ]
    }
  ]
}
```

**Operazione `ReadState`**

Per ottenere lo stato più recente di un dispositivo, inclusi i valori correnti di tutte le proprietà del modello di dati, utilizzate l'`ReadState`azione quando chiamate l'`SendManagedThingCommand`API. In`propertiesToRead`, puoi utilizzare le seguenti opzioni:
+ Fornisci una proprietà specifica del modello di dati per ottenere il valore più recente, ad esempio `OnOff` per determinare se una luce è accesa o spenta.
+ Utilizzate l'operatore wildcard (`*`) per leggere *tutte le* proprietà dello stato del dispositivo relative a una funzionalità.

Gli esempi seguenti illustrano entrambi gli scenari per una richiesta `SendManagedThingCommand` API che utilizza l'azione`ReadState`:

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "aws.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "ReadState",
              "parameters": {
                "propertiesToRead": [ "OnOff" ]
              }
            }
          ]
        }
      ]
    }
  ]
}
```

```
{
  "Endpoints": [
    {
      "endpointId": "1",
      "capabilities": [
        {
          "id": "aws.OnOff",
          "name": "On/Off",
          "version": "1",
          "actions": [
            {
              "name": "ReadState",
              "parameters": {
                "propertiesToRead": [ "*" ]
              }
            }
          ]
        }
      ]
    }
  ]}
```

## Eventi del dispositivo
<a name="device-events"></a>

Un evento del dispositivo include lo stato corrente del dispositivo. Ciò può significare che il dispositivo ha cambiato stato o sta segnalando il suo stato anche se lo stato non è cambiato. Include report sulle proprietà ed eventi definiti nel modello di dati. Un evento può essere il completamento del ciclo della lavatrice o il termostato ha raggiunto la temperatura desiderata impostata dall'utente finale.

**Notifiche degli eventi del dispositivo**

Un utente finale può abbonarsi a destinazioni specifiche gestite dal cliente che crea per gli aggiornamenti su eventi specifici del dispositivo. Per creare una destinazione gestita dal cliente, chiama l'API. `CreateDestination` Quando un evento relativo al dispositivo viene segnalato a Managed Integrations dal dispositivo, la destinazione gestita dal cliente riceve una notifica, se esistente. 