Sincronizza le ombre del dispositivo locale con AWS IoT Core - AWS IoT Greengrass

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

Sincronizza le ombre del dispositivo locale con AWS IoT Core

Il componente shadow manager consente di AWS IoT Greengrass sincronizzare gli stati ombra del dispositivo locale con. AWS IoT Core È necessario modificare la configurazione del componente shadow manager per includere il parametro di synchronization configurazione e specificare i nomi AWS IoT degli oggetti per i dispositivi e le ombre che si desidera sincronizzare.

Quando configurate Shadow Manager per sincronizzare le ombre, sincronizza tutte le modifiche di stato per le ombre specificate, indipendentemente dal fatto che le modifiche avvengano nei documenti shadow locali o nei documenti shadow nel cloud.

È inoltre possibile specificare se il componente shadow manager sincronizza le ombre in tempo reale o a intervalli periodici. Per impostazione predefinita, il componente shadow manager sincronizza le ombre in tempo reale, in modo che il dispositivo principale invii e riceva gli aggiornamenti delle ombre da e verso ogni aggiornamento. AWS IoT Core È possibile configurare intervalli periodici per ridurre l'utilizzo della larghezza di banda e i costi.

Prerequisiti

Per sincronizzare le ombre locali conAWS IoT Core, è necessario configurare la politica del dispositivo principale AWS IoT di Greengrass per consentire le AWS IoT Core seguenti azioni di policy ombra.

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

Per ulteriori informazioni, consulta gli argomenti seguenti:

Configurare il componente shadow manager

Lo shadow manager richiede un elenco di mappature dei nomi shadow per sincronizzare le informazioni sullo stato ombra nei documenti shadow locali con i documenti shadow nel cloud. AWS IoT Core

Per sincronizzare gli stati shadow, create una distribuzione che includa il aws.greengrass.ShadowManager componente e specificate le shadow che desiderate sincronizzare nel parametro di synchronize configurazione nella configurazione dello shadow manager nella distribuzione.

Nota

Per consentire a un dispositivo principale di interagire con le ombre dei dispositivi client, è inoltre necessario configurare e distribuire il componente bridge MQTT. Per ulteriori informazioni, consultate Attivare lo shadow manager per comunicare con i dispositivi client.

L'aggiornamento della configurazione di esempio seguente indica al componente shadow manager di sincronizzare le seguenti ombre con: AWS IoT Core

  • L'ombra classica per il dispositivo principale

  • Il nome MyCoreShadow del dispositivo principale

  • La classica ombra per una cosa chiamata IoT MyDevice2

  • Le ombre denominate MyShadowA e MyShadowB per una cosa chiamata IoT MyDevice1

Questo aggiornamento della configurazione specifica di sincronizzare le ombre con AWS IoT Core in tempo reale. Se si utilizza shadow manager v2.1.0 o versione successiva, è possibile configurare il componente shadow manager per sincronizzare le ombre a intervalli periodici. Per configurare questa funzionalità, modificate la strategia di sincronizzazione in e specificate un intervallo delay in secondi. periodic Per ulteriori informazioni, vedete il parametro di configurazione della strategia del componente shadow manager.

Questo aggiornamento della configurazione specifica di sincronizzare le ombre in entrambe le direzioni tra AWS IoT Core e il dispositivo principale. Se si utilizza shadow manager v2.2.0 o versione successiva, è possibile configurare il componente Shadow Manager per sincronizzare le ombre in una sola direzione. Per configurare questa funzionalità, modifica la sincronizzazione direction in o. deviceToCloud cloudToDevice Per ulteriori informazioni, vedete il parametro di configurazione della direzione del componente shadow manager.

{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }

Sincronizza le ombre locali

Quando il dispositivo principale Greengrass è connesso al AWS IoT cloud, lo shadow manager esegue le seguenti attività per le ombre specificate nella configurazione del componente. Il comportamento dipende dall'opzione di configurazione della direzione di sincronizzazione delle ombre specificata. Per impostazione predefinita, Shadow Manager utilizza l'betweenDeviceAndCloudopzione per sincronizzare le ombre in entrambe le direzioni. Se si utilizza shadow manager v2.2.0 o versione successiva, è possibile configurare il dispositivo principale per sincronizzare le ombre in una sola direzione, che può essere o. cloudToDevice deviceToCloud

  • Se la configurazione della direzione di sincronizzazione dello shadow è betweenDeviceAndCloud ocloudToDevice, shadow manager recupera le informazioni sullo stato riportate dal documento cloud shadow in. AWS IoT Core Quindi, aggiorna i documenti shadow archiviati localmente per sincronizzare lo stato del dispositivo.

  • Se la configurazione della direzione di sincronizzazione dello shadow è betweenDeviceAndCloud odeviceToCloud, shadow manager pubblica lo stato corrente del dispositivo nel documento cloud shadow.

Comportamento dei conflitti di fusione delle ombre

In alcuni casi, ad esempio quando il dispositivo principale è disconnesso da Internet, uno shadow potrebbe cambiare nel servizio shadow locale e nel AWS IoT cloud prima che lo shadow manager sincronizzi le modifiche. Di conseguenza, gli stati desiderati e quelli riportati differiscono tra il servizio shadow locale e il cloud AWS IoT

Quando lo shadow manager sincronizza l'ombra, unisce le modifiche in base al seguente comportamento:

  • Se utilizzate una versione di shadow manager precedente alla v2.2.0 o quando specificate la direzione di sincronizzazione dello betweenDeviceAndCloud shadow, si applica il seguente comportamento:

    • Quando si verifica un conflitto di fusione nello stato desiderato di un'ombra, lo shadow manager sovrascrive la sezione in conflitto del documento shadow locale con il valore proveniente dal cloud. AWS IoT

    • Quando si verifica un conflitto di unione nello stato riportato da un'ombra, lo shadow manager sovrascrive la sezione in conflitto dell'ombra nel AWS IoT cloud con il valore del documento shadow locale.

  • Quando specificate la deviceToCloud direzione di sincronizzazione delle ombre, lo shadow manager sovrascrive la sezione in conflitto dell'ombra nel AWS IoT cloud con il valore del documento shadow locale.

  • Quando specificate la direzione di sincronizzazione dello cloudToDevice shadow, lo shadow manager sovrascrive la sezione in conflitto del documento shadow locale con il valore proveniente dal cloud. AWS IoT