Accodamento dei messaggi di downlink da inviare ai dispositivi LoRaWAN
Le applicazioni ospitate su cloud e altri Servizio AWS possono inviare messaggi di downlink ai tuoi dispositivi wireless. Si definiscono messaggi di downlink i messaggi inviati da AWS IoT Core per LoRaWAN sul tuo dispositivo wireless. Puoi pianificare e inviare i messaggi di downlink per ogni dispositivo che hai inserito in AWS IoT Core per LoRaWAN.
Se vuoi inviare un messaggio di downlink a molteplici dispositivi, puoi utilizzare un gruppo multicast. I dispositivi di un gruppo multicast condividono lo stesso indirizzo multicast, che viene quindi distribuito a un intero gruppo di dispositivi destinatari. Per ulteriori informazioni, consultare Creazione di gruppi multicast per inviare un payload di downlink a più dispositivi.
Come funziona una coda di messaggi di downlink
La classe del dispositivo LoRaWAN determina il modo in cui i messaggi nella coda vengono inviati al dispositivo. I dispositivi di classe A inviano un messaggio di uplink a AWS IoT Core per LoRaWAN per indicare che il dispositivo è disponibile alla ricezione di messaggi di downlink. I dispositivi di classe B possono ricevere messaggi negli slot di downlink pianificati. I dispositivi di classe C possono ricevere messaggi di downlink in qualsiasi momento. Per ulteriori informazioni sulle classi dei dispositivi, consulta la sezione Classi di dispositivi.
Di seguito viene illustrato come i messaggi vengono accodati e inviati ai dispositivi di classe A.
-
AWS IoT Core per LoRaWAN esegue il buffer del messaggio di downlink aggiunto alla coda con la porta frame, i dati di payload e i parametri della modalità di ricevuta specificati utilizzando la console AWS IoT o l'API Wireless AWS IoT.
-
Il dispositivo LoRaWAN invia un messaggio di uplink per indicare che è online e può iniziare a ricevere messaggi di downlink.
-
Se hai aggiunto più di un messaggio di downlink alla coda, AWS IoT Core per LoRaWAN invia il primo messaggio di downlink presente nella coda al dispositivo con il flag di ricevuta (ACK) impostato.
-
Il dispositivo invia un messaggio di uplink a AWS IoT Core per LoRaWAN immediatamente oppure rimane in sospeso fino al successivo messaggio di uplink e include il flag ACK nel messaggio.
-
Quando riceve il messaggio di uplink con il flag ACK, AWS IoT Core per LoRaWAN cancella il messaggio di downlink dalla coda, indicando che il dispositivo ha ricevuto correttamente il messaggio di downlink. Se dopo tre verifiche il flag ACK non è presente nel messaggio di uplink, il messaggio viene eliminato.
Eseguire operazioni di accodamento dei messaggi di downlink utilizzando la console
Puoi utilizzare la AWS Management Console per accodare i messaggi di downlink e cancellare i singoli messaggi o l'intera coda, secondo necessità. Per i dispositivi di classe A, dopo che il dispositivo invia un messaggio di uplink per indicare che è online, i messaggi in coda vengono inviati al dispositivo. Dopo l'invio, il messaggio viene automaticamente cancellato dalla coda.
Accodamento dei messaggi di downlink
Per creare una coda di messaggi di downlink
-
Accedi all'hub dei dispositivi della console AWS IoT
e scegli il dispositivo per il quale desideri accodare i messaggi di downlink. -
Nella sezione Downlink messages (Messaggi di downlink) della pagina dei dettagli del dispositivo, scegli Queue downlink messages (Accoda messaggi di downlink).
-
Per configurare il messaggio di downlink, specifica i seguenti parametri:
-
FPort: scegli la porta frame per la comunicazione tra il dispositivo e AWS IoT Core per LoRaWAN.
-
Payload: specifica il messaggio di payload che desideri inviare al dispositivo. La dimensione massima del payload è di 242 byte. Se la velocità dati adattiva (ADR) è abilitata, AWS IoT Core per LoRaWAN la utilizza per scegliere la velocità dati ottimale per le dimensioni del payload. Puoi ottimizzare ulteriormente la velocità dati in base alle tue esigenze.
-
Modalità ricevuta: conferma se il dispositivo ha ricevuto il messaggio di downlink. Se un messaggio richiede questa modalità, verrà visualizzato un messaggio di uplink con il flag ACK nel flusso dei dati e il messaggio verrà cancellato dalla coda.
-
-
Per aggiungere il messaggio di downlink alla coda, scegli Submit (Invia).
Ora il messaggio di downlink è stato aggiunto alla coda. Se non visualizzi il messaggio o si verifica un errore, puoi risolvere il problema come descritto in Risoluzione dei problemi relativi alla coda dei messaggi di downlink.
Nota
Dopo che il messaggio di downlink è stato aggiunto alla coda, i parametri FPort, Payload e Acknowledge mode (Modalità ricevuta) non possono più essere modificati. Se vuoi inviare un messaggio di downlink con valori diversi per questi parametri, devi eliminare il messaggio e accodare un nuovo messaggio di downlink con i valori dei parametri aggiornati.
La coda elenca i messaggi di downlink aggiunti. Per visualizzare il payload per i messaggi di uplink e downlink scambiati tra i dispositivi e AWS IoT Core per LoRaWAN, puoi utilizzare l'analizzatore di rete. Per ulteriori informazioni, consultare Monitoraggio del parco istanze di risorse wireless in tempo reale utilizzando l'analizzatore di rete.
Elenco dei messaggi di downlink in coda
Il messaggio di downlink che hai creato viene aggiunto alla coda. Ogni successivo messaggio di downlink viene aggiunto alla coda dopo questo messaggio. Puoi visualizzare un elenco dei messaggi di downlink nella sezione Downlink messages (Messaggi di downlink) della pagina dei dettagli del dispositivo. Dopo avere ricevuto un messaggio di uplink, i messaggi vengono inviati al dispositivo. Dopo che un messaggio di downlink è stato ricevuto dal dispositivo, verrà rimosso dalla coda. Il messaggio successivo si sposta quindi verso l'alto nella coda dei messaggi da inviare al dispositivo.
Eliminazione di singoli messaggi di downlink o cancellazione dell'intera coda
Ogni messaggio di downlink viene cancellato automaticamente dalla coda dopo che è stato inviato al dispositivo. Puoi anche eliminare singoli messaggi o cancellare l'intera coda dei messaggi di downlink. Queste operazioni non possono essere annullate.
-
Se nella coda trovi messaggi che non vuoi inviare, selezionali e scegli Delete (Elimina).
-
Se non vuoi inviare alcuno dei messaggi in coda al tuo dispositivo, puoi cancellare l'intera coda scegliendo Clear downlink queue (Cancella coda di downlink).
Eseguire operazioni di accodamento dei messaggi di downlink utilizzando l'API
Puoi utilizzare l'API Wireless AWS IoT per accodare i messaggi di downlink e cancellare i singoli messaggi o l'intera coda, secondo necessità.
Accodamento dei messaggi di downlink
Per creare una coda di messaggi di downlink tramite l'API, utilizza l'operazione API SendDataToWirelessDevice
o il comando della CLI send-data-to-wireless-device
.
aws iotwireless send-data-to-wireless-device \ --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \ --transmit-mode "1" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --wireless-metadata LoRaWAN={FPort=1}
L'output dell'esecuzione di questo comando genera un MessageId
per il messaggio di downlink. In alcuni casi, anche se ricevi il MessageId
, i pacchetti possono essere eliminati. Per ulteriori informazioni su come risolvere l'errore, consulta la sezione Risoluzione dei problemi relativi alla coda dei messaggi di downlink.
{ MessageId: "6011dd36-0043d6eb-0072-0008" }
Elenco dei messaggi di downlink in coda
Per elencare tutti i messaggi di downlink presenti nella coda, utilizza l'operazione API ListQueuedMessages
o il comando della CLI list-queued-messages
.
aws iotwireless list-queued-messages
Per impostazione predefinita, durante l'esecuzione di questo comando vengono visualizzati un massimo di 10 messaggi di downlink.
Rimozione di singoli messaggi di downlink o cancellazione dell'intera coda
Per rimuovere singoli messaggi dalla coda o per cancellare l'intera coda, utilizza l'operazione API DeleteQueuedMessages
o il comando della CLI delete-queued-messages
.
-
Per rimuovere i singoli messaggi, fornisci il
messageID
dei messaggi che desideri rimuovere per il dispositivo wireless, specificato dalwirelessDeviceId
. -
Per cancellare l'intera coda di downlink, specifica il
messageID
come*
per il dispositivo wireless, specificato dalwirelessDeviceId
.
Risoluzione dei problemi relativi alla coda dei messaggi di downlink
Ecco alcune cose da controllare se i risultati che vedi sono diversi da quelli che ti aspetti.
-
I messaggi di downlink non vengono visualizzati nella console AWS IoT
Se non visualizzi un messaggio di downlink nella coda dopo averlo aggiunto come descritto in Eseguire operazioni di accodamento dei messaggi di downlink utilizzando la console, potrebbe dipendere dal fatto che il dispositivo non ha completato un processo chiamato procedura di attivazione o congiungimento. Questa procedura viene completata quando il dispositivo viene inserito in AWS IoT Core per LoRaWAN. Per ulteriori informazioni, consultare Aggiungi le specifiche del dispositivo wireless ad AWS IoT Core per LoRaWAN utilizzando la console.
Dopo avere inserito il dispositivo in AWS IoT Core per LoRaWAN, puoi monitorarlo per verificare se l'accesso e il congiungimento sono riusciti utilizzando l'analizzatore di rete o Amazon CloudWatch. Per ulteriori informazioni, consultare Strumenti di monitoraggio.
-
Pacchetti di messaggi di downlink mancanti quando si utilizza l'API
Quando utilizzi l'operazione API
SendDataToWirelessDevice
, l'API restituisce unMessageId
univoco. Tuttavia, non puoi verificare se il dispositivo LoRaWAN abbia ricevuto il messaggio di downlink. I pacchetti di downlink possono essere eliminati se, ad esempio, il dispositivo non ha completato la procedura di congiungimento. Per ulteriori informazioni su come risolvere questo errore, consulta la sezione precedente. -
Errore ARN mancante durante l'invio del messaggio di downlink
Quando invii un messaggio di downlink dalla coda al dispositivo, potresti ricevere un errore di Amazon Resource Name (ARN) mancante. L'errore potrebbe verificarsi perché non è stata specificata correttamente la destinazione per il dispositivo che riceve il messaggio di downlink. Per risolvere questo errore, controlla i dettagli di destinazione del dispositivo.