

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Conservation de l'état de l'appareil lorsque celui-ci est hors ligne avec Device Shadows
<a name="iot-shadows-tutorial"></a>

Ces didacticiels vous montrent comment utiliser le service AWS IoT Device Shadow pour stocker et mettre à jour les informations d'état d'un appareil. Le document Shadow, qui est un document JSON, montre la modification de l'état de l'appareil en fonction des messages publiés par un appareil, une application locale ou un service. Dans ce didacticiel, le document Shadow montre le changement de couleur d'une ampoule. Ces didacticiels montrent également comment le shadow stocke ces informations même lorsque l'appareil est déconnecté d'Internet, et transmet les dernières informations d'état à l'appareil lorsqu'il revient en ligne et demande ces informations.

Nous vous recommandons d'essayer ces didacticiels dans l'ordre dans lequel ils sont présentés ici, en commençant par les AWS IoT ressources dont vous avez besoin pour créer et la configuration matérielle nécessaire, ce qui vous permet également d'apprendre les concepts progressivement. Ces didacticiels montrent comment configurer et connecter un appareil Raspberry Pi à utiliser avec AWS IoT. Si vous ne disposez pas du matériel requis, vous pouvez suivre ces didacticiels en les adaptant à l'appareil de votre choix ou en [créant un appareil virtuel avec Amazon EC2](creating-a-virtual-thing.md).

**Présentation des scénarios du didacticiel**  
Le scénario de ces didacticiels est une application ou un service local qui modifie la couleur d'une ampoule et publie ses données sur des sujets d'ombre réservés. Ces didacticiels sont similaires à la fonctionnalité Device Shadow décrite dans le [didacticiel de démarrage interactif](interactive-demo.md) et sont implémentés sur un appareil Raspberry Pi. Les didacticiels de cette section se concentrent sur une seule ombre classique tout en montrant comment vous pouvez adapter des ombres nommées ou plusieurs appareils.

Les didacticiels suivants vous aideront à apprendre à utiliser le service AWS IoT Device Shadow.
+ 

**[Tutoriel : Préparation de votre Raspberry Pi pour exécuter l'application fantôme](create-resources-shadow.md)**  
Ce didacticiel explique comment configurer un appareil Raspberry Pi pour se connecter à AWS IoT. Vous allez également créer un document de AWS IoT stratégie et une ressource d'objet, télécharger les certificats, puis associer la politique à cette ressource d'objet. Ce didacticiel vous prendra environ 30 minutes.
+ 

**[Tutoriel : Installation du SDK du périphérique et exécution de l'exemple d'application pour Device Shadows](lightbulb-shadow-application.md)**  
Ce didacticiel explique comment installer les outils et logiciels requis, ainsi que le SDK AWS IoT Device pour Python, puis exécuter l'exemple d'application Shadow. Ce didacticiel s'appuie sur les concepts présentés dans le document [Connectez un Raspberry Pi ou un autre appareil](connecting-to-existing-device.md) et dure 20 minutes.
+ 

**[Tutoriel : Interaction avec Device Shadow à l'aide de l'exemple d'application et du client de test MQTT](interact-lights-device-shadows.md)**  
Ce didacticiel explique comment utiliser les `shadow.py` exemples d'application et de **AWS IoT console** pour observer l'interaction entre AWS IoT Device Shadows et les changements d'état de l'ampoule. Le didacticiel montre également comment envoyer des messages MQTT aux rubriques réservées du Device Shadow. Ce didacticiel vous prendra environ 45 minutes.

**AWS IoT Présentation de Device Shadow**  
Un Device Shadow est une représentation virtuelle persistante d'un appareil géré par une [ressource d'objets](iot-thing-management.md) que vous créez dans le AWS IoT registre. Le document Shadow est un document JSON ou un document de JavaScript notation utilisé pour stocker et récupérer les informations d'état actuel d'un appareil. Vous pouvez utiliser l'ombre pour obtenir et définir l'état d'un appareil via des sujets MQTT ou HTTP REST APIs, que l'appareil soit connecté à Internet ou non.

Vous pouvez utiliser l'ombre pour obtenir et définir l'état d'un appareil via des sujets MQTT ou des API HTTP REST, que l'appareil soit ou non connecté à l'internet.
+ Les applications spécifient les états souhaités des propriétés de l'appareil en mettant à jour `desired` l'objet.
+ `reported` : Les appareils rapportent leur état actuel dans `reported` l'objet .
+ `delta`: AWS IoT indique les différences entre l'état souhaité et l'état indiqué dans l'`delta`objet.

Voici un exemple de document de l'État fantôme.

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

Pour mettre à jour le document Shadow d'un appareil, vous pouvez utiliser les [rubriques MQTT réservées](reserved-topics.md#reserved-topics-shadow), le [Device Shadow REST APIs](device-shadow-rest-api.md) qui prend en charge le `GET``UPDATE`, et les `DELETE` opérations avec HTTP, ainsi que la [AWS IoT CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot-data/index.html).

Dans l'exemple précédent, supposons que vous souhaitiez changer la `desired` couleur en`yellow`. Pour ce faire, envoyez une demande à l'[UpdateThingShadow](device-shadow-rest-api.md#API_UpdateThingShadow)API ou publiez un message dans la rubrique [Mise à jour](device-shadow-mqtt.md#update-pub-sub-topic), `$aws/things/THING_NAME/shadow/update`.

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

Les mises à jour concernent uniquement les champs spécifiés dans la demande. Après avoir correctement mis à jour le Device Shadow, le nouvel `desired` état est AWS IoT publié dans la `delta` rubrique`$aws/things/THING_NAME/shadow/delta`. Dans ce cas, le document Shadow ressemble à ceci :

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

Le nouvel état est ensuite signalé au AWS IoT Device Shadow en utilisant le `Update` sujet `$aws/things/THING_NAME/shadow/update` avec le message JSON suivant : 

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

Si vous souhaitez obtenir les informations sur l'état actuel, envoyez une demande à l'[GetThingShadow](device-shadow-rest-api.md#API_GetThingShadow)API ou publiez un message MQTT dans la rubrique [Get](device-shadow-mqtt.md#get-pub-sub-topic),`$aws/things/THING_NAME/shadow/get`.

Pour plus d'informations, consultez Service d'ombre de périphérique dans le [AWS IoT Service Device Shadow](iot-device-shadows.md).

Pour plus d'informations sur l'utilisation de Device Shadows dans les appareils, les applications et les services, consultez [Utilisation des shadows sur les appareils](device-shadow-comms-device.md) et [Utilisation des shadows dans les applications et les services](device-shadow-comms-app.md).

Pour plus d'informations sur l'interaction avec AWS IoT les ombres, voir[Interaction avec les shadows](device-shadow-data-flow.md).

Pour plus d'informations sur les sujets réservés MQTT et HTTP REST APIs, consultez [Rubriques MQTT de Device Shadow](device-shadow-mqtt.md) et[API REST Device Shadow](device-shadow-rest-api.md).