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 コマンドを使用して、データレート制限をカスタマイズしたサービスプロファイルを取得できます。