

# Atualização de firmware sem fios (FUOTA) para dispositivos do AWS IoT Core for LoRaWAN
<a name="lorawan-mc-fuota-overview"></a>

Use atualizações de firmware sem fio (FUOTA) para implantar atualizações de firmware em dispositivos do AWS IoT Core for LoRaWAN.

Com o FUOTA, é possível enviar atualizações de firmware para dispositivos individuais ou para um grupo de dispositivos. Também é possível enviar atualizações de firmware para vários dispositivos criando um grupo de multicast. Primeiro, adicione os dispositivos ao grupo de multicast e, depois, envie a imagem de atualização de firmware para todos esses dispositivos. Recomendamos assinar digitalmente as imagens de firmware para que os dispositivos que recebem as imagens possam verificar se elas vêm da origem correta.

Com o FUOTA do AWS IoT Core for LoRaWAN, é possível:
+ Implantar novas imagens de firmware ou imagens delta em um único dispositivo ou em um grupo de dispositivos.
+ Verificar a autenticidade e a integridade do novo firmware depois de implantá-lo nos dispositivos.
+ Monitorar o progresso de uma implantação e depurar problemas em caso de falha na implantação.

A compatibilidade do AWS IoT Core for LoRaWAN com o FUOTA e grupos de multicast é baseada nas seguintes especificações da [LoRa Alliance](https://lora-alliance.org/about-lorawan):
+ LoRaWAN Remote Multicast Setup Specification, TS005-2.0.0
+ LoRaWAN Fragmented Data Block Transportation Specification, TS004-2.0.0
+ LoRaWAN Application Layer Clock Synchronization Specification, TS003-2.0.0

**nota**  
O AWS IoT Core for LoRaWAN executa automaticamente a sincronização de relógio em conformidade com a especificação da LoRa Alliance. Ele usa a função `AppTimeReq` para responder a hora do servidor aos dispositivos que a solicitam usando a sinalização ClockSync.

 O vídeo a seguir descreve como as tarefas de FUOTA do AWS IoT Core for LoRaWAN podem ser criadas e fornece orientações sobre o processo de adição de dispositivos à tarefa e a programação de uma tarefa FUOTA.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/0Yd6PFwL-IM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/0Yd6PFwL-IM)


**Topics**
+ [Visão geral do processo FUOTA](lorawan-fuota-mc-process.md)
+ [Criar uma tarefa FUOTA e fornecer a imagem de firmware](lorawan-fuota-create-task.md)
+ [Adicionar dispositivos e grupos de multicast a uma tarefa FUOTA e agendar uma sessão FUOTA](lorawan-fuota-add-devices.md)
+ [Monitorar e solucionar problemas do status de uma tarefa FUOTA e dos dispositivos adicionados à tarefa](lorawan-fuota-status.md)

# Visão geral do processo FUOTA
<a name="lorawan-fuota-mc-process"></a>

O seguinte diagrama exibe como o AWS IoT Core for LoRaWAN executa o processo FUOTA para os dispositivos finais. Se estiver adicionando dispositivos individuais à sua sessão FUOTA, você pode pular as etapas de criação e configuração de um grupo de multicast. É possível adicionar dispositivos diretamente a uma sessão FUOTA e, em seguida, o AWS IoT Core for LoRaWAN iniciará o processo de atualização de firmware. 

![\[Imagem que mostra como o AWS IoT Core for LoRaWAN executa o FUOTA nos dispositivos finais.\]](http://docs.aws.amazon.com/pt_br/iot-wireless/latest/developerguide/images/iot-lorawan-fuota-flow.png)


Para executar o FUOTA nos dispositivos, primeiramente crie uma imagem de firmware assinada digitalmente e configure os dispositivos e grupos multicast a serem adicionados à tarefa FUOTA. Após iniciar uma sessão FUOTA, os dispositivos finais coletam todos os fragmentos, reconstroem a imagem a partir dos fragmentos, reportam o status ao AWS IoT Core for LoRaWAN e aplicam a nova imagem de firmware.

O seguinte demonstra as diferentes etapas do processo FUOTA:

1. 

**Crie uma imagem de firmware ou imagem delta com uma assinatura digital**

   Para que o AWS IoT Core for LoRaWAN execute o FUOTA nos dispositivos LoRaWAN, é recomendável assinar digitalmente a imagem de firmware ou a imagem delta ao enviar atualizações de firmware sem fios. Os dispositivos que recebem as imagens podem, então, verificar se elas vêm da origem correta.

   Sua imagem de firmware não deve ter tamanho superior a 1 megabyte. Quanto maior o tamanho do firmware, mais tempo levará para que o processo de atualização seja concluído. Para realizar uma transferência de dados mais rápida, ou se a nova imagem for maior que 1 megabyte, use uma imagem delta, que é a parte da nova imagem que é o delta entre a nova imagem de firmware e a imagem anterior.
**nota**  
O AWS IoT Core for LoRaWAN não oferece a ferramenta de geração de assinatura digital e o sistema de gerenciamento de versão de firmware. É possível usar qualquer ferramenta de terceiros para gerar a assinatura digital para a sua imagem de firmware. Nós recomendamos usar uma ferramenta de assinatura digital, como a incorporada no [repositório ARM Mbed do GitHub](https://github.com/armmbed/mbed-os-example-lorawan-fuota), que também inclui ferramentas para gerar a imagem delta e para dispositivos usarem essa imagem.

1. 

**Identifique e configure os dispositivos para o FUOTA**

   Após identificar os dispositivos para o FUOTA, envie atualizações de firmware para dispositivos individuais ou para vários dispositivos.
   + Para enviar atualizações de firmware para vários dispositivos, crie um grupo de multicast e configure o grupo de multicast com dispositivos finais. Para ter mais informações, consulte [Crie grupos de multicast para enviar uma carga de downlink para vários dispositivos](lorawan-multicast-groups.md).
   + Para enviar atualizações de firmware para dispositivos individuais, adicione esses dispositivos à sua sessão FUOTA e, depois, execute a atualização de firmware.

1. 

**Agende uma janela de distribuição e configure a sessão de fragmentação**

   Se você criou um grupo de multicast, é possível especificar a janela de distribuição de classe B ou classe C para determinar quando os dispositivos podem receber os fragmentos do AWS IoT Core for LoRaWAN. Os dispositivos podem estar operando na classe A antes de migrarem para o modo classe B ou classe C. Também é preciso especificar a hora de início da sessão.

   Os dispositivos de classe B ou classe C são ativados na janela de distribuição especificada e passam a receber os pacotes de downlink. Dispositivos que operam no modo classe C podem consumir mais energia do que dispositivos da classe B. Para ter mais informações, consulte [Classes de dispositivos](lorawan-manage-end-devices.md#lorawan-device-classes).

1. 

**Os dispositivos finais relatam o status ao AWS IoT Core for LoRaWAN e atualizam a imagem de firmware**

   Depois que você configurar uma sessão de fragmentação, os dispositivos finais e o AWS IoT Core for LoRaWAN executam as etapas a seguir para atualizar o firmware dos dispositivos.

   1. Como os dispositivos LoRaWAN têm uma baixa taxa de dados, para iniciar o processo FUOTA, o AWS IoT Core for LoRaWAN configura uma sessão de fragmentação para fragmentar a imagem de firmware. Depois, ele envia esses fragmentos aos dispositivos finais.

   1. Depois que o AWS IoT Core for LoRaWAN enviar os fragmentos da imagem, os dispositivos finais LoRaWAN executam as seguintes tarefas.

      1. Coleta dos fragmentos e reconstrução da imagem binária a partir desses fragmentos.

      1. Verificação da assinatura digital da imagem reconstruída para autenticar a imagem e verificar se ela vem da origem correta.

      1. Comparação da versão de firmware do AWS IoT Core for LoRaWAN com a versão atual.

      1. Comunicação sobre o status das imagens fragmentadas que foram transferidas ao AWS IoT Core for LoRaWAN e, depois, aplicação da nova imagem de firmware.
**nota**  
Em alguns casos, os dispositivos finais relatam o status das imagens fragmentadas que foram transferidas para o AWS IoT Core for LoRaWAN antes de verificar a assinatura digital da imagem de firmware.

Agora que você aprendeu sobre o processo FUOTA, você pode criar sua tarefa FUOTA e adicionar dispositivos à tarefa para atualizar o firmware. Para ter mais informações, consulte [Criar uma tarefa FUOTA e fornecer a imagem de firmware](lorawan-fuota-create-task.md).

# Criar uma tarefa FUOTA e fornecer a imagem de firmware
<a name="lorawan-fuota-create-task"></a>

Para atualizar o firmware de dispositivos LoRaWAN, primeiro crie uma tarefa FUOTA e forneça a imagem de firmware assinada digitalmente que deseja usar na atualização. Em seguida, você poderá adicionar os dispositivos e grupos de multicast à tarefa e agendar uma sessão FUOTA. Quando a sessão começa, o AWS IoT Core for LoRaWAN configura uma sessão de fragmentação e os dispositivos finais coletam os fragmentos, reconstroem a imagem e aplicam o novo firmware. Para acessar informações sobre o processo FUOTA, consulte [Visão geral do processo FUOTA](lorawan-fuota-mc-process.md).

O seguinte demonstra como você pode criar uma tarefa FUOTA e carregar a imagem de firmware ou a imagem delta que você armazenará em um bucket do S3.

## Pré-requisitos
<a name="lorawan-fuota-task-prereq"></a>

Para poder executar a FUOTA, a imagem de firmware deve estar assinada digitalmente para que os dispositivos finais possam verificar a autenticidade da imagem ao aplicá-la. É possível usar qualquer ferramenta de terceiros para gerar a assinatura digital para a sua imagem de firmware. Nós recomendamos usar uma ferramenta de assinatura digital, como a incorporada no [repositório ARM Mbed do GitHub](https://github.com/armmbed/mbed-os-example-lorawan-fuota), que também inclui ferramentas para gerar a imagem delta e para dispositivos usarem essa imagem.

## Criar tarefa FUOTA e carregar a imagem de firmware com o console
<a name="lorawan-fuota-task-console"></a>

Para criar uma tarefa FUOTA e carregar sua imagem de firmware com o console, acesse a guia [Tarefas FUOTA](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) do console e, em seguida, selecione **Criar tarefa FUOTA**.

1. 

**Criar tarefa FUOTA**

   Para criar uma tarefa FUOTA, especifique as propriedades e tags da tarefa.

   1. 

**Especificar propriedades da tarefa FUOTA**  
Para especificar as propriedades da tarefa FUOTA, insira as informações a seguir relativas à tarefa FUOTA.
      + **Nome**: informe um nome exclusivo para a tarefa FUOTA. O nome só pode conter letras, números, hifens e sublinhado. Ele não pode conter espaços.
      + **Descrição**: você pode fornecer uma descrição opcional do grupo de multicast. O campo de descrição pode ter até 2.048 caracteres.
      + **RFRegion**: defina a banda de frequência da tarefa FUOTA. A banda de frequência deve corresponder àquela usada para provisionar seus dispositivos sem fio ou grupos de multicast.

   1. 

**Tags da tarefa FUOTA**  
Opcionalmente, é possível fornecer quaisquer pares de valores-chave como **Tags** para a tarefa FUOTA. Para continuar a criação da tarefa, selecione **Próximo**.

1. 

**Carregar imagem de firmware**

   Selecione o arquivo de imagem de firmware que deseja usar para atualizar o firmware dos dispositivos adicionados à tarefa FUOTA. O arquivo de imagem de firmware é armazenado em um bucket do S3. Você pode fornecer ao AWS IoT Core for LoRaWAN as permissões para acessar a imagem de firmware em seu nome. Nós recomendamos assinar digitalmente as imagens de firmware para que sua autenticidade seja verificada quando a atualização do firmware for realizada.

   1. 

**Selecione o arquivo de imagem de firmware**  
É possível carregar um novo arquivo de imagem de firmware em um bucket do S3 ou selecionar uma imagem existente que já tenha sido carregada em um bucket do S3.
**nota**  
O arquivo de imagem de firmware não deve ter tamanho superior a 1 megabyte. Quanto maior o tamanho do firmware, mais tempo levará para que o processo de atualização seja concluído.
      + Para usar uma imagem existente, selecione **Selecionar uma imagem de firmware existente**, selecione **Procurar no S3** e selecione o arquivo de imagem de firmware que deseja usar.

        O AWS IoT Core for LoRaWAN preenche o URL do S3, que é o caminho para o arquivo de imagem de firmware no bucket do S3. O formato do caminho é `s3://bucket_name/file_name`. Para visualizar o arquivo no console do [Amazon Simple Storage Service](https://console.aws.amazon.com/s3/), selecione **Exibir**.
      + Para carregar uma nova imagem de firmware.

        1. Selecione **Carregar uma nova imagem de firmware** e carregue a imagem de firmware. O arquivo de imagem não deve ser maior que 1 megabyte. 

        1. Para criar um bucket do S3 e inserir um **Nome do bucket** para armazenamento do arquivo de imagem de firmware, selecione **Criar bucket do S3**.

   1. 

**Permissões de acesso ao bucket**  
É possível criar um novo perfil de serviço ou selecionar um perfil existente para permitir que o AWS IoT Core for LoRaWAN acesse o arquivo de imagem de firmware no bucket do S3 em seu nome. Escolha **Próximo**.

      Para criar um novo perfil, informe um nome de perfil ou deixe em branco para que um nome aleatório seja gerado automaticamente. Para visualizar as permissões de política que concedem acesso ao bucket do S3, selecione **Exibir permissões de política**.

   Para acessar mais informações sobre como usar um bucket do S3 para armazenar sua imagem e conceder ao AWS IoT Core for LoRaWAN as permissões para acessá-la, consulte [Fazer upload do arquivo de firmware para um bucket do S3 e adicionar um perfil do IAM](lorawan-upload-firmware-s3bucket.md). 

1. 

**Examinar e criar**

   Para criar uma tarefa FUOTA, examine a tarefa FUOTA e os detalhes de configuração especificados e, em seguida, selecione **Criar tarefa**.

## Criar tarefa FUOTA e carregar a imagem de firmware com a API
<a name="lorawan-fuota-task-api"></a>

Para criar uma tarefa FUOTA e especificar seu arquivo de imagem de firmware com a API, use a operação da API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html) da CLI. É possível fornecer um arquivo `input.json` como entrada para o comando `create-fuota-task`. Quando usar a API ou a CLI, é preciso que o arquivo de imagem de firmware fornecido como entrada já esteja carregado em um bucket do S3. Você também especifica o perfil do IAM que dá ao AWS IoT Core for LoRaWAN acesso à imagem de firmware no bucket do S3.

```
aws iotwireless create-fuota-task \
    --cli-input-json file://input.json
```

onde:

**Conteúdo de input.json**

```
{   
   "Description": "FUOTA task to update firmware of devices in multicast group.",
   "FirmwareUpdateImage": "S3:/firmware_bucket/firmware_image
   "FirmwareUpdateRole": "arn:aws:iam::123456789012:role/service-role/ACF1zBEI"
   "LoRaWAN": { 
      "RfRegion": "US915"
   },
   "Name": "FUOTA_Task_MC"  
}
```

Após criar sua tarefa FUOTA, é possível usar as seguintes operações de API ou comandos da CLI para atualizar, excluir ou obter informações sobre sua tarefa FUOTA.
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html) 

## Próximas etapas
<a name="lorawan-fuota-next-steps"></a>

Depois de ter criado uma tarefa FUOTA e fornecido a imagem de firmware, você pode adicionar dispositivos à tarefa para atualizar o firmware. É possível adicionar dispositivos individuais ou grupos de multicast à tarefa. Para ter mais informações, consulte [Adicionar dispositivos e grupos de multicast a uma tarefa FUOTA e agendar uma sessão FUOTA](lorawan-fuota-add-devices.md).

# Adicionar dispositivos e grupos de multicast a uma tarefa FUOTA e agendar uma sessão FUOTA
<a name="lorawan-fuota-add-devices"></a>

Depois de ter criado uma tarefa FUOTA, você pode adicionar dispositivos à tarefa para atualizar o firmware. Depois que os dispositivos forem adicionados com êxito à tarefa FUOTA, você poderá agendar uma sessão FUOTA para atualizar o firmware do dispositivo. 
+ Se você tiver um número pequeno de dispositivos, poderá adicioná-los diretamente à tarefa FUOTA.
+ Se você tiver um número grande de dispositivos para os quais quer atualizar o firmware, é possível adicionar esses dispositivos aos seus grupos de multicast e, depois, adicionar os grupos de multicast à tarefa FUOTA. Para acessar informações sobre a criação e uso de grupos de multicast, consulte [Crie grupos de multicast para enviar uma carga de downlink para vários dispositivos](lorawan-multicast-groups.md).

**nota**  
É possível adicionar dispositivos individuais ou grupos de multicast à tarefa FUOTA. Não é possível adicionar dispositivos e grupos de multicast à tarefa.

Depois que tiver adicionado os dispositivos ou grupos de multicast, você poderá iniciar uma sessão de atualização de firmware. O AWS IoT Core for LoRaWAN coleta a imagem de firmware, fragmenta as imagens e, depois, armazena os fragmentos em um formato criptografado. Os dispositivos finais coletam os fragmentos e aplicam a nova imagem de firmware. O tempo que leva para a atualização de firmware ser concluída depende do tamanho da imagem e de como as imagens foram fragmentadas. Quando a atualização de firmware for concluída, os fragmentos criptografados da imagem de firmware armazenados pelo AWS IoT Core for LoRaWAN serão excluídos. Você ainda poderá encontrar a imagem de firmware no bucket do S3.

## Pré-requisitos
<a name="lorawan-fuota-devices-prereq"></a>

Antes de adicionar dispositivos ou grupos de multicast à tarefa FUOTA, realize o seguinte.
+ Você já precisa ter criado a tarefa FUOTA e fornecido a imagem de firmware. Para ter mais informações, consulte [Criar uma tarefa FUOTA e fornecer a imagem de firmware](lorawan-fuota-create-task.md).
+ Forneça os dispositivos sem fio para os quais você deseja atualizar o firmware. Para acessar informações sobre integrar seu dispositivo, consulte [Integrar os dispositivos ao AWS IoT Core for LoRaWAN](lorawan-onboard-end-devices.md).
+ Para atualizar o firmware de vários dispositivos, é possível adicioná-los a um grupo de multicast. Para ter mais informações, consulte [Crie grupos de multicast para enviar uma carga de downlink para vários dispositivos](lorawan-multicast-groups.md).
+ Quando você integrar os dispositivos ao AWS IoT Core for LoRaWAN, especifique o parâmetro de configuração FUOTA `FPorts`. Se estiver usando um dispositivo LoRaWAN v1.0.x, também é preciso deve especificar a `GenAppKey`. Para obter mais informações sobre os parâmetros de configuração do FUOTA, consulte [Preparar dispositivos para configuração multicast e FUOTA](lorawan-prepare-devices-multicast.md).

## Adicionar dispositivos a uma tarefa FUOTA e agendar uma sessão FUOTA com o console
<a name="lorawan-fuota-devices-console"></a>

Para adicionar dispositivos ou grupos de multicast e agendar uma sessão FUOTA com o console, acesse a guia [Tarefas FUOTA](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) do console. Depois, selecione a tarefa FUOTA à qual deseja adicionar dispositivos e execute a atualização de firmware.

**Adicionar dispositivos e grupos de multicast**

1. É possível adicionar dispositivos individuais ou grupos de multicast à sua tarefa FUOTA. Entretanto, não é possível adicionar dispositivos individuais e grupos de multicast à mesma tarefa FUOTA. Para adicionar dispositivos com o console, faça o seguinte.

   1. Nos **Detalhes da tarefa FUOTA**, selecione **Adicionar dispositivo**.

   1. Selecione a banda de frequência ou a **RFRegion** dos dispositivos adicionados à tarefa. Esse valor deve corresponder à **RFRegion** escolhida para a tarefa FUOTA.

   1. Escolha se deseja adicionar dispositivos individuais ou grupos de multicast à tarefa.
      + Para adicionar dispositivos individuais, selecione **Adicionar dispositivos individuais** e informe o ID do dispositivo de cada dispositivo que deseja adicionar à tarefa FUOTA.
      + Para adicionar grupos de multicast, selecione **Adicionar grupos de multicast** e adicione os grupos de multicast à tarefa. É possível filtrar os grupos de multicast que você deseja adicionar à tarefa usando o perfil ou as tags do dispositivo. Ao filtrar por perfil de dispositivo, é possível escolher grupos de multicast com dispositivos que tenham um perfil com **Compatível com Classe B** ou **Compatível com Classe C** habilitado.

1. 

**Agendar uma sessão FUOTA**

   Depois que seus dispositivos ou grupos de multicast forem adicionados com êxito, você poderá agendar uma sessão FUOTA. Para agendar uma sessão, realize o seguinte.

   1. Selecione a tarefa FUOTA para a qual você deseja atualizar o firmware do dispositivo e, depois, selecione **Agendar sessão FUOTA**.

   1. Especifique uma **Data de início** e uma **Hora de início** para a sessão FUOTA. Certifique-se de que a hora de início esteja 30 minutos ou mais à frente do horário presente.

## Adicionar dispositivos a uma tarefa FUOTA e agendar uma sessão FUOTA com a API
<a name="lorawan-fuota-devices-api"></a>

É possível usar a API do AWS IoT Wireless ou a CLI para adicionar dispositivos sem fio ou grupos de multicast à sua tarefa FUOTA. Depois, você pode agendar uma sessão FUOTA. 

1. 

**Adicionar dispositivos e grupos de multicast**

   É possível associar dispositivos sem fio ou grupos de multicast a uma tarefa FUOTA.
   + Para associar dispositivos individuais a uma tarefa FUOTA, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_AssociateWirelessDeviceWithFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_AssociateWirelessDeviceWithFuotaTask.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/associate-wireless-device-with-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/associate-wireless-device-with-fuota-task.html) da CLI e forneça o `WirelessDeviceID` como entrada.

     ```
     aws iotwireless associate-wireless-device-with-fuota-task \
         --id "01a23cde-5678-4a5b-ab1d-33456808ecb2"
         --wireless-device-id "ab0c23d3-b001-45ef-6a01-2bc3de4f5333"
     ```
   + Para associar grupos de multicast a uma tarefa FUOTA, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_AssociateMulticastGroupWithFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_AssociateMulticastGroupWithFuotaTask.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/associate-multicast-group-with-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/associate-multicast-group-with-fuota-task.html) da CLI e forneça o `MulticastGroupID` como entrada.

     ```
     aws iotwireless associate-multicast-group-with-FUOTA-task \
         --id 01a23cde-5678-4a5b-ab1d-33456808ecb2"
         --multicast-group-id
     ```

   Após associar os dispositivos sem fio ou grupo de multicast a uma tarefa FUOTA, use as operações de API ou comandos de CLI a seguir para listar os dispositivos ou grupos de multicast ou para desassociá-los da tarefa.
   + [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DisassociateWirelessDeviceFromFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DisassociateWirelessDeviceFromFuotaTask.html) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/disassociate-wireless-device-from-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/disassociate-wireless-device-from-fuota-task.html) 
   + [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DisassociateMulticastGroupFromFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DisassociateMulticastGroupFromFuotaTask.html) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/disassociate-multicast-group-from-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/disassociate-multicast-group-from-fuota-task.html) 
   + [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessDevices.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessDevices.html) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-multicast-group.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-multicast-group.html) 
   + [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListMulticastGroups.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListMulticastGroups.html) ou [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-multicast-groups.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-multicast-groups.html) 
**nota**  
A API:  
`ListWirelessDevices` pode listar dispositivos sem fio em geral, e dispositivos associados a um grupo de multicast, quando `MulticastGroupID` é usado como filtro. A API lista os dispositivos sem fio que estão associados a uma tarefa FUOTA quando o `FuotaTaskID` é usado como filtro.
`ListMulticastGroups` pode listar grupos de multicast em geral, e grupos de multicast associados a uma tarefa FUOTA, quando o `FuotaTaskID` é usado como filtro.

1. 

**Agendar uma sessão FUOTA**

   Depois que os dispositivos ou grupos de multicast forem adicionados com êxito à tarefa FUOTA, você poderá iniciar uma sessão FUOTA para atualizar o firmware do dispositivo. A nova hora de início do evento deve estar 30 minutos ou mais à frente do horário presente. Para agendar uma sessão FUOTA usando a API ou a CLI, use a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_StartFuotaTask.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/start-fuota-task.html) da CLI.

   Após iniciar uma sessão FUOTA, não será mais possível adicionar dispositivos ou grupos de multicast à tarefa. É possível obter informações sobre o status de uma sessão FUOTA usando a operação de API [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GettFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GettFuotaTask.html) ou o comando [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html) da CLI.

# Monitorar e solucionar problemas do status de uma tarefa FUOTA e dos dispositivos adicionados à tarefa
<a name="lorawan-fuota-status"></a>

Após provisionar os dispositivos sem fio e criar um grupo de multicast que você queira usar, é possível iniciar uma sessão FUOTA realizando as seguintes etapas.

## Status da tarefa FUOTA
<a name="lorawan-fuota-task-status"></a>

Sua tarefa FUOTA pode ter uma das mensagens de status a seguir exibidas no Console de gerenciamento da AWS. 
+ 

**Pendente**  
Esse status indica que uma tarefa FUOTA foi criada por você, mas ela ainda não tem uma sessão de atualização de firmware. Essa mensagem de status será exibida quando uma tarefa for criada. Durante esse período, é possível atualizar sua tarefa FUOTA e associar ou desassociar dispositivos ou grupos de multicast à tarefa. Após o status mudar de **Pendente**, dispositivos adicionais não poderão ser adicionados à tarefa.
+ 

**Sessão FUOTA em espera**  
Após os dispositivos serem adicionados com êxito à tarefa FUOTA, quando a tarefa tiver uma sessão de atualização de firmware agendada, essa mensagem de status será exibida. Durante esse período, não é possível atualizar ou adicionar dispositivos à sessão FUOTA. Se você cancelar a sessão FUOTA, o status do grupo será alterado para **Pendente**. 
+ 

**Em sessão FUOTA**  
Quando a sessão FUOTA começar, essa mensagem de status será exibida. A sessão de fragmentação terá início e os dispositivos finais coletarão os fragmentos, reconstruirão a imagem de firmware, compararão a nova versão do firmware com a versão original e aplicarão a nova imagem.
+ 

**FUOTA concluído**  
Após os dispositivos finais informarem o AWS IoT Core for LoRaWAN que a nova imagem de firmware foi aplicada, ou com a expiração da sessão, a sessão FUOTA será marcada como concluída e esse status será exibido.

  Esse status também será exibido em qualquer um dos casos a seguir, portanto, verifique se a atualização de firmware foi aplicada corretamente aos dispositivos.
  + Quando o status da tarefa FUOTA é **Sessão FUOTA em espera** e há um erro no bucket do S3, como o link para o arquivo de imagem no bucket do S3 estar incorreto ou o AWS IoT Core for LoRaWAN não ter permissões suficientes para acessar o arquivo no bucket.
  + Quando o status da tarefa FUOTA é **Sessão FUOTA em espera** e há uma solicitação para iniciar uma sessão FUOTA, mas uma resposta não é recebida a partir dos dispositivos ou grupos de multicast na tarefa FUOTA.
  + Quando o status da tarefa FUOTA é **Em sessão FUOTA** e os dispositivos ou grupos de multicast não enviaram nenhum fragmento por um determinado período de tempo, o que resulta em esgotamento do tempo limite da sessão.
+ 

**Espera de exclusão**  
Se você excluir uma tarefa FUOTA que está em algum dos outros estados, esse status será exibido. Uma ação de exclusão é permanente e não pode ser desfeita. Essa ação pode levar tempo e o status da tarefa será **Espera de exclusão** até a tarefa FUOTA ser excluída. Depois que uma tarefa FUOTA entrar nesse estado, ela não poderá mudar para um dos outros estados.

## Status de dispositivos em uma tarefa FUOTA
<a name="lorawan-fuota-device-status"></a>

Os dispositivos em uma tarefa FUOTA podem ter uma das mensagens de status a seguir exibidas no Console de gerenciamento da AWS. É possível passar o mouse sobre cada mensagem de status para acessar mais informações sobre o que ela indica.
+ 

**Inicial**  
Quando for o horário de início da sessão FUOTA, o AWS IoT Core for LoRaWAN verifica se o dispositivo tem o pacote compatível para a atualização de firmware. Caso o dispositivo tenha o pacote compatível, a sessão FUOTA do dispositivo será iniciada. A imagem de firmware está fragmentada e os fragmentos são enviados para o dispositivo. Quando esse status é exibido, isso indica que a sessão FUOTA do dispositivo ainda não foi começou.
+ 

**Pacote incompatível**  
Caso o dispositivo não tenha o pacote FUOTA compatível, esse status será exibido. Se o pacote de atualização de firmware não for compatível, a sessão FUOTA do dispositivo não poderá ser iniciada. Para solucionar esse erro, verifique se o firmware do dispositivo pode receber atualizações de firmware usando o FUOTA.
+ 

**Algoritmo de fragmentação incompatível**  
No início da sessão FUOTA, o AWS IoT Core for LoRaWAN configura uma sessão de fragmentação para o dispositivo. Se esse status for exibido, o tipo de algoritmo de fragmentação usado não pode ser aplicado à atualização de firmware do dispositivo. O erro ocorre porque o dispositivo não tem o pacote FUOTA compatível. Para solucionar esse erro, verifique se o firmware do dispositivo pode receber atualizações de firmware usando o FUOTA.
+ 

**Não há memória suficiente**  
Após o AWS IoT Core for LoRaWAN enviar os fragmentos da imagem, os dispositivos finais coletam os fragmentos da imagem e reconstroem a imagem binária a partir desses fragmentos. Esse status é exibido quando o seu dispositivo não tem memória suficiente para juntar os fragmentos de entrada da imagem de firmware, o que pode resultar no encerramento prematuro da sessão de atualização de firmware. Para solucionar o erro, verifique se o hardware do dispositivo é capaz de receber essa atualização. Se o dispositivo não for capaz de receber essa atualização, use uma imagem delta para atualizar o firmware.
+ 

**Índice de fragmentação incompatível**  
O índice de fragmentação identifica uma das quatro sessões de fragmentação simultaneamente possíveis. Caso o dispositivo não seja compatível com o valor do índice de fragmentação indicado, esse status será exibido. Para solucionar esse erro, execute um ou mais dos seguintes procedimentos. 
  + Inicie uma tarefa FUOTA nova para o dispositivo. 
  + Se o erro persistir, mude do modo unicast para o modo multicast.
  + Se o erro ainda não for resolvido, verifique o firmware do seu dispositivo.
+ 

**Erro de memória**  
Esse status indica que o dispositivo apresentou um erro de memória ao receber os fragmentos recebidos do AWS IoT Core for LoRaWAN. Se esse erro ocorrer, pode ser que o dispositivo não seja capaz de receber essa atualização. Para solucionar o erro, verifique se o hardware do dispositivo é capaz de receber essa atualização. Se preciso, utilize uma imagem delta para atualizar o firmware do dispositivo.
+ 

**Descritor incorreto**  
O dispositivo é incompatível com o descritor indicado. O descritor é um campo que descreve o arquivo a ser transportado na sessão de fragmentação. Se você receber esse erro, entre em contato com o [AWS Support Center](https://console.aws.amazon.com/support/home#/).
+ 

**Repetição da contagem de sessão**  
Esse status indica que o dispositivo já usou essa contagem de sessões anteriormente. Para solucionar o erro, inicie uma nova tarefa FUOTA para o dispositivo.
+ 

**Fragmentos ausentes**  
Conforme o dispositivo coleta os fragmentos da imagem do AWS IoT Core for LoRaWAN, ele reconstrói a nova imagem de firmware a partir dos fragmentos codificados e independentes. Se o dispositivo não tiver recebido todos os fragmentos, a nova imagem não poderá ser reconstruída e esse status será exibido. Para solucionar o erro, inicie uma nova tarefa FUOTA para o dispositivo.
+ 

**Erro de MIC**  
Quando o seu dispositivo reconstrói a nova imagem de firmware a partir dos fragmentos coletados, ele executa um MIC (Verificação de Integridade da Mensagem) para verificar a autenticidade da imagem e se ela vem da origem correta. Caso o dispositivo detecte uma incompatibilidade no MIC após a remontagem dos fragmentos, esse status será exibido. Para solucionar o erro, inicie uma nova tarefa FUOTA para o dispositivo.
+ 

**Com êxito**  
A sessão FUOTA do dispositivo foi obteve êxito.
**nota**  
Embora essa mensagem de status indique que os dispositivos reconstruíram a imagem a partir dos fragmentos e que ela foi verificada, o firmware do dispositivo pode não ter sido atualizado quando o dispositivo relata o status para o AWS IoT Core for LoRaWAN. Verifique se o firmware do seu dispositivo foi atualizado.

## Próximas etapas
<a name="lorawan-fuota-device-next"></a>

Você aprendeu sobre os diferentes status da tarefa FUOTA e seus dispositivos e como pode solucionar qualquer problema. Para acessar mais informações sobre cada um desses status, consulte a [Especificação de transporte de blocos de dados fragmentados LoRaWAN, TS004-1.0.0](https://lora-alliance.org/wp-content/uploads/2020/11/fragmented_data_block_transport_v1.0.0.pdf).