Gestione automatica di dispositivi e moduli IoT con il portale di Azure

La gestione automatica dei dispositivi nell'hub IoT di Azure consente di automatizzare molte attività ripetitive e complesse di gestione di un numero elevato di dispositivi. La gestione automatica dei dispositivi consente di gestire un insieme di dispositivi in base alle proprietà, definire la configurazione desiderata e quindi permette all'hub IoT di aggiornare i dispositivi quando rientrano nell'ambito. Questo aggiornamento viene eseguito utilizzando una configurazione automatica del dispositivo o una configurazione automatica del modulo, che consente di riepilogare il completamento e la conformità, gestire l'unione e i conflitti, nonché implementare le configurazioni con un approccio graduale.

Nota

Le funzionalità descritte in questo articolo sono disponibili solo nel livello Standard dell'hub IoT. Per altre informazioni sui livelli di hub IoT basic e standard/gratuiti, vedere Scegliere il livello di hub IoT appropriato per la soluzione.

La gestione automatica dei dispositivi funziona aggiornando una serie di dispositivi gemelli o moduli gemelli con le proprietà desiderate e creando un riepilogo basato su proprietà gemellate riportate. È stata introdotta una nuova classe e un documento JSON denominato Configuration che presenta tre parti:

  • La condizione di destinazione definisce l'ambito dei dispositivi o dei moduli gemelli da aggiornare. La condizione di destinazione viene specificata come query sui tag e/o le proprietà segnalate gemelli.

  • Il contenuto di destinazione definisce le proprietà desiderate da aggiungere o aggiornare nei moduli o nei dispositivi gemelli di destinazione. Il contenuto include un percorso della sezione delle proprietà desiderate da modificare.

  • Le metriche definiscono i conteggi di riepilogo dei vari stati di configurazione, ad esempio Success, In progress ed Error. Le metriche personalizzate vengono specificate come query sulle proprietà segnalate dei gemelli. Le metriche di sistema sono metriche predefinite che misurano lo stato di aggiornamento dei gemelli, ad esempio il numero di dispositivi gemelli di destinazione e di quelli che sono stati aggiornati.

Le configurazioni automatiche vengono eseguite per la prima volta poco dopo la creazione della configurazione e quindi a intervalli di cinque minuti. Le query per le metriche vengono eseguite ogni volta che viene eseguita la configurazione automatica. Un massimo di 100 configurazioni automatiche è supportato in hub IoT di livello standard; dieci in hub IoT di livello gratuito. Si applicano anche i limiti di limitazione. Per altre informazioni, vedere Quote e limitazione.

Implementare i dispositivi o i moduli gemelli

Le configurazioni automatiche dei dispositivi richiedono l'uso di dispositivi gemelli per la sincronizzazione dello stato tra il cloud e i dispositivi. Per altre informazioni, vedere Comprendere e usare dispositivi gemelli nell'hub IoT.

Le configurazioni automatiche dei dispositivi richiedono l'uso di moduli gemelli per la sincronizzazione dello stato tra il cloud e i moduli. Per altre informazioni, vedere Comprendere e usare moduli gemelli nell'hub IoT.

Usare i tag per individuare i gemelli

Prima di creare una configurazione, è necessario specificare i dispositivi o moduli a cui applicarla. hub IoT di Azure identifica i dispositivi usando i tag nel dispositivo gemello e identifica i moduli usando i tag nel modulo gemello. Ogni dispositivo o modulo può avere più tag ed è possibile definirli in qualsiasi modo risulti appropriato per una soluzione specifica. Ad esempio, se si gestiscono i dispositivi in posizioni diverse, aggiungere i tag seguenti a un dispositivo gemello:

"tags": {
	"location": {
		"state": "Washington",
		"city": "Tacoma"
    }
},

Creare una configurazione

È possibile creare un massimo di 100 configurazioni automatiche in hub IoT di livello standard; dieci in hub IoT di livello gratuito. Per altre informazioni, vedere Quote e limitazione.

  1. Nel portale di Azure passare all'hub IoT.

  2. Selezionare Configurazioni e distribuzioni nel riquadro di spostamento sinistro.

  3. Selezionare Aggiungi e scegliere Configurazione del dispositivo gemello o Configurazione del modulo gemello nell'elenco a discesa.

    Screenshot showing how to add a configuration.

La creazione di una configurazione prevede cinque passaggi, illustrati nelle sezioni seguenti.

Nome ed etichetta

  1. Assegnare alla configurazione un nome univoco con lunghezza fino a 128 caratteri. Sono consentite lettere minuscole e i caratteri speciali seguenti: -+%_*!'. Gli spazi non sono consentiti.

  2. Aggiungere etichette per tenere traccia delle configurazioni. Le etichette sono coppie di Nome e Valore che descrivono la configurazione. Ad esempio, HostPlatform, Linux o Version, 3.0.1.

  3. Selezionare Avanti per procedere al passaggio successivo.

Impostazioni del dispositivo gemello

Questa sezione definisce il contenuto da impostare nelle proprietà desiderate del dispositivo gemello o del modulo gemello di destinazione. Esistono due input per ogni set di impostazioni. Il primo è il percorso del gemello, ovvero il percorso della sezione JSON all'interno delle proprietà desiderate del dispositivo gemello che verranno impostate. Il secondo è il contenuto JSON da inserire in questa sezione.

Ad esempio, è possibile impostare il percorso del gemello su properties.desired.chiller-water e quindi fornire il contenuto JSON seguente:

{
  "temperature": 66,
  "pressure": 28
}

Screenshot of setting the device or module twin property and json content.

È possibile anche definire singole impostazioni specificando il percorso completo del gemello e il valore senza parentesi quadre. Ad esempio, con il percorso gemello properties.desired.chiller-water.temperature impostare il contenuto su 66. Quindi, creare una nuova impostazione del gemello per la proprietà pressure.

Se due o più configurazioni assegnano come destinazione lo stesso percorso del gemello, verrà applicato il contenuto dalla configurazione con priorità più alta (la priorità viene definita nel passaggio 4).

Se si vuole rimuovere una proprietà esistente, specificare il valore della proprietà su null.

È possibile aggiungere altre impostazioni selezionando Aggiungi impostazione dispositivo gemelloAggiungi impostazione modulo gemello.

Dispositivi o moduli di destinazione

Usare la proprietà tags dai gemelli per selezionare i dispositivi o moduli specifici che devono ricevere la configurazione. È possibile anche assegnare i gemelli di destinazione in base alle proprietà segnalate.

Le configurazioni automatiche dei dispositivi possono essere destinate solo ai tag del dispositivo gemello e le configurazioni automatiche dei moduli possono essere destinate solo ai tag del modulo gemello.

Dato che più configurazioni possono avere come destinazione lo stesso dispositivo o modulo, è necessario assegnare a ogni configurazione un numero di priorità. In caso di conflitto, prevale la configurazione con la priorità più alta.

  1. Immettere un numero intero positivo in Priority (Priorità) per la configurazione. Il valore numerico più alto indica la priorità più alta. Se due configurazioni hanno lo stesso numero di priorità, prevale quella creata più di recente.

  2. Specificare una condizione in Target condition (Condizione di destinazione) per determinare i dispositivi o i moduli di destinazione di questa configurazione. La condizione è basata sui tag o sulle proprietà segnalate dei gemelli e deve corrispondere al formato di espressione.

    Per la configurazione automatica del dispositivo, è possibile specificare solo il tag o la proprietà segnalati come destinazione. Ad esempio, tags.environment='test' o properties.reported.chillerProperties.model='4000x'. È possibile specificare * per assegnare la configurazione a tutti i dispositivi.

    Per la configurazione automatica dei moduli, usare una query per specificare i tag o le proprietà segnalati dai moduli registrati nell'hub. Ad esempio, from devices.modules where tags.environment='test' o from devices.modules where properties.reported.chillerProperties.model='4000x'. Non è possibile usare il carattere jolly per specificare come destinazione tutti i moduli.

Metriche

Le metriche forniscono i conteggi di riepilogo dei diversi stati che un dispositivo o un modulo possono segnalare dopo l'applicazione del contenuto della configurazione. Ad esempio è possibile creare una metrica per le modifiche alle impostazioni in sospeso, una metrica per gli errori e una metrica per le modifiche alle impostazioni con esito positivo.

Ogni configurazione può avere fino a cinque metriche personalizzate.

  1. Immettere un nome per Nome della metrica

  2. Immettere una query per Metric Criteria (Criteri metrica). La query è basata sulle proprietà segnalate dei dispositivi gemelli. La metrica rappresenta il numero di righe restituite dalla query.

    Ad esempio:

    SELECT deviceId FROM devices 
      WHERE properties.reported.chillerWaterSettings.status='pending'
    

    È possibile includere una clausola per indicare che la configurazione è stata applicata, ad esempio:

    /* Include the double brackets. */
    SELECT deviceId FROM devices 
      WHERE configurations.[[yourconfigname]].status='Applied'
    

    Se si sta compilando una metrica per il report dei moduli configurati, selezionare moduleId da devices.modules. Ad esempio:

    SELECT deviceId, moduleId FROM devices.modules
      WHERE properties.reported.lastDesiredStatus.code = 200
    

Rivedere la configurazione

Rivedere le informazioni sulla configurazione e quindi selezionare Submit (Invia).

Monitorare una configurazione

Per visualizzare i dettagli di una configurazione e monitorare i dispositivi che la eseguono, seguire questa procedura:

  1. Nel portale di Azure passare all'hub IoT.

  2. Selezionare Configurazioni in Gestione dei dispositivi.

  3. Esaminare l'elenco delle configurazioni. Per ogni configurazione è possibile visualizzare i dettagli seguenti:

    • ID: il nome della configurazione.

    • Target condition (Condizione di destinazione): la query usata per definire i dispositivi o moduli di destinazione.

    • Priority (Priorità): il numero di priorità assegnato alla configurazione.

    • Creation time (Data/ora di creazione): il timestamp di creazione della configurazione. Questo timestamp viene usato per stabilire la prevalenza quando due configurazioni hanno la stessa priorità.

    • System metrics (Metriche sistema): le metriche che vengono calcolate dall'hub IoT e che non possono essere personalizzate dagli sviluppatori. Assegnato: specifica il numero di dispositivi gemelli che soddisfano la condizione di destinazione. Si applica: il numero di dispositivi gemelli che sono stati modificati dalla configurazione, che può includere modifiche parziali nel caso in cui anche una configurazione separata con priorità più alta abbia apportato modifiche.

    • Metriche personalizzate: metriche specificate dallo sviluppatore come query sulle proprietà segnalate dei gemelli. È possibile definire fino a cinque metriche personalizzate per ogni configurazione.

  4. Selezionare la configurazione che si vuole monitorare.

  5. Esaminare i dettagli della configurazione. È possibile usare le schede per visualizzare dettagli specifici sui dispositivi che hanno ricevuto la configurazione.

    • Dispositivi di destinazione o moduli di destinazione: i dispositivi o i moduli che corrispondono alla condizione di destinazione.

    • Metriche: elenco delle metriche di sistema e personalizzate. È possibile visualizzare un elenco di dispositivi o moduli che vengono conteggiati per ogni metrica selezionando la metrica nell'elenco a discesa e quindi selezionando View Devices (Visualizza dispositivi) o View Modules (Visualizza moduli).

    • Etichette : coppie chiave-valore usate per descrivere una configurazione. Le etichette non impattano sulla funzionalità.

    • Device Twin Impostazioni o Module Twin Impostazioni: le impostazioni del dispositivo gemello impostate dalla configurazione, se presenti.

Modificare una configurazione

Quando si modifica una configurazione, le modifiche vengono replicate immediatamente in tutti i dispositivi o moduli di destinazione.

Se si aggiorna la condizione di destinazione, vengono eseguiti gli aggiornamenti seguenti:

  • Se un gemello non soddisfa la condizione di destinazione precedente, ma soddisfa la nuova condizione di destinazione e questa configurazione ha la priorità più alta per il gemello, viene applicata questa configurazione.

  • Se un gemello che attualmente esegue la configurazione non soddisfa più la condizione di destinazione, verranno rimosse le impostazioni dalla configurazione e il gemello verrà modificato dalla configurazione successiva con la priorità più alta.

  • Se un gemello che attualmente esegue questa configurazione non soddisfa più la condizione di destinazione e non soddisfa la condizione di destinazione delle altre configurazioni, le impostazioni vengono rimosse dalla configurazione e non verranno apportate altre modifiche al gemello.

Per modificare una configurazione, seguire questa procedura:

  1. Nel portale di Azure passare all'hub IoT.

  2. Selezionare Configurazioni e distribuzioni in Gestione dei dispositivi.

  3. Selezionare la configurazione che si vuole modificare.

  4. È possibile apportare aggiornamenti ai campi seguenti:

    • Priorità
    • Metriche
    • Condizione di destinazione
    • Etichette
  5. Seleziona Salva.

  6. Seguire la procedura descritta in Monitorare una configurazione per controllare la distribuzione delle modifiche.

Eliminare una configurazione

Quando si elimina una configurazione, gli eventuali dispositivi gemelli ricevono la configurazione successiva con la priorità più alta. Se i dispositivi gemelli non soddisfano la condizione di destinazione di qualsiasi altra configurazione, non vengono applicate altre impostazioni.

  1. Nel portale di Azure passare all'hub IoT.

  2. Selezionare Configurazioni e distribuzioni in Gestione dei dispositivi.

  3. Usare la casella di controllo per selezionare la configurazione che si vuole eliminare.

  4. Seleziona Elimina.

  5. Verrà visualizzato un messaggio che richiede la conferma.

Passaggi successivi

In questo articolo si è appreso come configurare e monitorare i dispositivi IoT su larga scala.

Per informazioni su come gestire in blocco le identità dei dispositivi hub IoT, vedere Importare ed esportare hub IoT identità dei dispositivi in blocco