AWS IoT Core for LoRaWAN でのアダプティブデータレート (ADR) の実行 - AWS IoT Wireless

AWS IoT Core for LoRaWAN でのアダプティブデータレート (ADR) の実行

エンドデバイスからのメッセージがゲートウェイで受信されるようにしつつ、デバイスの送信電力消費量を最適化するために、AWS IoT Core for LoRaWAN では、アダプティブデータレートを使用します。アダプティブデータレートは、ゲートウェイで受信されるパケットのエラーレートを下げながら、データレート、送信電力、再送信回数を最適化するようにエンドデバイスに指示します。例えば、エンドデバイスがゲートウェイの近くにある場合、アダプティブデータレートによって送信電力が低下し、データレートが向上します。

アダプティブデータレート (ADR) の仕組み

ADR を有効にするには、デバイスがフレームヘッダーに ADR ビットを設定する必要があります。ADR ビットが設定されると、AWS IoT Core for LoRaWAN は LinkADRReq MAC コマンドを送信し、デバイスは ADR コマンドの ACK ステータスを含む LinkADRAns コマンドで応答します。デバイスが ADR コマンドを ACK すると、AWS IoT Core for LoRaWAN からの ADR 指示に従って、最適なデータレートを得るように送信パラメータ値を調整します。

AWS IoT Core for LoRaWAN ADR アルゴリズムは、アップリンクメタデータ履歴の SINR 情報を使用して、デバイスに使用する最適な送信電力とデータレートを決定します。このアルゴリズムは、ADR ビットがフレームヘッダーに設定された後に始まる最新の 20 個のアップリンクメッセージを使用します。再送信の数を決定するために、パケットエラー率 (PER) を使用します。PER は、失われたパケットの合計数に対する割合です。このアルゴリズムを使用すると、データレートの範囲、つまりデータレートの最小制限と最大制限のみを制御できます。

データレート制限 (CLI) を設定する

デフォルトでは、LoRaWAN デバイスのフレームヘッダーに ADR ビットを設定すると、AWS IoT Core for LoRaWAN は ADR を実行します。AWS IoT Wireless API オペレーション CreateServiceProfile、または AWS CLI コマンド create-service-profile を使用して、LoRaWAN デバイスのサービスプロファイルを作成するときに、データレートの最小制限と最大制限を制御できます。

注記

AWS Management Console からサービスプロファイルを作成するときに、最大データレート制限と最小データレート制限を指定することはできません。AWS IoT Wireless API または AWS CLI を使用してのみ指定にすることができます。

データレートの最小制限と最大制限を指定するには、CreateServiceProfile API オペレーションで DrMin および DrMax パラメータを使用します。デフォルトの最小および最大データレート制限は 0 と 15 です。例えば、次の CLI コマンドは、最小データレート制限を 3、最大制限を 12 に設定します。

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

このコマンドを実行すると、サービスプロファイルの ID と Amazon リソースネーム (ARN) が生成されます。

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

AWS IoT Wireless API オペレーション GetServiceProfile、または AWS CLI コマンド get-service-profile を使用して、指定されたパラメータの値を取得できます。

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

このコマンドを実行すると、サービスプロファイルパラメータの値が生成されます。

{ "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 } }

複数のプロファイルを作成した場合は、API オペレーション、ListServiceProfiles、または AWS CLI コマンド list-service-profiles を使用して、AWS アカウント のサービスプロファイルを一覧表示し、次に GetServiceProfile API または get-service-profile CLI コマンドを使用して、データレート制限をカスタマイズしたサービスプロファイルを取得できます。