

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

# Mantenimento dello stato del dispositivo mentre il dispositivo è disconnesso da Device Shadows
<a name="iot-shadows-tutorial"></a>

Questi tutorial mostrano come utilizzare il servizio AWS IoT Device Shadow per archiviare e aggiornare le informazioni sullo stato di un dispositivo. Il documento Shadow, che è un documento JSON, mostra la modifica dello stato del dispositivo in base ai messaggi pubblicati da un dispositivo, un'app locale o un servizio. In questo tutorial, il documento Shadow mostra la modifica del colore di una lampadina. Questi tutorial mostrano anche come Shadow archivia queste informazioni anche quando il dispositivo è disconnesso da Internet e trasmette le informazioni più recenti sullo stato al dispositivo quando torna online e richiede queste informazioni.

Ti consigliamo di provare questi tutorial nell'ordine in cui sono mostrati qui, a partire dalle risorse AWS IoT necessarie per creare e la configurazione hardware necessaria, che consente anche di apprendere i concetti in modo incrementale. Questi tutorial mostrano come configurare e connettere un dispositivo Raspberry Pi da utilizzare con. AWS IoT Se non si dispone dell'hardware necessario, è possibile seguire questi tutorial adattandoli a un dispositivo di propria scelta o con la [creazione di un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md).

**Panoramica dello scenario tutorial**  
Lo scenario di questi tutorial è un'app o un servizio locale che cambia il colore di una lampadina e che pubblica i dati in argomenti shadow riservati. Questi tutorial sono simili alla funzionalità Device Shadow descritta in [Interactive getting started tutorial (Tutorial interattivo sulle nozioni di base)](interactive-demo.md) e sono implementati su un dispositivo Raspberry Pi. I tutorial in questa sezione si concentrano su una singola shadow classica, mostrando il modo in cui è possibile inserire le shadow o più dispositivi.

I seguenti tutorial ti aiuteranno a imparare a usare il servizio AWS IoT Device Shadow.
+ 

**[Tutorial: Preparazione del Raspberry Pi per eseguire l'applicazione shadow](create-resources-shadow.md)**  
Questo tutorial mostra come configurare un dispositivo Raspberry Pi con cui connettersi. AWS IoT Potrai anche creare un documento di AWS IoT policy e una risorsa, scaricare i certificati e quindi allegare la policy a quella risorsa. Questo tutorial dura circa 30 minuti.
+ 

**[Tutorial: Installare l'SDK di dispositivo ed eseguire l’applicazione di esempio per Device Shadows](lightbulb-shadow-application.md)**  
Questo tutorial mostra come installare gli strumenti, il software e il AWS IoT Device SDK for Python necessari, quindi eseguire l'applicazione shadow di esempio. Questo tutorial si basa sui concetti presentati in [Connettere un Raspberry Pi o altro dispositivo](connecting-to-existing-device.md) e il completamento richiede 20 minuti.
+ 

**[Tutorial: Interagisci con Device Shadow utilizzando l’app di esempio e il client di test MQTT](interact-lights-device-shadows.md)**  
Questo tutorial mostra come utilizzare l'app e la **AWS IoT console** di `shadow.py` esempio per osservare l'interazione tra AWS IoT Device Shadows e i cambiamenti di stato della lampadina. Il tutorial mostra anche come inviare messaggi MQTT agli argomenti riservati di Device Shadow. Questo tutorial dura circa 45 minuti.

**AWS IoT Panoramica di Device Shadow**  
Un Device Shadow è una rappresentazione virtuale persistente di un dispositivo gestito da una [risorsa oggetto](iot-thing-management.md) creata nel AWS IoT registro. Il documento Shadow è un documento JSON o di JavaScript notazione utilizzato per archiviare e recuperare le informazioni sullo stato corrente di un dispositivo. È possibile utilizzare lo shadow per ottenere e impostare lo stato di un dispositivo tramite argomenti MQTT o HTTP REST APIs, indipendentemente dal fatto che il dispositivo sia connesso a Internet.

Il documento di una copia shadow contiene una proprietà `state` che descrive questi aspetti dello stato del dispositivo.
+ `desired`: le app specificano gli stati desiderati delle proprietà del dispositivo aggiornando l'oggetto `desired`.
+ `reported`: i dispositivi segnalano il loro stato corrente nell'oggetto `reported`.
+ `delta`: AWS IoT riporta le differenze tra lo stato desiderato e quello riportato nell'`delta`oggetto.

Di seguito è illustrato un esempio di documento di uno stato Shadow.

```
{
  "state": {
    "desired": {
      "color": "green"
      },
    "reported": {
      "color": "blue"
      },
    "delta": {
      "color": "green"
      }
   }
}
```

Per aggiornare il documento Shadow di un dispositivo, è possibile utilizzare gli [argomenti MQTT riservati](reserved-topics.md#reserved-topics-shadow), il [Device Shadow REST APIs](device-shadow-rest-api.md) che supporta `GET``UPDATE`, `DELETE` le operazioni con HTTP e la [AWS IoT CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot-data/index.html).

Nell'esempio precedente, supponiamo che tu voglia modificare il colore `desired` con `yellow`. A tale scopo, invia una richiesta all’API [UpdateThingShadow](device-shadow-rest-api.md#API_UpdateThingShadow) o pubblica un messaggio nell'argomento [Aggiorna](device-shadow-mqtt.md#update-pub-sub-topic), `$aws/things/THING_NAME/shadow/update`.

```
{
  "state": {
    "desired": {
      "color": yellow
    }
  }
}
```

Gli aggiornamenti interessano solo i campi specificati nella richiesta. Dopo aver aggiornato con successo il Device Shadow, AWS IoT pubblica il nuovo `desired` stato sull'`delta`argomento,`$aws/things/THING_NAME/shadow/delta`. Il documento Shadow in questo caso ha il seguente aspetto:

```
{
  "state": {
    "desired": {
      "color": yellow
    },
    "reported": {
      "color": green
    },
    "delta": {
      "color": yellow
      }
  }
}
```

Il nuovo stato viene quindi segnalato al AWS IoT Device Shadow utilizzando l'`Update`argomento `$aws/things/THING_NAME/shadow/update` con il seguente messaggio JSON: 

```
{
  "state": {
    "reported": {
      "color": yellow
    }
  }
}
```

Se desideri ottenere le informazioni sullo stato attuale, invia una richiesta all'API [GetThingShadow](device-shadow-rest-api.md#API_GetThingShadow) o pubblica un messaggio MQTT nell’argomento [Ottieni](device-shadow-mqtt.md#get-pub-sub-topic), `$aws/things/THING_NAME/shadow/get`.

Per ulteriori informazioni sul funzionamento del Servizio Device Shadow, consulta [AWS IoT Servizio Device Shadow](iot-device-shadows.md).

Per ulteriori informazioni sull'utilizzo di Device Shadows su dispositivi, app e servizi, consulta [Utilizzo delle copie shadow nei dispositivi](device-shadow-comms-device.md) e [Utilizzo delle copie shadow in app e servizi](device-shadow-comms-app.md).

Per informazioni sull'interazione con le AWS IoT ombre, consulta. [Interazione con le copia shadow](device-shadow-data-flow.md)

Per informazioni sugli argomenti riservati MQTT e HTTP REST APIs, vedere e. [Argomenti MQTT di Device Shadow](device-shadow-mqtt.md) [API REST del servizio Device Shadow](device-shadow-rest-api.md)