Sidewalk デバイスを接続してアップリンクメタデータ形式を表示する - AWS IoT Wireless

Sidewalk デバイスを接続してアップリンクメタデータ形式を表示する

このチュートリアルでは、MQTT テストクライアントを使用して接続をテストし、エンドデバイスと AWS クラウド との間で交換されるメッセージを確認します。メッセージを受信するには、MQTT テストクライアントで、宛先の IoT ルールを作成するときに指定したトピックに登録します。SendDataToWirelessDevice API オペレーションを使用して、AWS IoT Core for Amazon Sidewalk からデバイスにダウンリンクメッセージを送信することもできます。メッセージ配信ステータスイベント通知を有効にすることで、メッセージが配信されたことを確認できます。

注記

ハードウェアプラットフォームの接続とセットアップの詳細については、「Amazon Sidewalk ドキュメント」の「エンドデバイスのプロビジョニングと登録」と「Hardware Development Kit (HDK) の設定」を参照してください。

SendDataToWirelessDevice API オペレーションまたは send-data-to-wireless-device CLI コマンドを使用して、AWS IoT Core for Amazon Sidewalk から Sidewalk エンドデバイスにダウンリンクメッセージを送信します。次のコードは、このコマンドの実行例を示しています。ペイロードデータは送信されるバイナリで、base64 でエンコードされます。

aws iotwireless send-data-to-wireless-device \ --id "<Wireless_Device_ID>" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --wireless-metadata Sidewalk={Seq=1,AckModeRetryDurationSecs=10}

次に、このコマンドを実行したときの出力例を示します。これは、デバイスに送信されるダウンリンクメッセージの ID です。

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

SendDataToWirelessDevice API はメッセージ ID を返すことができますが、メッセージは正常に配信されない可能性があります。デバイスに送信されたメッセージのステータスを確認するには、Sidewalk アカウントとデバイスのメッセージ配信ステータスイベントを有効にできます。このイベントを有効にする方法の詳細については、「Sidewalk リソースのイベント通知」を参照してください。このイベントタイプの詳細については、「メッセージ配信イベント」を参照してください。

デバイスを接続した後、送信先ルール作成時に指定したトピック (例えば、project/sensor/observed) をサブスクライブし、デバイスからのアップリンクメッセージを確認することができます。

送信先を作成するときにトピック名を指定した場合、そのトピックをサブスクライブして、エンドデバイスからのアップリンクメッセージをモニタリングできます。AWS IoT コンソールの [テスト] ページの [MQTT テストクライアント] に移動し、トピック名 (project/sensor/observed など) を入力して、[サブスクライブ] を選択します。

次の例は、Sidewalk デバイスから AWS IoT に送信されるアップリンクメッセージの形式を示しています。WirelessMetadata にはメッセージリクエストに関するメタデータが含まれています。

{ "PayloadData":"ZjRlNjY1ZWNlNw==", "WirelessDeviceId":"wireless_device_id", "WirelessMetadata":{ "Sidewalk":{ "CmdExStatus":"Cmd", "SidewalkId":"device_id", "Seq":0, "MessageType":"messageType" } } }

以下の表は、アップリンクメタデータの各パラメータの定義を示したものです。device-id は、ワイヤレスデバイスの ID (ABCDEF1234 など) です。messageType は、デバイスから受信されるアップリンクメッセージのタイプです。

Sidewalk アップリンクメタデータのパラメータ
パラメータ 説明 タイプ 必須
PayloadData

ワイヤレスデバイスから送信されるメッセージペイロード。

文字列 はい
WirelessDeviceID データを送信しているワイヤレスデバイスの識別子 文字列 はい
Sidewalk.CmdExStatus

コマンドのランタイムステータス。レスポンスタイプのメッセージには、ステータスコード COMMAND_EXEC_STATUS_SUCCESS が含まれます。ただし、通知にはステータスコードが含まれない場合があります。

一覧表 いいえ
Sidewalk.NackExStatus

レスポンス nack のステータスで、RADIO_TX_ERROR または MEMORY_ERROR となります。

文字列の配列 いいえ