

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

# Interazione e sincronizzazione delle ombre dei dispositivi client
<a name="work-with-client-device-shadows"></a>

È possibile utilizzare il [componente shadow manager](shadow-manager-component.md) per gestire le ombre locali, incluse le ombre dei dispositivi client. È possibile utilizzare shadow manager per effettuare le seguenti operazioni:
+ Interagisci con le ombre dei dispositivi client nei componenti Greengrass.
+ Sincronizza le ombre dei dispositivi client con. AWS IoT Core

**Nota**  
Per impostazione predefinita, il componente Shadow Manager non sincronizza le ombre con AWS IoT Core . È necessario configurare il componente shadow manager per specificare con quali ombre del dispositivo client sincronizzare.

**Topics**
+ [Prerequisiti](#client-device-shadows-prerequisites)
+ [Abilita Shadow Manager per comunicare con i dispositivi client](#enable-shadow-manager-client-devices)
+ [Interagisci con le ombre dei dispositivi client nei componenti](#interact-with-client-device-shadows)
+ [Sincronizza le ombre dei dispositivi client con AWS IoT Core](#sync-client-device-shadows-with-iot-core)

## Prerequisiti
<a name="client-device-shadows-prerequisites"></a>

Per interagire con le ombre dei dispositivi client e sincronizzare le ombre dei dispositivi client AWS IoT Core, un dispositivo principale deve soddisfare i seguenti requisiti:
+ Il dispositivo principale deve eseguire i seguenti componenti, oltre ai componenti [Greengrass per il supporto dei dispositivi client](connect-client-devices.md#cloud-discovery-components):
  + [Greengrass nucleus](greengrass-nucleus-component.md) v2.6.0 o successivo
  + [Shadow manager v2.2.0 o successivo](shadow-manager-component.md)
  + [MQTT bridge v2.2.0](mqtt-bridge-component.md) o successivo
+ [Il componente di [autenticazione del dispositivo client](client-device-auth-component.md) deve essere configurato per consentire ai dispositivi client di comunicare su argomenti relativi ai dispositivi shadow.](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-shadow)

## Abilita Shadow Manager per comunicare con i dispositivi client
<a name="enable-shadow-manager-client-devices"></a>

Per impostazione predefinita, il componente shadow manager non gestisce le ombre dei dispositivi client. Per abilitare questa funzionalità, è necessario inoltrare i messaggi MQTT tra i dispositivi client e il componente shadow manager. I dispositivi client utilizzano i messaggi MQTT per ricevere e inviare aggiornamenti shadow dei dispositivi. [Il componente shadow manager si abbona all'interfaccia locale publish/subscribe Greengrass, quindi puoi configurare il componente [bridge MQTT per inoltrare messaggi MQTT](mqtt-bridge-component.md) su argomenti shadow del dispositivo.](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-shadow)

Il componente bridge MQTT utilizza un elenco di mappature di argomenti, ciascuna delle quali specifica un'origine e una destinazione del messaggio. Per abilitare il componente shadow manager alla gestione delle ombre dei dispositivi client, implementate il componente bridge MQTT e specificate gli argomenti shadow per le ombre dei dispositivi client. È necessario configurare il bridge per inoltrare i messaggi in entrambe le direzioni tra MQTT locale e pubblicazione/sottoscrizione locale.

<a name="create-mqtt-bridge-deployment-info"></a>Per distribuire il componente bridge MQTT su un dispositivo principale o su un gruppo di dispositivi principali, [create](create-deployments.md) una distribuzione che includa il componente. `aws.greengrass.clientdevices.mqtt.Bridge` Specificate le mappature degli argomenti nella configurazione `mqttTopicMapping` del componente bridge MQTT nella distribuzione.

Utilizzate i seguenti esempi per configurare il componente bridge MQTT per abilitare la comunicazione tra i dispositivi client e il componente shadow manager.

**Nota**  
È possibile utilizzare questi esempi di configurazione nella AWS IoT Greengrass console. Se utilizzi l' AWS IoT Greengrass API, l'aggiornamento della `merge` configurazione richiede un oggetto JSON serializzato, quindi devi serializzare i seguenti oggetti JSON in stringhe. Per ulteriori informazioni, consulta [Aggiornamento delle configurazioni dei componenti](update-component-configurations.md).

**Example Esempio: gestione di tutte le ombre dei dispositivi client**  
Il seguente esempio di configurazione del bridge MQTT consente a shadow manager di gestire tutte le ombre per tutti i dispositivi client.  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Esempio: gestione delle ombre per un dispositivo client**  
Il seguente esempio di configurazione del bridge MQTT consente a shadow manager di gestire tutte le ombre per un dispositivo client denominato. `MyClientDevice`  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/MyClientDevice/shadow/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/MyClientDevice/shadow/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Esempio: gestire un'ombra denominata per tutti i dispositivi client**  
Il seguente esempio di configurazione di bridge MQTT consente a shadow manager di gestire uno shadow denominato `DeviceConfiguration` per tutti i dispositivi client.  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Esempio: gestione delle ombre senza nome di tutti i dispositivi client**  
Il seguente esempio di configurazione del bridge MQTT consente a shadow manager di gestire ombre senza nome, ma non ombre con nome, per tutti i dispositivi client.  

```
{
  "mqttTopicMapping": {
    "DeleteShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/delete",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "DeleteShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/delete/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    },
    "GetShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/get",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "GetShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/get/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    },
    "UpdateShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/update",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "UpdateShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/update/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

## Interagisci con le ombre dei dispositivi client nei componenti
<a name="interact-with-client-device-shadows"></a>

È possibile sviluppare componenti personalizzati che utilizzano il servizio shadow locale per leggere e modificare i documenti shadow locali dei dispositivi client. Per ulteriori informazioni, consulta [Interagisci con le ombre nei componenti](interact-with-shadows-in-components.md).

## Sincronizza le ombre dei dispositivi client con AWS IoT Core
<a name="sync-client-device-shadows-with-iot-core"></a>

È possibile configurare il componente shadow manager per sincronizzare gli stati shadow dei dispositivi client locali con. AWS IoT Core Per ulteriori informazioni, consulta [Sincronizza le ombre del dispositivo locale con AWS IoT Core](sync-shadows-with-iot-core.md).