

# Sidewalk デバイスを接続してアップリンクメタデータ形式を表示する
<a name="iot-sidewalk-connect-uplink-metadata"></a>

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

**注記**  
ハードウェアプラットフォームの接続とセットアップの詳細については、「Amazon Sidewalk ドキュメント」の「[エンドデバイスのプロビジョニングと登録](https://docs.sidewalk.amazon/provisioning/)」と「[Hardware Development Kit (HDK) の設定](https://docs.sidewalk.amazon/getting-started/sidewalk-onboard-prereq-hdk.html)」を参照してください。

## エンドデバイスにダウンリンクメッセージを送信する
<a name="iot-sidewalk-downlink-message"></a>

[https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) API オペレーションまたは [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/send-data-to-wireless-device.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/send-data-to-wireless-device.html) 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 リソースのイベント通知](iot-sidewalk-events.md)」を参照してください。このイベントタイプの詳細については、「[メッセージ配信イベント](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sidewalk-message-delivery-events.html)」を参照してください。

## デバイスから送信されたアップリンクメッセージの形式の表示
<a name="iot-sidewalk-uplink-metadata"></a>

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

送信先を作成するときにトピック名を指定した場合、そのトピックをサブスクライブして、エンドデバイスからのアップリンクメッセージをモニタリングできます。AWS IoT コンソールの **[テスト]** ページの [[MQTT テストクライアント]](https://console.aws.amazon.com/iot/home#/test) に移動し、トピック名 (*`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` となります。  | 文字列の配列 | いいえ | 