

# Actualizaciones inalámbricas (FUOTA) de firmware para dispositivos AWS IoT Core para LoRaWAN
<a name="lorawan-mc-fuota-overview"></a>

Utilice las actualizaciones inalámbricas (FUOTA) de firmware para desplegar actualizaciones de firmware en los dispositivos de AWS IoT Core para LoRaWAN.

FUOTA le permite enviar actualizaciones de firmware a dispositivos individuales o a un grupo de dispositivos. También puede enviar actualizaciones de firmware a varios dispositivos mediante la creación de un grupo de multidifusión. En primer lugar, agregue sus dispositivos al grupo de multidifusión y, a continuación, envíe la imagen de actualización del firmware a todos esos dispositivos. Le recomendamos que firme digitalmente las imágenes del firmware para que los dispositivos que las reciban puedan comprobar que proceden de la fuente correcta.

Con las FUOTA de AWS IoT Core para LoRaWAN puede hacer lo siguiente:
+ Desplegar nuevas imágenes de firmware en un único dispositivo, grupo de dispositivos o toda una flota.
+ Verificar la autenticidad y la integridad del nuevo firmware una vez desplegado en los dispositivos.
+ Supervisar el progreso de una implementación y depurar los problemas en caso de que una implementación falle.

La compatibilidad de AWS IoT Core para LoRaWAN para FUOTA y los grupos de multidifusión se basa en las siguientes especificaciones de [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**  
AWS IoT Core para LoRaWAN realiza automáticamente la sincronización del reloj de acuerdo con la especificación de LoRa Alliance. Utiliza la característica `AppTimeReq` para responder a la hora del servidor a los dispositivos que la solicitan mediante la señalización ClockSync.

 El siguiente vídeo describe cómo se pueden crear las tareas FUOTA de AWS IoT Core para LoRaWAN, y explica el proceso para añadir dispositivos a la tarea y programar una tarea 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**
+ [

# Información general sobre el proceso de FUOTA
](lorawan-fuota-mc-process.md)
+ [

# Crear la tarea de FUOTA y proporcionar una imagen de firmware
](lorawan-fuota-create-task.md)
+ [

# Agregar dispositivos y grupos de multidifusión a una tarea de FUOTA y programar una sesión FUOTA
](lorawan-fuota-add-devices.md)
+ [

# Supervisar y solucionar los problemas del estado de su tarea de FUOTA y de los dispositivos agregados a la tarea
](lorawan-fuota-status.md)

# Información general sobre el proceso de FUOTA
<a name="lorawan-fuota-mc-process"></a>

El siguiente diagrama muestra cómo AWS IoT Core para LoRaWAN realiza el proceso de FUOTA para sus dispositivos finales. Si va a agregar dispositivos individuales a su sesión FUOTA, puede saltarse los pasos necesarios para crear y configurar su grupo de multidifusión. Puede agregar sus dispositivos directamente a una sesión FUOTA y, a continuación, AWS IoT Core para LoRaWAN iniciará el proceso de actualización del firmware. 

![\[Imagen en la que se ve lo que hace AWS IoT Core para LoRaWAN para llevar a cabo una actualización FUOTA de los dispositivos finales\]](http://docs.aws.amazon.com/es_es/iot-wireless/latest/developerguide/images/iot-lorawan-fuota-flow.png)


Para realizar las actualizaciones FUOTA de sus dispositivos, cree primero su imagen de firmware firmada digitalmente y configure los dispositivos y los grupos de multidifusión que desee agregar a su tarea de FUOTA. Tras iniciar una sesión FUOTA, los dispositivos finales recopilan todos los fragmentos, reconstruyen la imagen a partir de ellos, informan del estado a AWS IoT Core para LoRaWAN y, entonces, aplican la nueva imagen de firmware.

A continuación se ilustran los diferentes pasos del proceso de FUOTA:

1. 

**Crear una imagen de firmware o una imagen delta con una firma digital**

   Para que AWS IoT Core para LoRaWAN realice actualizaciones FUOTA para sus dispositivos LoRaWAN, le recomendamos que firme digitalmente la imagen del firmware o la imagen delta cuando envíe las actualizaciones de firmware de forma inalámbrica. Los dispositivos que reciben las imágenes podrán así verificar que provienen de la fuente correcta.

   La imagen de firmware no debe tener un tamaño superior a un megabyte. Cuanto mayor sea el tamaño del firmware, más tiempo tardará en completarse el proceso de actualización. Para una transferencia de datos más rápida o si la nueva imagen pesa más de un megabyte, utilice una imagen delta, que es la parte de la nueva imagen que es el delta entre la nueva imagen de firmware y la imagen anterior.
**nota**  
AWS IoT Core para LoRaWAN no incluye la herramienta de generación de firmas digitales ni el sistema de administración de versiones de firmware. Puede utilizar cualquier herramienta de terceros para generar la firma digital de la imagen de firmware. Le recomendamos que utilice una herramienta de firma digital como la que está integrada en el [repositorio GitHub de ARM Mbed](https://github.com/armmbed/mbed-os-example-lorawan-fuota), que también incluye herramientas para generar la imagen delta y para que los dispositivos usen esa imagen.

1. 

**Identificar y configurar los dispositivos para FUOTA**

   Tras identificar los dispositivos de FUOTA, envíe las actualizaciones de firmware a uno o varios dispositivos.
   + Para enviar las actualizaciones de firmware a varios dispositivos, cree un grupo de multidifusión y configure el grupo de multidifusión con los dispositivos finales. Para obtener más información, consulte [Crear grupos de multidifusión para enviar una carga de enlace descendente a varios dispositivos](lorawan-multicast-groups.md).
   + Para enviar actualizaciones de firmware a dispositivos individuales, agregue esos dispositivos a su sesión FUOTA y, a continuación, realice la actualización del firmware.

1. 

**Programar una ventana de distribución y configurar una sesión de fragmentación**

   Si ha creado un grupo de multidifusión, puede especificar la ventana de distribución de clase B o clase C para determinar desde qué momento los dispositivos pueden recibir los fragmentos de AWS IoT Core para LoRaWAN. Es posible que sus dispositivos estén funcionando en clase A antes de cambiar al modo de clase B o clase C. También debe especificar la hora de inicio de la sesión.

   Los dispositivos de clase B o clase C se activan en la ventana de distribución especificada y comienzan a recibir los paquetes de enlace descendente. Los dispositivos que funcionan en modo de clase C pueden consumir más energía que los dispositivos de clase B. Para obtener más información, consulte [Clases de dispositivos](lorawan-manage-end-devices.md#lorawan-device-classes).

1. 

**Los dispositivos finales notifican su estado a AWS IoT Core para LoRaWAN y actualizan la imagen del firmware**

   Después de configurar una sesión de fragmentación, sus dispositivos finales y AWS IoT Core para LoRaWAN llevan a cabo los siguientes pasos para actualizar el firmware de sus dispositivos.

   1. Como los dispositivos LoRaWAN tienen una velocidad de datos baja, para iniciar el proceso de FUOTA, AWS IoT Core para LoRaWAN configura una sesión de fragmentación para fragmentar la imagen del firmware. Luego envía estos fragmentos a los dispositivos finales.

   1. Después de que AWS IoT Core para LoRaWAN envíe los fragmentos de imagen, sus dispositivos finales LoRaWAN realizan las siguientes tareas.

      1. Reúna los fragmentos y, a continuación, reconstruya la imagen binaria a partir de estos fragmentos.

      1. Compruebe la firma digital de la imagen reconstruida para autenticarla y comprobar que proviene de la fuente correcta.

      1. Compare la versión del firmware de AWS IoT Core para LoRaWAN con la versión actual.

      1. Informe del estado de las imágenes fragmentadas que se transfirieron a AWS IoT Core para LoRaWAN y, a continuación, aplique la nueva imagen de firmware.
**nota**  
En algunos casos, los dispositivos finales informan del estado de las imágenes fragmentadas que se transfirieron a AWS IoT Core para LoRaWAN antes de comprobar la firma digital de la imagen del firmware.

Ahora que ha aprendido el proceso de FUOTA, puede crear su tarea de FUOTA y agregar dispositivos a la tarea para actualizar su firmware. Para obtener más información, consulte [Crear la tarea de FUOTA y proporcionar una imagen de firmware](lorawan-fuota-create-task.md).

# Crear la tarea de FUOTA y proporcionar una imagen de firmware
<a name="lorawan-fuota-create-task"></a>

Para actualizar el firmware de sus dispositivos LoRaWAN, primero cree una tarea de FUOTA y proporcione la imagen de firmware firmada digitalmente que desee utilizar para la actualización. A continuación, puede agregar sus dispositivos y grupos de multidifusión a la tarea y programar una sesión FUOTA. Cuando comience la sesión, AWS IoT Core para LoRaWAN configura una sesión de fragmentación y sus dispositivos finales recopilarán los fragmentos, reconstruirán la imagen y aplicarán el nuevo firmware. Para obtener información sobre el proceso de FUOTA, consulte [Información general sobre el proceso de FUOTA](lorawan-fuota-mc-process.md).

A continuación, se muestra cómo crear una tarea de FUOTA y subir la imagen del firmware o la imagen delta que se almacenará en un bucket de S3.

## Requisitos previos
<a name="lorawan-fuota-task-prereq"></a>

Para poder realizar las actualizaciones FUOTA, la imagen del firmware debe estar firmada digitalmente para que los dispositivos finales puedan comprobar la autenticidad de la imagen al aplicarla. Puede utilizar cualquier herramienta de terceros para generar la firma digital de la imagen de firmware. Le recomendamos que utilice una herramienta de firma digital como la que está integrada en el [repositorio GitHub de ARM Mbed](https://github.com/armmbed/mbed-os-example-lorawan-fuota), que también incluye herramientas para generar la imagen delta y para que los dispositivos usen esa imagen.

## Crear la tarea de FUOTA y subir la imagen del firmware mediante la consola
<a name="lorawan-fuota-task-console"></a>

Para crear una tarea de FUOTA y subir la imagen de firmware mediante la consola, vaya a la pestaña [Tareas de FUOTA](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) de la consola y, a continuación, seleccione **Crear tarea de FUOTA**.

1. 

**Crear tarea de FUOTA**

   Para crear una tarea de FUOTA, especifique las propiedades y etiquetas de la tarea.

   1. 

**Especificar las propiedades de la tarea de FUOTA**  
Para especificar las propiedades de la tarea de FUOTA, introduzca la siguiente información para la tarea de FUOTA.
      + **Nombre**: introduzca un nombre único para su tarea de FUOTA. El nombre solo puede contener letras, números y guiones. No puede contener espacios.
      + **Descripción**: puede proporcionar una descripción opcional para su grupo de multidifusión. La descripción puede tener una longitud máxima de 2048 caracteres.
      + **RFRegion**: establece la banda de frecuencia para tu tarea de FUOTA. La banda de frecuencia debe coincidir con la que utilizó para aprovisionar sus dispositivos inalámbricos o grupos de multidifusión.

   1. 

**Etiquetas para la tarea de FUOTA**  
Si lo desea, puede proporcionar cualquier par clave-valor como **Etiquetas** para su tarea de FUOTA. Elija **Siguiente** para seguir creando la imagen.

1. 

**Subir una imagen de firmware**

   Elija el archivo de imagen de firmware que desee utilizar para actualizar el firmware de los dispositivos que agrega a la tarea de FUOTA. El archivo de imagen del firmware se almacena en un bucket de S3. Puede proporcionar a AWS IoT Core para LoRaWAN los permisos para acceder a la imagen del firmware en su nombre. Le recomendamos que firme digitalmente las imágenes del firmware para comprobar su autenticidad cuando se realice la actualización del firmware.

   1. 

**Elegir un archivo de imagen de firmware**  
Puede subir un nuevo archivo de imagen de firmware en un bucket de S3 o elegir una imagen existente que ya se haya subido en un bucket de S3.
**nota**  
El archivo de imagen del firmware no debe tener un tamaño superior a un megabyte. Cuanto mayor sea el tamaño del firmware, más tiempo tardará en completarse el proceso de actualización.
      + Para usar una imagen existente, elija **Seleccionar una imagen de firmware existente**, elija **Examinar S3** y, a continuación, elija el archivo de imagen de firmware que desee usar.

        AWS IoT Core para LoRaWAN rellena la URL de S3, que es la ruta al archivo de imagen de firmware en el bucket de S3. El formato de la ruta es `s3://bucket_name/file_name`. Para ver el archivo en la consola de [Amazon Simple Storage Service](https://console.aws.amazon.com/s3/), seleccione **Ver**.
      + Para subir una nueva imagen de firmware.

        1. Seleccione **Cargar una nueva imagen de firmware**  y suba su imagen de firmware. El archivo de imagen no debe tener más de un megabyte. 

        1. Para crear un bucket de S3 e introducir un **Nombre del bucket** para almacenar el archivo de imagen de firmware, seleccione **Crear bucket de S3**.

   1. 

**Permisos para obtener acceso a este bucket**  
Puede crear un nuevo rol de servicio o elegir uno existente para permitir que AWS IoT Core para LoRaWAN acceda al archivo de imagen de firmware del bucket de S3 en su nombre. Elija **Siguiente**.

      Para crear un nuevo rol, puede introducir un nombre de rol o dejarlo en blanco para que se genere automáticamente un nombre aleatorio. Para ver los permisos de política que otorgan acceso al bucket de S3, seleccione **Ver permisos de políticas**.

   Para obtener más información sobre el uso de un bucket de S3 para almacenar la imagen y la concesión de permisos de AWS IoT Core para LoRaWAN para acceder a ella, consulte [Suba el archivo de firmware en un bucket de S3 y agregue un rol de IAM](lorawan-upload-firmware-s3bucket.md). 

1. 

**Revisar y crear**

   Para crear su tarea de FUOTA, revise la tarea de FUOTA y los detalles de configuración que especificó y, a continuación, seleccione **Crear tarea**.

## Crear la tarea de FUOTA y subir la imagen del firmware mediante la API
<a name="lorawan-fuota-task-api"></a>

Para crear una tarea de FUOTA y especificar el archivo de imagen de firmware mediante la API, utilice la operación de 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) o el comando de CLI [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). Puede proporcionar un archivo de `input.json` como entrada al comando `create-fuota-task`. Cuando utiliza la API o la CLI, el archivo de imagen de firmware que proporciona como entrada debe estar ya subido en un bucket de S3. También debe especificar el rol de IAM que permita a AWS IoT Core para LoRaWAN acceder a la imagen de firmware del bucket de S3.

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

donde:

**Contenido 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"  
}
```

Tras crear la tarea de FUOTA, puede utilizar las siguientes operaciones de API o comandos de CLI para actualizar, eliminar u obtener información sobre la tarea de 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) o [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) o [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) o [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) o [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) 

## Siguientes pasos
<a name="lorawan-fuota-next-steps"></a>

Ahora que ha creado una tarea de FUOTA y ha proporcionado la imagen del firmware, puede agregar dispositivos a la tarea para actualizar su firmware. Puede agregar dispositivos individuales o grupos de multidifusión a la tarea. Para obtener más información, consulte [Agregar dispositivos y grupos de multidifusión a una tarea de FUOTA y programar una sesión FUOTA](lorawan-fuota-add-devices.md).

# Agregar dispositivos y grupos de multidifusión a una tarea de FUOTA y programar una sesión FUOTA
<a name="lorawan-fuota-add-devices"></a>

Una vez que haya creado una tarea de FUOTA, puede agregar a la tarea los dispositivos para los que quiera actualizar el firmware. Una vez que sus dispositivos se hayan agregado correctamente a la tarea de FUOTA, puede programar una sesión FUOTA para actualizar el firmware del dispositivo. 
+ Si solo tiene un número reducido de dispositivos, puede agregarlos directamente a su tarea de FUOTA.
+ Si tiene un gran número de dispositivos para los que desea actualizar el firmware, puede agregar estos dispositivos a sus grupos de multidifusión y, a continuación, agregar los grupos de multidifusión a su tarea de FUOTA. Para obtener información sobre cómo crear usuarios y grupos de multidifusión, consulte [Crear grupos de multidifusión para enviar una carga de enlace descendente a varios dispositivos](lorawan-multicast-groups.md).

**nota**  
Puede agregar dispositivos individuales o grupos de multidifusión a la tarea de FUOTA. No puede agregar dispositivos y grupos de multidifusión a la vez a la tarea.

Una vez que haya agregado sus dispositivos o grupos de multidifusión, puede iniciar una sesión de actualización del firmware. AWS IoT Core para LoRaWAN recopila la imagen del firmware, fragmenta las imágenes y, a continuación, las almacena en un formato cifrado. Sus dispositivos finales recopilan los fragmentos y aplican la nueva imagen de firmware. El tiempo que tarda la actualización del firmware dependerá del tamaño de la imagen y de cómo se fragmentaron las imágenes. Una vez finalizada la actualización del firmware, se eliminarán los fragmentos cifrados de la imagen del firmware guardados por AWS IoT Core para LoRaWAN. Seguirá pudiendo encontrar la imagen del firmware en el bucket de S3.

## Requisitos previos
<a name="lorawan-fuota-devices-prereq"></a>

Para poder agregar dispositivos o grupos de multidifusión a su tarea de FUOTA, haga lo siguiente.
+ Debe haber creado ya la tarea de FUOTA y haber proporcionado su imagen de firmware. Para obtener más información, consulte [Crear la tarea de FUOTA y proporcionar una imagen de firmware](lorawan-fuota-create-task.md).
+ Aprovisione los dispositivos inalámbricos para los que desee actualizar el firmware del dispositivo. Para obtener más información sobre la configuración del proyecto, consulte [Incorporar dispositivos a AWS IoT Core para LoRaWAN](lorawan-onboard-end-devices.md).
+ Para actualizar el firmware de varios dispositivos, puede agregarlos a un grupo de multidifusión. Para obtener más información, consulte [Crear grupos de multidifusión para enviar una carga de enlace descendente a varios dispositivos](lorawan-multicast-groups.md).
+ Cuando incorpore los dispositivos a AWS IoT Core para LoRaWAN, especifique el parámetro de configuración `FPorts` de FUOTA. Si utiliza un dispositivo LoRaWAN v1.0.x, también debes especificar la `GenAppKey`. Para obtener más información acerca de los parámetros de configuración de FUOTA, consulte [Preparar los dispositivos para la configuración de multidifusión y FUOTA](lorawan-prepare-devices-multicast.md).

## Agregar dispositivos a una tarea de FUOTA y programar una sesión FUOTA mediante la consola
<a name="lorawan-fuota-devices-console"></a>

Para agregar dispositivos o grupos de multidifusión y programar una sesión FUOTA mediante la consola, vaya a la pestaña [Tareas de FUOTA](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) de la consola. A continuación, selecciona la tarea de FUOTA a la que quiera agregar dispositivos y actualice el firmware.

**Agregar dispositivos y grupos de multidifusión**

1. Puede agregar dispositivos individuales o grupos de multidifusión a su tarea de FUOTA. Sin embargo, no puede agregar dispositivos individuales y grupos de multidifusión a la misma tarea de FUOTA. Para agregar dispositivos utilizando la consola haga lo siguiente.

   1. En los **detalles de la tarea de FUOTA**, seleccione **Agregar dispositivo**.

   1. Elija la banda de frecuencia o la **RFRegion** para los dispositivos que agregue a la tarea. Este valor debe coincidir con la **RFRegion** que eligió para la tarea de FUOTA.

   1. Elija si desea agregar dispositivos individuales o grupos de multidifusión a la tarea.
      + Para agregar dispositivos individuales, seleccione **Agregar dispositivos individuales** e introduzca el ID de cada dispositivo que desee agregar a su tarea de FUOTA.
      + Para agregar grupos de multidifusión, seleccione **Agregar grupos de multidifusión** y agregue sus grupos de multidifusión a la tarea. Puede filtrar los grupos de multidifusión que desee agregar a la tarea mediante el perfil o las etiquetas del dispositivo. Al filtrar por perfil de dispositivo, puede elegir grupos de multidifusión con dispositivos que tengan un perfil con **Admite clase B** o **Admite clase C** habilitada.

1. 

**Programar una sesión FUOTA**

   Una vez que sus dispositivos o grupos de multidifusión se hayan agregado correctamente, puede programar una sesión FUOTA. Para programar una sesión, haga lo siguiente.

   1. Elija la tarea de FUOTA para la que desee actualizar el firmware del dispositivo y, a continuación, seleccione **Programar sesión FUOTA**.

   1. Especifique una **Fecha de inicio** y una **Hora de inicio** para su sesión FUOTA. Asegúrese de que la hora de inicio sea 30 minutos o más tarde de la hora actual.

## Agregar dispositivos a una tarea de FUOTA y programar una sesión FUOTA mediante la API
<a name="lorawan-fuota-devices-api"></a>

Puede usar la API de AWS IoT Wireless o la CLI para agregar sus dispositivos inalámbricos o grupos de multidifusión a su tarea de FUOTA. A continuación, puede programar una sesión FUOTA. 

1. 

**Agregar dispositivos y grupos de multidifusión**

   Puede asociar dispositivos inalámbricos o grupos de multidifusión a su tarea de FUOTA.
   + Para asociar dispositivos individuales a su tarea de FUOTA, utilice la operación 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) o el comando de CLI [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) y proporcione `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 asociar grupos de multidifusión a su tarea de FUOTA, utilice la operación 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) o el comando de CLI [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) y proporcione `MulticastGroupID` como entrada.

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

   Después de asociar los dispositivos inalámbricos o el grupo de multidifusión a la tarea de FUOTA, utilice las siguientes operaciones de API o comandos de CLI para enumerar los dispositivos o grupos de multidifusión o para desasociarlos de la tarea.
   + [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) o [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) o [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) o [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) o [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**  
La API:  
`ListWirelessDevices` puede enumerar los dispositivos inalámbricos en general y los dispositivos asociados a un grupo de multidifusión cuando `MulticastGroupID` se utiliza como filtro. La API muestra los dispositivos inalámbricos asociados a una tarea de FUOTA cuando `FuotaTaskID` se utiliza como filtro.
`ListMulticastGroups` puede enumerar los grupos de multidifusión en general y los grupos de multidifusión asociados a una tarea de FUOTA cuando `FuotaTaskID` se utiliza como filtro.

1. 

**Programar una sesión FUOTA**

   Una vez que sus dispositivos o grupos de multidifusión se hayan agregado correctamente a la tarea de FUOTA, puede iniciar una sesión FUOTA para actualizar el firmware del dispositivo. La nueva hora de inicio del evento debe ser al menos 30 minutos a partir de la hora actual. Para programar una sesión FUOTA mediante la API o la CLI, utilice la operación 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) o el comando de CLI [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).

   Después de iniciar una sesión FUOTA ya no podrá agregar dispositivos o grupos de multidifusión a la tarea. Puede obtener información sobre el estado de su sesión FUOTA mediante la operación 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) o el comando de CLI [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).

# Supervisar y solucionar los problemas del estado de su tarea de FUOTA y de los dispositivos agregados a la tarea
<a name="lorawan-fuota-status"></a>

Una vez que haya aprovisionado los dispositivos inalámbricos y creado los grupos de multidifusión que desee utilizar, puede iniciar una sesión FUOTA siguiendo estos pasos.

## Estado de la tarea de FUOTA
<a name="lorawan-fuota-task-status"></a>

Su tarea de FUOTA puede tener uno de los siguientes mensajes de estado en la Consola de administración de AWS. 
+ 

**Pendiente**  
Este estado indica que ha creado una tarea de FUOTA, pero aún no tiene una sesión de actualización de firmware. Verá este mensaje de estado cuando se haya creado la tarea. Durante este tiempo, puede actualizar su tarea de FUOTA y asociar o desasociar dispositivos o grupos de multidifusión a su tarea. Cuando el estado cambie de **Pendiente**, no se podrán agregar dispositivos adicionales a la tarea.
+ 

**Sesión FUOTA en espera**  
Una vez que los dispositivos se hayan agregado correctamente a la tarea de FUOTA, aparecerá este mensaje de estado cuando su tarea tenga una sesión de actualización de firmware programada. Durante este tiempo, no puede actualizar ni agregar dispositivos a su sesión FUOTA. **Si cancela la sesión FUOTA, el estado del grupo cambiará a Pendiente.** 
+ 

**En sesión FUOTA**  
Cuando comience su sesión FUOTA, verá este mensaje de estado. Se iniciará la sesión de fragmentación y los dispositivos finales recopilarán los fragmentos, reconstruirán la imagen del firmware, compararán la nueva versión del firmware con la versión original y aplicarán la nueva imagen.
+ 

**FUOTA realizada**  
Cuando sus dispositivos finales informen a AWS IoT Core para LoRaWAN de que se ha aplicado la nueva imagen de firmware o cuando se agota el tiempo de espera de la sesión, la sesión FUOTA se marcará como finalizada y verás este estado.

  También verá este estado en cualquiera de los siguientes casos, por lo que debe asegurarse de comprobar si la actualización del firmware se ha aplicado correctamente a los dispositivos.
  + Si el estado de la tarea era **Sesión FUOTA en espera** y hay un error en el bucket de S3, por ejemplo, el enlace al archivo de imagen del bucket de S3 es incorrecto o AWS IoT Core para LoRaWAN no tiene los permisos suficientes para acceder al archivo del bucket.
  + Si el estado de la tarea de FUOTA era **Sesión FUOTA en espera** y hay una solicitud para iniciar una sesión FUOTA, pero no se recibe una respuesta de los dispositivos o grupos de multidifusión de la tarea de FUOTA.
  + Si el estado de la tarea de FUOTA era **Sesión FUOTA en espera** y los dispositivos o grupos de multidifusión no enviaron ningún fragmento durante un periodo de tiempo determinado, lo que hace que se agote el tiempo de espera de la sesión.
+ 

**Eliminar espera**  
Si elimina una tarea de FUOTA que esté en cualquiera de los demás estados, se mostrará este estado. Se trata de una acción permanente y no se puede deshacer. Esta acción puede tardar tiempo en completarse y el estado de la tarea será **Eliminar espera** hasta que se elimine la tarea de FUOTA. Una vez que la tarea de FUOTA entre en este estado, no podrá pasar a ninguno de los otros estados.

## Estado de los dispositivos en una tarea de FUOTA
<a name="lorawan-fuota-device-status"></a>

Los dispositivos de su tarea de FUOTA pueden tener uno de los siguientes mensajes de estado en la consola Consola de administración de AWS. Puede pasar el ratón sobre cada mensaje de estado para obtener más información sobre lo que indica.
+ 

**Inicial**  
Cuando llegue la hora de inicio de su sesión FUOTA, AWS IoT Core para LoRaWAN comprueba si su dispositivo cuenta con el paquete compatible con la actualización del firmware. Si su dispositivo tiene el paquete compatible, se iniciará la sesión FUOTA del dispositivo. La imagen del firmware está fragmentada y los fragmentos se envían al dispositivo. Cuando aparezca este estado, indica que la sesión FUOTA del dispositivo aún no se ha iniciado.
+ 

**Paquete no compatible**  
Si el dispositivo no tiene el paquete FUOTA compatible, se mostrará este estado. Si el paquete de actualización del firmware no es compatible, no se podrá iniciar la sesión FUOTA de su dispositivo. Para resolver este error, compruebe si el firmware de su dispositivo puede recibir actualizaciones de firmware mediante FUOTA.
+ 

**Algoritmo de fragmentación no admitido**  
Al inicio de la sesión FUOTA, AWS IoT Core para LoRaWAN configura una sesión de fragmentación para el dispositivo. Si aparece este estado, significa que el tipo de algoritmo de fragmentación utilizado no se puede aplicar a la actualización del firmware del dispositivo. El error se produce porque su dispositivo no tiene el paquete FUOTA compatible. Para resolver este error, compruebe si el firmware de su dispositivo puede recibir actualizaciones de firmware mediante FUOTA.
+ 

**No hay memoria suficiente**  
Después de que AWS IoT Core para LoRaWAN envíe los fragmentos de imagen, sus dispositivos finales recopilarán los fragmentos de imagen y reconstruirán la imagen binaria a partir de estos fragmentos. Este estado se muestra cuando el dispositivo no tiene memoria suficiente para ensamblar los fragmentos entrantes de la imagen del firmware, lo que puede provocar que la sesión de actualización del firmware finalice prematuramente. Para resolver el error, compruebe si el hardware del dispositivo puede recibir esta actualización. Si el dispositivo no puede recibir esta actualización, utilice una imagen delta para actualizar el firmware.
+ 

**Índice de fragmentación no admitido**  
El índice de fragmentación identifica una de las cuatro sesiones de fragmentación posibles simultáneamente. Si el dispositivo no admite el valor del índice de fragmentación indicado, se muestra este estado. Para corregir este error, realice alguna de las siguientes acciones. 
  + Inicie una nueva tarea de FUOTA para el dispositivo. 
  + Si el error persiste, cambie del modo de unidifusión al modo de multidifusión.
  + Si el error sigue sin resolverse, compruebe el firmware del dispositivo.
+ 

**Error de memoria**  
Este estado indica que el dispositivo ha sufrido un error de memoria al recibir los fragmentos entrantes desde AWS IoT Core para LoRaWAN. Si se produce este error, es posible que el dispositivo no pueda recibir esta actualización. Para resolver el error, compruebe si el hardware del dispositivo puede recibir esta actualización. Si es necesario, utilice una imagen delta para actualizar el firmware del dispositivo.
+ 

**Descriptor incorrecto**  
El dispositivo no admite el descriptor indicado. El descriptor es un campo que describe el archivo que se transportará durante la sesión de fragmentación. Si ve este error, póngase en contacto con el [Centro de AWS Support](https://console.aws.amazon.com/support/home#/).
+ 

**Repetición del recuento de sesiones**  
Este estado indica que su dispositivo ha utilizado anteriormente este recuento de sesiones. Para resolver el error, inicie una nueva tarea de FUOTA para el dispositivo.
+ 

**Fragmentos que faltan**  
A medida que el dispositivo recopila los fragmentos de imagen desde AWS IoT Core para LoRaWAN, reconstruye la nueva imagen de firmware a partir de los fragmentos codificados independientes. Si el dispositivo no ha recibido todos los fragmentos, la nueva imagen no se puede reconstruir y verá este estado. Para resolver el error, inicie una nueva tarea de FUOTA para el dispositivo.
+ 

**Error de MIC**  
Cuando el dispositivo reconstruye la nueva imagen de firmware a partir de los fragmentos recopilados, realiza una verificación de integridad de los mensajes (MIC) para comprobar la autenticidad de la imagen y si proviene de la fuente correcta. Si el dispositivo detecta una discordancia en la MIC después de volver a ensamblar los fragmentos, se mostrará este estado. Para resolver el error, inicie una nueva tarea de FUOTA para el dispositivo.
+ 

**Correcto**  
La sesión FUOTA para su dispositivo se ha completado correctamente.
**nota**  
Si bien este mensaje de estado indica que los dispositivos han reconstruido la imagen a partir de los fragmentos y la han verificado, es posible que el firmware del dispositivo no se haya actualizado cuando el dispositivo notifique el estado a AWS IoT Core para LoRaWAN. Compruebe si el firmware del dispositivo se ha actualizado.

## Siguientes pasos
<a name="lorawan-fuota-device-next"></a>

Ha aprendido los diferentes estados de la tarea de FUOTA y sus dispositivos, y cómo puede solucionar cualquier problema. Para obtener más información sobre cada uno de estos estados, consulte la [LoRaWAN Fragmented Data Block Transportation Specification, TS004-1.0.0](https://lora-alliance.org/wp-content/uploads/2020/11/fragmented_data_block_transport_v1.0.0.pdf).