

# Sidewalk 디바이스 연결 및 업링크 메타데이터 형식 보기
<a name="iot-sidewalk-connect-uplink-metadata"></a>

이 자습서에서는 MQTT 테스트 클라이언트를 사용하여 연결성을 테스트하고 엔드 디바이스와 AWS 클라우드 간에 교환되는 메시지를 확인합니다. 메시지를 수신하려면 MQTT 테스트 클라이언트에서 대상에 대한 IoT 규칙을 생성할 때 지정한 주제를 구독하세요. `SendDataToWirelessDevice` API 작업을 사용하여 Amazon Sidewalk용 AWS IoT Core에서 디바이스에 다운링크 메시지를 보낼 수도 있습니다. 메시지 전송 상태 이벤트 알림을 활성화하여 메시지가 전송되었는지 확인할 수 있습니다.

**참고**  
하드웨어 플랫폼 연결 및 설정에 대한 자세한 내용은 **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 명령을 사용하여 Amazon Sidewalk용 AWS IoT Core에서 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`는 `ABCDEF1234`와 같은 무선 디바이스의 ID이며, `messageType`은 디바이스에서 수신된 업링크 메시지의 유형입니다.


**업링크 메타데이터 파라미터**  

| 파라미터 | 설명 | 유형 | 필수 | 
| --- | --- | --- | --- | 
| PayloadData |  무선 디바이스에서 전송되는 메시지 페이로드입니다.  | String | 예 | 
| WirelessDeviceID | 데이터를 전송하는 무선 디바이스의 식별자입니다. | String | 예 | 
| Sidewalk.CmdExStatus |  명령 런타임 상태입니다. 응답 유형 메시지는 상태 코드 `COMMAND_EXEC_STATUS_SUCCESS`를 포함해야 합니다. 그러나 알림은 상태 코드를 포함하지 않을 수 있습니다.  | 열거 | 아니요 | 
| Sidewalk.NackExStatus |  응답 nack 상태(`RADIO_TX_ERROR` 또는 `MEMORY_ERROR`)입니다.  | 문자열 배열 | 아니요 | 