

# Formar uma fila de mensagens de downlink para enviar para dispositivos LoRaWAN
<a name="lorawan-downlink-queue"></a>

Aplicações hospedadas na nuvem e outros AWS service (Serviço da AWS)s podem enviar mensagens de downlink para os seus dispositivos sem fio. Mensagens de downlink são mensagens enviadas a partir do AWS IoT Core for LoRaWAN para o seu dispositivo sem fio. É possível agendar e enviar mensagens de downlink para cada dispositivo que você integrou ao AWS IoT Core for LoRaWAN.

Se tiver múltiplos dispositivos para os quais deseja enviar uma mensagem de downlink, é possível usar um grupo de multicast. Os dispositivos de um grupo de multicast compartilham o mesmo endereço multicast, que é, então, distribuído para um todo um grupo de dispositivos destinatários. Para ter mais informações, consulte [Crie grupos de multicast para enviar uma carga de downlink para vários dispositivos](lorawan-multicast-groups.md). 

## Como uma fila de mensagens de downlink funciona
<a name="lorawan-how-downlink-works"></a>

A classe de dispositivo de um dispositivo LoRaWAN determina como as mensagens da fila são enviadas para o dispositivo. Dispositivos de classe A enviam uma mensagem de uplink ao AWS IoT Core for LoRaWAN para indicar que o dispositivo está disponível para recebimento de mensagens de downlink. Os dispositivos de classe B podem receber mensagens em slots de downlink regulares. Os dispositivos de classe C podem receber mensagens de downlink a qualquer momento. Para acessar mais informações sobre classes de dispositivos, consulte [Classes de dispositivos](lorawan-manage-end-devices.md#lorawan-device-classes).

O seguinte mostra como as mensagens são colocadas em fila e enviadas para seus dispositivos de classe A.

1. O AWS IoT Core for LoRaWAN armazena em buffer a mensagem de downlink que você adicionou à fila com a porta do quadro, os dados da carga e os parâmetros do modo de reconhecimento especificados com o console do AWS IoTou a API do AWS IoT Wireless.

1. O dispositivo LoRaWAN envia uma mensagem de uplink indicando que ele está on-line e pode começar a receber mensagens de downlink.

1. Caso você tenha adicionado mais de uma mensagem de downlink à fila, o AWS IoT Core for LoRaWAN envia a primeira mensagem de downlink na fila para o seu dispositivo com o sinalizador de reconhecimento (ACK) definido.

1. Seu dispositivo envia uma mensagem de uplink para o AWS IoT Core for LoRaWAN imediatamente ou permanece inativo até a próxima mensagem de uplink e inclui o sinalizador ACK na mensagem.

1. Quando o AWS IoT Core for LoRaWAN recebe a mensagem de uplink com o sinalizador ACK, ele retira a mensagem de downlink da fila, indicando que o seu dispositivo recebeu a mensagem de downlink com êxito. Se o sinalizador ACK estiver ausente da mensagem de uplink após três verificações, a mensagem será descartada.

## Executar operações de fila de downlink com o console
<a name="lorawan-downlink-queue-console"></a>

É possível usar o Console de gerenciamento da AWS para enfileirar mensagens de downlink e retirar mensagens individuais, ou toda a fila, conforme necessário. Com dispositivos de classe A, após um uplink ser recebido do dispositivo para indicar que ele está on-line, as mensagens em fila são enviadas para o dispositivo. Depois que a mensagem for enviada, ela será automaticamente removida da fila.

**Colocar mensagens de downlink em fila**  
Para criar uma fila de mensagens de downlink

1. Acesse o [hub Dispositivos do console do AWS IoT](https://console.aws.amazon.com/iot/home#/wireless/devices) e selecione o dispositivo para o qual deseja enfileirar mensagens de downlink.

1. Na seção **Mensagens de downlink** da página de detalhes do dispositivo, selecione **Enfileirar mensagens de downlink**.

1. Especifique os parâmetros a seguir para configurar sua mensagem de downlink:
   + **FPort**: selecione a porta do quadro usada pelo dispositivo para comunicação como o AWS IoT Core for LoRaWAN.
   + **Carga**: especifique a mensagem de carga que deseja enviar para o seu dispositivo. O tamanho máximo da carga é de 242 bytes. Se a taxa de dados adaptativa (ADR) estiver ativada, o AWS IoT Core for LoRaWAN a utiliza para escolher a taxa de dados ideal para o tamanho da carga. É possível otimizar ainda mais a taxa de dados conforme necessário.
   + **Modo de reconhecimento**: confirme se o dispositivo recebeu a mensagem de downlink. Se uma mensagem exigir esse modo, você verá uma mensagem de uplink com o sinalizador ACK no seu fluxo de dados e a mensagem será retirada da fila.

1. Para adicionar sua mensagem de downlink à fila, selecione **Enviar**.

Sua mensagem de downlink foi adicionada à fila. Caso não veja sua mensagem, ou se receber uma mensagem de erro, você pode solucionar o erro conforme descrito em [Solucionar erros na fila de mensagens de downlink](#lorawan-downlink-queue-troubleshoot). 

**nota**  
Depois que sua mensagem de downlink for adicionada à fila, não será mais possível editar os parâmetros **FPort**, **Carga** e **Modo de reconhecimento**. Para enviar uma mensagem de downlink com valores diferentes para esses parâmetros, é possível excluir essa mensagem e enfileirar uma nova mensagem de downlink com os valores de parâmetros atualizados.

A fila lista as mensagens de downlink adicionadas. Para visualizar a carga das mensagens de uplink e downlink trocadas entre seus dispositivos e o AWS IoT Core for LoRaWAN, use o analisador de rede. Para ter mais informações, consulte [Monitorar sua frota de recursos sem fio em tempo real usando o analisador de rede](network-analyzer-overview.md).

**Listar fila de mensagens de downlink**  
A mensagem de downlink criada por você será adicionada à fila. Cada mensagem de downlink subsequente será adicionada à fila após essa mensagem. Você pode visualizar uma lista de mensagens de downlink na seção **Mensagens de downlink** da página de detalhes do dispositivo. Depois que um uplink for recebido, as mensagens serão enviadas para o dispositivo. Depois que uma mensagem de downlink for recebida pelo dispositivo, ela será removida da fila. A mensagem seguinte, então, sobe na fila para ser enviada ao seu dispositivo.

**Excluir mensagens de downlink individuais ou limpar toda a fila**  
Cada mensagem de downlink é retirada da fila automaticamente depois de ser enviada ao seu dispositivo. Também é possível excluir mensagens individuais ou remover toda a fila de downlink. Essas ações são irreversíveis.
+ Caso localize mensagens na fila que não deseje enviar, selecione as mensagens e selecione **Excluir**.
+ Se não quiser enviar nenhuma mensagem da fila para o dispositivo, é possível remover toda a fila selecionando **Limpar fila de downlink**.

## Executar operações de fila de downlink com a API
<a name="lorawan-downlink-queue-api"></a>

É possível usar a API do AWS IoT Wireless para enfileirar mensagens de downlink e retirar mensagens individuais, ou toda a fila, conforme necessário.

**Colocar mensagens de downlink em fila**  
Para criar uma fila de mensagens de downlink, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) ou o comando [cli/latest/reference/iotwireless/send-data-to-wireless-device.html](cli/latest/reference/iotwireless/send-data-to-wireless-device.html) da CLI.

```
aws iotwireless send-data-to-wireless-device \
    --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \
    --transmit-mode "1" \
    --payload-data "SGVsbG8gVG8gRGV2c2lt" \
    --wireless-metadata LoRaWAN={FPort=1}
```

Executando o comando, a saída gera um `MessageId` para a mensagem de downlink. Em alguns casos, mesmo que você receba o `MessageId`, os pacotes podem ser descartados. Para obter mais informações sobre como resolver o erro, consulte [Solucionar erros na fila de mensagens de downlink](#lorawan-downlink-queue-troubleshoot).

```
{
    MessageId: "6011dd36-0043d6eb-0072-0008"
}
```

**Listar mensagens de downlink na fila**  
Para listas todas as mensagens de downlink da fila, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-queued-messages.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-queued-messages.html) da CLI.

```
aws iotwireless list-queued-messages
```

Por padrão, um máximo de 10 mensagens de downlink são exibidas ao executar esse comando.

**Remover mensagens de downlink individuais ou limpar toda a fila**  
Para remover mensagens individuais da fila ou limpar a fila inteira, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteQueuedMessages.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteQueuedMessages.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-queued-messages.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-queued-messages.html) da CLI.
+ Para remover mensagens individuais, forneça o `messageID` das mensagens que deseja remover para um dispositivo sem fio, especificado pelo `wirelessDeviceId`.
+ Para limpar a fila de downlinks inteira, especifique o `messageID` como `*` para um dispositivo sem fio, especificado pelo `wirelessDeviceId`.

## Solucionar erros na fila de mensagens de downlink
<a name="lorawan-downlink-queue-troubleshoot"></a>

Aqui estão algumas objetos para verificar, se não estiver obtendo os resultados esperados:
+ 

**As mensagens de downlink não aparecem no console do AWS IoT**  
Se não estiver vendo sua mensagem de downlink na fila depois de adicioná-la conforme descrito em [Executar operações de fila de downlink com o console](#lorawan-downlink-queue-console), seu dispositivo talvez não tenha concluído um processo chamado procedimento de *ativação* ou *adesão*. Esse procedimento é realizado quando seu dispositivo é integrado ao AWS IoT Core for LoRaWAN. Para ter mais informações, consulte [Adicione a especificação do dispositivo sem fio ao AWS IoT Core for LoRaWAN usando o console](lorawan-end-devices-add.md#lorawan-end-device-spec-console).

  Após integrar seu dispositivo ao AWS IoT Core for LoRaWAN, é possível monitorá-lo para verificar se a adesão e a readesão foram bem-sucedidas usando o analisador de rede ou o Amazon CloudWatch. Para ter mais informações, consulte [Ferramentas de monitoramento](monitoring-cloudwatch.md#monitoring-tools).
+ 

**Pacotes de mensagens de downlink ausentes ao usar a API**  
Quando você usa a operação da API `SendDataToWirelessDevice`, a API retorna um único `MessageId`. Entretanto, não é possível confirmar se o dispositivo LoRaWAN recebeu a mensagem de downlink. Os pacotes de downlink podem ser descartados em casos como quando o dispositivo não concluiu o procedimento de adesão. Para acessar mais informações sobre como solucionar esse erro, consulte a seção anterior.
+ 

**Erro de ARN ausente ao enviar mensagem de downlink**  
Quando enviar uma mensagem de downlink para seu dispositivo a partir da fila, você pode receber um erro de nome do recurso da Amazon (ARN) ausente. Esse erro pode ocorrer porque o destino não foi especificado da maneira correta para o dispositivo que está recebendo a mensagem de downlink. Para solucionar esse erro, verifique os detalhes do destino do dispositivo.