

# Gestion de la communication entre vos appareils LoRaWAN et AWS IoT
<a name="lorawan-device-cloud-communication"></a>

Une fois que vous avez connecté votre appareil LoRaWAN àAWS IoT Core for LoRaWAN, vos appareils peuvent commencer à envoyer des messages vers le cloud. Les messages de liaison montante sont des messages envoyés depuis votre appareil et reçus par AWS IoT Core for LoRaWAN. Vos appareils LoRaWAN peuvent envoyer des messages en liaison montante à tout moment, qui sont ensuite transférés vers d'autres applications Service AWS hébergées dans le cloud. Les messages envoyés depuis AWS IoT Core for LoRaWAN et vers d'autres Service AWS appareils et applications sont appelés messages de liaison descendante.

Voici comment afficher et gérer les messages de liaison montante et descendante envoyés entre vos appareils et le Cloud. Vous pouvez gérer une file d'attente de messages en liaison descendante et envoyer ces messages à vos appareils dans l'ordre dans lequel ils ont été ajoutés à la file d'attente.

**Topics**
+ [Afficher le format des messages de liaison montante envoyés depuis des appareils LoRaWAN](lorawan-uplink-metadata-format.md)
+ [Mettre en file d'attente les messages de liaison descendante à envoyer aux appareils LoRaWAN](lorawan-downlink-queue.md)

# Afficher le format des messages de liaison montante envoyés depuis des appareils LoRaWAN
<a name="lorawan-uplink-metadata-format"></a>

Une fois que vous avez connecté votre appareil LoRaWAN à AWS IoT Core for LoRaWAN, vous pouvez observer le format du message de liaison montante que vous recevrez de votre appareil sans fil.

## Avant de pouvoir observer les messages de liaison montante
<a name="lorawan-uplink-metadata-prerequisites"></a>

Vous devez avoir intégré votre appareil sans fil et y avoir connecté votre appareil à AWS IoT pour qu'il puisse transmettre et recevoir des données. Pour plus d'informations sur l'intégration de votre appareil à AWS IoT Core for LoRaWAN, veuillez consulter [Intégrez vos appareils à AWS IoT Core for LoRaWAN](lorawan-onboard-end-devices.md).

## Que contiennent les messages de liaison montante ?
<a name="lorawan-uplink-metadata-contains"></a>

Les appareils LoRaWAN se connectent à l'aide de passerelles LoRaWAN AWS IoT Core for LoRaWAN. Le message de liaison montante que vous recevrez de l'appareil contiendra les informations suivantes.
+ Données de charge utile correspondant au message de charge utile crypté envoyé par l’appareil sans fil.
+ Des métadonnées sans fil qui incluent :
  + Informations sur l'appareil telles que DeveUI, le débit de données et le canal de fréquence sur lequel l'appareil fonctionne.
  + Paramètres supplémentaires facultatifs et les informations de passerelle pour les passerelles connectées à l'appareil. Les paramètres de passerelle incluent l'EUI, le SNR et le RSSI de la passerelle.

  En utilisant les métadonnées sans fil, vous pouvez obtenir des informations utiles sur l’appareil sans fil et les données transmises entre votre appareil et AWS IoT. Par exemple, vous pouvez utiliser le paramètre `AckedMessageId` pour vérifier si le dernier message de liaison descendante confirmé a été reçu par l'appareil. Si vous choisissez d'inclure les informations de passerelle, vous pouvez éventuellement déterminer si vous souhaitez passer à un canal de passerelle plus puissant, plus proche de votre appareil.

## Comment observer les messages de liaison montante ?
<a name="lorawan-uplink-metadata-observe"></a>

Après avoir intégré votre appareil, vous pouvez utiliser le [client de test MQTT sur la page **Test**](https://console.aws.amazon.com/iot/home#/test) de la AWS IoT console pour vous abonner à la rubrique que vous avez spécifié lors de la création de votre destination. Vous commencerez à recevoir des messages une fois que votre appareil sera connecté et commencera à envoyer des données utiles.

Ce schéma identifie les éléments clés d'un système LoRaWAN connecté à AWS IoT Core for LoRaWAN, qui montre le plan de données principal et la manière dont les données circulent dans le système.

![\[Image montrant comment les données AWS IoT Core for LoRaWAN sont transmises d’un appareil sans fil à AWS IoT et d’autres services.\]](http://docs.aws.amazon.com/fr_fr/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


Lorsque l’appareil sans fil commence à envoyer des données de liaison montante, AWS IoT Core for LoRaWAN intègre les informations de métadonnées sans fil à charge utile, puis les envoie à vos applications AWS.

## Exemple de message de liaison montante
<a name="lorawan-uplink-metadata-example"></a>

L'exemple suivant illustre le format du message de liaison montante reçu de votre appareil.

```
{
    "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35", 
    "PayloadData": "Cc48AAAAAAAAAAA=",    
    "WirelessMetadata":
    {
        "LoRaWAN":
        {
            "ADR": false,
            "Bandwidth": 125,
            "ClassB": false,
            "CodeRate": "4/5",
            "DataRate": "0",
            "DevAddr": "00b96cd4",
            "DevEui": "58a0cb000202c99",            
            "FOptLen": 2,
            "FCnt": 1,
            "Fport": 136,   
            "Frequency": "868100000",     
            "Gateways": [
             {
                    "GatewayEui": "80029cfffe5cf1cc",      
                    "Snr": -29,
                    "Rssi": 9.75
             }
             ],  
            "MIC": "7255cb07",  
            "MType": "UnconfirmedDataUp",
            "Major": "LoRaWANR1",
            "Modulation": "LORA", 
            "PolarizationInversion": false,    
            "SpreadingFactor": 12,                         
            "Timestamp": "2021-05-03T03:24:29Z"
            
        }
    }
}
```

### Exclure les métadonnées de la passerelle des métadonnées de liaison montante
<a name="lorawan-uplink-metadata-example2"></a>

Si vous souhaitez exclure les informations de métadonnées de passerelle de vos métadonnées de liaison montante, désactivez le paramètre **AddGWMetadata** lors de la création du profil de service. Pour plus d'informations sur la désactivation de ce paramètre, consultez [Ajout des profils de services](lorawan-define-profiles.md#lorawan-service-profiles).

Dans ce cas, vous ne verrez pas la section `Gateways` dans les métadonnées de la liaison montante, comme illustré dans l'exemple suivant.

```
{  
    "WirelessDeviceId": "0d9a439b-e77a-4573-a791-49d5c0f4db95",
    "PayloadData": "AAAAAAAA//8=",
    "WirelessMetadata": {
        "LoRaWAN": {
            "ClassB": false,
            "CodeRate": "4/5",
            "DataRate": "1",
            "DevAddr": "01920f27",
            "DevEui": "ffffff10000163b0",
            "FCnt": 1,
            "FPort": 5,
            "Timestamp": "2021-04-29T05:19:43.646Z"
    }
  }
}
```

# Mettre en file d'attente les messages de liaison descendante à envoyer aux appareils LoRaWAN
<a name="lorawan-downlink-queue"></a>

Les applications hébergées dans le cloud et autres Service AWS peuvent envoyer des messages en liaison descendante à vos appareils sans fil. Les messages de liaison descendante sont des messages envoyés depuis AWS IoT Core for LoRaWAN vers votre appareil sans fil. Vous pouvez planifier et envoyer des messages par liaison descendante pour chaque appareil que vous avez intégré à AWS IoT Core for LoRaWAN.

Si vous souhaitez envoyer un message en liaison descendante sur plusieurs appareils, vous pouvez utiliser un groupe multicast. Les appareils d'un groupe de multicast partagent la même adresse multicast, qui est ensuite distribuée à un groupe entier d'appareils destinataires. Pour en savoir plus, consultez [Créez des groupes multicast pour envoyer une charge utile de liaison descendante à plusieurs appareils](lorawan-multicast-groups.md). 

## Fonctionnement d'une file d'attente de messages en liaison descendante
<a name="lorawan-how-downlink-works"></a>

La classe de votre appareil LoRaWAN détermine la manière dont les messages de votre file d'attente sont envoyés à l'appareil. Les appareils de classe A envoient un message de liaison montante à AWS IoT Core for LoRaWAN pour indiquer qu'ils sont disponibles pour recevoir des messages de liaison descendante. Les appareils de classe B peuvent recevoir des messages sur des emplacements de liaison descendante réguliers. Les appareils de classe C peuvent recevoir des messages descendants à tout moment. Pour plus d'informations sur les classes d'appareils, consultez [Classes d'appareils](lorawan-manage-end-devices.md#lorawan-device-classes).

Voici comment les messages sont mis en file d'attente et envoyés à vos appareils de classe A.

1. AWS IoT Core for LoRaWAN met en mémoire tampon le message de liaison descendante que vous avez ajouté à la file d'attente avec le port de trame, les données de charge utile et les paramètres du mode de confirmation que vous avez spécifiés à l'aide de la AWS IoT console ou de l'API AWS IoT Wireless.

1. Votre appareil LoRaWAN envoie un message de liaison montante pour indiquer qu'il est en ligne et qu'il peut commencer à recevoir des messages de liaison descendante.

1. Si vous avez ajouté plusieurs messages de liaison descendante à la file d'attente, AWS IoT Core for LoRaWAN envoie le premier message de liaison descendante de la file d'attente à votre appareil avec l'indicateur d'accusé de réception (ACK) activé.

1. Votre appareil envoie un message de liaison montante à AWS IoT Core for LoRaWAN immédiatement ou il se met en veille jusqu'au message de liaison montante suivant et inclut l'indicateur ACK dans le message.

1. LorsqueAWS IoT Core for LoRaWAN reçoit le message de liaison montante avec l'indicateur ACK, il efface le message de liaison descendante de la file d'attente, indiquant que votre appareil a bien reçu le message de liaison descendante. Si l'indicateur ACK est absent du message de liaison montante après trois vérifications, le message est supprimé.

## Effectuez des opérations de file d'attente de liaison descendante à l'aide de la console
<a name="lorawan-downlink-queue-console"></a>

Vous pouvez utiliser le AWS Management Console pour mettre en file d'attente les messages de liaison descendante et effacer des messages individuels, ou la totalité de la file d'attente, selon vos besoins. Pour les appareils de classe A, après réception d'un lien montant indiquant qu'il est en ligne, les messages en file d'attente sont envoyés à l'appareil. Une fois le message envoyé, il est automatiquement effacé de la file d'attente.

**File d'attente des messages de liaison descendante**  
Pour créer une file d'attente de messages en liaison descendante

1. Accédez au [hub Appareils de la AWS IoT console ](https://console.aws.amazon.com/iot/home#/wireless/devices) et choisissez l'appareil pour lequel vous souhaitez mettre en file d'attente les messages de liaison descendante.

1. Dans la section **Messages de liaison descendante** de la page détails de l'appareil, choisissez **Mettre en file d'attente les messages de liaison descendante**.

1. Spécifiez les paramètres suivants pour configurer votre message de liaison descendante :
   + **fPort** : Choisissez le port de trame avec lequel le périphérique doit communiquerAWS IoT Core for LoRaWAN.
   + **Payload** : Spécifiez le message de charge utile que vous souhaitez envoyer à votre appareil. La taille maximale de la charge utile est de 242 octets. Si le débit de données adaptatif (ADR) est activé, AWS IoT Core for LoRaWAN utilisez-le pour choisir le débit de données optimal pour la taille de votre charge utile. Vous pouvez optimiser davantage le débit de données selon vos besoins.
   + **Mode de confirmation** : vérifiez si votre appareil a reçu le message de liaison descendante. Si un message nécessite ce mode, vous verrez un message de liaison montante avec l'indicateur ACK dans votre flux de données, et le message sera effacé de la file d'attente.

1. Pour ajouter votre message de liaison descendante à la file d'attente, choisissez, **Soumettre**.

Votre message de lien descendant a maintenant été ajouté à la file d'attente. Si votre message ne s'affiche pas ou si vous recevez un message d'erreur, vous pouvez résoudre le problème comme décrit dans [Résoudre les erreurs de la file d’attente de messages en liaison descendante](#lorawan-downlink-queue-troubleshoot). 

**Note**  
Une fois que votre message de liaison descendante a été ajouté à la file d'attente, vous ne pouvez plus modifier les paramètres **fPort**, **Payload** et **mode de confirmation **. Pour envoyer un message de liaison descendante avec des valeurs différentes pour ces paramètres, vous pouvez supprimer ce message et mettre en file d'attente un nouveau message de liaison descendante avec les valeurs de paramètres mises à jour.

La file d'attente répertorie les messages en lien descendant que vous avez ajoutés. Pour connaître la charge utile des messages de liaison montante et descendante échangés entre vos appareils AWS IoT Core for LoRaWAN, vous pouvez utiliser l'analyseur de réseau. Pour en savoir plus, consultez [Contrôle de votre flotte de ressources sans fil en temps réel à l’aide d’un analyseur de réseau](network-analyzer-overview.md).

**Répertorier la file d'attente de messages de liaison descendante**  
Le message de liaison descendante que vous avez créé est ajouté à la file d'attente. Chaque message de liaison descendante suivant est ajouté à la file d'attente après ce message. Vous pouvez consulter la liste des messages de liaison descendante dans la section **Messages de liaison descendante** de la page de détails de l'appareil. Après réception d'une liaison montante, les messages sont envoyés à l'appareil. Une fois qu'un message de liaison descendante a été reçu par votre appareil, il sera retiré de la file d'attente. Le message suivant remonte ensuite dans la file d'attente pour être envoyé à votre appareil.

**Supprimer des messages de liaison descendante individuels ou effacer toute la file d'attente**  
Chaque message de liaison descendante est automatiquement effacé de la file d'attente après son envoi à votre appareil. Vous pouvez également supprimer des messages individuels ou effacer toute la file d'attente de liaison descendante. Ces actions ne peuvent pas être annulées.
+ Si vous trouvez dans la file d'attente des messages que vous ne souhaitez pas envoyer, choisissez les messages, puis **Supprimer**.
+ Si vous ne souhaitez envoyer aucun message de la file d'attente à votre appareil, vous pouvez effacer toute la file d'attente en choisissant **Effacer la file d'attente de liaison descendante**.

## Effectuer des opérations de file d'attente de liaison descendante à l'aide de l'API
<a name="lorawan-downlink-queue-api"></a>

Vous pouvez utiliser l'API AWS IoT Wireless pour mettre en file d'attente les messages de liaison descendante et effacer des messages individuels, ou la totalité de la file d'attente, selon vos besoins.

**File d'attente des messages de liaison descendante**  
Pour créer une file d'attente de messages en liaison descendante, utilisez l'opération 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 la commande CLI [cli/latest/reference/iotwireless/send-data-to-wireless-device.html](cli/latest/reference/iotwireless/send-data-to-wireless-device.html).

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

La sortie de l’exécution de cette commande génère un `MessageId` pour le message en liaison descendante. Dans certains cas, même si vous les recevez le `MessageId`, les paquets peuvent être supprimés. Pour plus d'informations sur la façon dont vous pouvez résoudre l'erreur, veuillez consulter [Résoudre les erreurs de la file d’attente de messages en liaison descendante](#lorawan-downlink-queue-troubleshoot).

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

**Répertorier les messages de liaison descendante dans la file d'attente**  
Pour répertorier tous les messages de liaison descendante dans la file d'attente, utilisez l'opération 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 la commande CLI [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).

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

Par défaut, un maximum de 10 messages de liaison descendante sont affichés lors de l'exécution de cette commande.

**Supprimez des messages de liaison descendante individuels ou effacez toute la file d'attente**  
Pour supprimer des messages individuels de la file d'attente ou pour effacer la totalité de la file d'attente, utilisez l'opération 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 la commande CLI [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).
+ Pour supprimer des messages individuels, indiquez le `messageID` des messages que vous souhaitez supprimer pour votre appareil sans fil, spécifiés par le `wirelessDeviceId`.
+ Pour effacer toute la file d'attente de liaison descendante, spécifiez `messageID` comme `*` pour votre périphérique sans fil, spécifié par le `wirelessDeviceId`.

## Résoudre les erreurs de la file d’attente de messages en liaison descendante
<a name="lorawan-downlink-queue-troubleshoot"></a>

Voici quelques points à vérifier si vous n'obtenez pas les résultats escomptés :
+ 

**Les messages de liaison descendante n'apparaissent pas dans la console AWS IoT**  
Si votre message de liaison descendante ne s'affiche pas dans la file d'attente après l'avoir ajouté comme décrit dans [Effectuez des opérations de file d'attente de liaison descendante à l'aide de la console](#lorawan-downlink-queue-console), cela peut être dû au fait que votre appareil n'a pas terminé un processus appelé *procédure d'activation* ou *d'adhésion*. Cette procédure est terminée lorsque votre appareil est intégré à AWS IoT Core for LoRaWAN. Pour en savoir plus, consultez [Ajoutez les spécifications de votre appareil sans fil à AWS IoT Core for LoRaWAN à l’aide de la console](lorawan-end-devices-add.md#lorawan-end-device-spec-console).

  Après avoir intégré votre appareil à AWS IoT Core for LoRaWAN, vous pouvez surveiller votre appareil pour vérifier si les processus d'adhésion et de réinscription ont réussi à l'aide de l'analyseur de réseau ou d'Amazon CloudWatch. Pour en savoir plus, consultez [Outils de surveillance](monitoring-cloudwatch.md#monitoring-tools).
+ 

**Paquets de messages de liaison descendante manquants lors de l'utilisation de l'API**  
Lorsque vous utilisez l'opération `SendDataToWirelessDevice` d'API, celle-ci renvoie une valeur unique `MessageId`. Cependant, il ne peut pas confirmer si votre appareil LoRaWAN a reçu le message de liaison descendante. Les paquets de liaison descendante peuvent être supprimés dans des cas tels que lorsque votre appareil n'a pas terminé la procédure de connexion. Pour de plus amples informations sur la résolution de cette erreur, veuillez consulter la section précédente.
+ 

**Erreur ARN manquante lors de l'envoi d'un message de liaison descendante**  
Lorsque vous envoyez un message de liaison descendante à votre appareil depuis la file d'attente, vous pouvez recevoir un message d'erreur Amazon Resource Name (ARN) manquant. Cette erreur peut se produire parce que la destination n'a pas été spécifiée correctement pour l'appareil qui reçoit le message de liaison descendante. Pour résoudre cette erreur, vérifiez les informations de destination de votre appareil.