Sidewalk 디바이스 연결 및 업링크 메타데이터 형식 보기 - AWS IoT Wireless

Sidewalk 디바이스 연결 및 업링크 메타데이터 형식 보기

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

참고

하드웨어 플랫폼 연결 및 설정에 대한 자세한 내용은 Amazon Sidewalk 설명서의 엔드 디바이스 프로비저닝 및 등록Hardware Development Kit(HDK) 설정을 참조하세요.

SendDataToWirelessDevice API 작업 또는 send-data-to-wireless-device 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 리소스에 대한 이벤트 알림 섹션을 참조하세요. 이 이벤트 유형에 대한 자세한 내용은 메시지 전송 이벤트를 참조하세요.

디바이스를 연결한 후 대상 규칙을 생성할 때 지정한 주제(예: 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-idABCDEF1234와 같은 무선 디바이스의 ID이며, messageType은 디바이스에서 수신된 업링크 메시지의 유형입니다.

업링크 메타데이터 파라미터
파라미터 설명 유형 필수
PayloadData

무선 디바이스에서 전송되는 메시지 페이로드입니다.

String
WirelessDeviceID 데이터를 전송하는 무선 디바이스의 식별자입니다. String
Sidewalk.CmdExStatus

명령 런타임 상태입니다. 응답 유형 메시지는 상태 코드 COMMAND_EXEC_STATUS_SUCCESS를 포함해야 합니다. 그러나 알림은 상태 코드를 포함하지 않을 수 있습니다.

열거 아니요
Sidewalk.NackExStatus

응답 nack 상태(RADIO_TX_ERROR 또는 MEMORY_ERROR)입니다.

문자열 배열 아니요