

# Ausführen einer adaptiven Datenrate (ADR) mit AWS IoT Core für LoRaWAN
<a name="iot-lorawan-adr"></a>

Um den Stromverbrauch der Geräteübertragung zu optimieren und gleichzeitig sicherzustellen, dass Nachrichten von den Endgeräten an den Gateways empfangen werden, verwendet AWS IoT Core für LoRaWAN eine adaptive Datenrate. Die adaptive Datenrate weist die Endgeräte an, die Datenrate, die Übertragungsleistung und die Anzahl der erneuten Übertragungen zu optimieren und gleichzeitig zu versuchen, die Fehlerrate der an den Gateways empfangenen Pakete zu reduzieren. Befindet sich Ihr Endgerät beispielsweise in der Nähe der Gateways, reduziert die adaptive Datenrate die Übertragungsleistung und erhöht die Datenrate. 

**Topics**
+ [So funktioniert die adaptive Datenrate (ADR)](#iot-lorawan-adr-algorithm)
+ [Datenratenlimits (CLI) konfigurieren](#iot-lorawan-adr-use)

## So funktioniert die adaptive Datenrate (ADR)
<a name="iot-lorawan-adr-algorithm"></a>

Um ADR zu aktivieren, muss Ihr Gerät das ADR-Bit im Frame-Header setzen. Sobald das ADR-Bit festgelegt ist, sendet AWS IoT Core für LoRaWAN den `LinkADRReq`-MAC-Befehl und Ihre Geräte antworten mit dem `LinkADRAns`-Befehl, der den ACK-Status des ADR-Befehls enthält. Sobald Ihre Geräte den ADR-Befehl bestätigt haben, folgen sie den ADR-Anweisungen von AWS IoT Core für LoRaWAN und passen die Übertragungsparameterwerte an, um eine optimale Datenrate zu erreichen. 

Der AWS IoT Core für LoRaWAN-ADR-Algorithmus verwendet die SINR-Informationen in der Historie der Uplink-Metadaten, um die optimale Übertragungsleistung und Datenrate für die Geräte zu ermitteln. Der Algorithmus verwendet die 20 neuesten Uplink-Nachrichten, die gestartet werden, sobald das ADR-Bit im Frame-Header festgelegt ist. Um die Anzahl der erneuten Übertragungen zu ermitteln, verwendet er die Paketfehlerrate (PER), die einen Prozentsatz der Gesamtzahl der verlorenen Pakete darstellt. Wenn Sie diesen Algorithmus verwenden, können Sie nur den Bereich der Datenraten steuern, d. h. die Mindest- und Höchstgrenzen für die Datenraten.

## Datenratenlimits (CLI) konfigurieren
<a name="iot-lorawan-adr-use"></a>

Standardmäßig führt AWS IoT Core für LoRaWAN ADR aus, wenn Sie das ADR-Bit im Frame-Header Ihres LoRaWAN-Geräts festlegen. Sie können die Mindest- und Höchstgrenzen für die Datenrate steuern, wenn Sie ein Dienstprofil für Ihre LoRaWAN-Geräte mithilfe der AWS IoT Wireless-API-Operation [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html) oder des Befehls AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html) erstellen.

**Anmerkung**  
Sie können die maximalen und minimalen Datenratengrenzen nicht angeben, wenn Sie ein Dienstprofil über die AWS-Managementkonsole erstellen. Es kann nur mithilfe der AWS IoT Wireless-API oder der AWS CLI angegeben werden.

Um die Mindest- und Höchstgrenzen für die Datenrate anzugeben, verwenden Sie die Parameter `DrMin` und `DrMax` zusammen mit der `CreateServiceProfile`-API-Operation. Die standardmäßigen Mindest- und Höchstgrenzen für die Datenrate sind 0 und 15. Der folgende CLI-Befehl legt beispielsweise eine minimale Datenratenbegrenzung von 3 und eine maximale Grenze von 12 fest.

```
aws iotwireless create-service-profile \ 
    --lorawan DrMin=3,DrMax=12
```

Die Ausführung dieses Befehls generiert eine ID und einen Amazon-Ressourcennamen (ARN) für das Serviceprofil.

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
}
```

Sie können die Werte der angegebenen Parameter mithilfe der AWS IoT Wireless-API-Operation [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html) oder des AWS CLI Befehls [https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html) abrufen. 

```
aws iotwireless get-service-profile --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
```

Wenn Sie diesen Befehl ausführen, werden die Werte für die Dienstprofilparameter generiert.

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:651419225604:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "LoRaWAN": {
        "UlRate": 60,
        "UlBucketSize": 4096,
        "DlRate": 60,
        "DlBucketSize": 4096,
        "AddGwMetadata": false,
        "DevStatusReqFreq": 24,
        "ReportDevStatusBattery": false,
        "ReportDevStatusMargin": false,
        "DrMin": 3,
        "DrMax": 12,
        "PrAllowed": false,
        "HrAllowed": false,
        "RaAllowed": false,
        "NwkGeoLoc": false,
        "TargetPer": 5,
        "MinGwDiversity": 1
    }
}
```

Wenn Sie mehrere Profile erstellt haben, können Sie die API-Operation [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html) oder den AWS CLI-Befehl [https://docs.aws.amazon.com/cli/latest/reference/list-service-profiles.html](https://docs.aws.amazon.com/cli/latest/reference/list-service-profiles.html) verwenden, um die Dienstprofile in Ihrem AWS-Konto aufzulisten, und dann die `GetServiceProfile`-API oder den `get-service-profile`-CLI-Befehl verwenden, um das Dienstprofil abzurufen, für das Sie die Datenratenlimits angepasst haben. 