Ausführen einer adaptiven Datenrate (ADR) mit AWS IoT Core for LoRaWAN - AWS IoT Wireless

Ausführen einer adaptiven Datenrate (ADR) mit AWS IoT Core for LoRaWAN

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 for 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.

So funktioniert die adaptive Datenrate (ADR)

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 for 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 for LoRaWAN und passen die Übertragungsparameterwerte an, um eine optimale Datenrate zu erreichen.

Der AWS IoT Core for 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

Standardmäßig führt AWS IoT Core for 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 CreateServiceProfile oder des Befehls AWS CLI create-service-profile erstellen.

Anmerkung

Sie können die maximalen und minimalen Datenratengrenzen nicht angeben, wenn Sie ein Dienstprofil über die AWS Management Console 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 GetServiceProfile oder des AWS CLI Befehls get-service-profile 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 ListServiceProfiles oder den AWS CLI-Befehl list-service-profiles 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.