连接您的 Sidewalk 设备并查看上行链路元数据格式
在本教程中,您将使用 MQTT 测试客户端来测试连接,并查看在终端设备与 AWS Cloud之间交换的消息。要接收消息,请在 MQTT 测试客户端中,订阅在为目标创建 IoT 规则时指定的主题。也可以使用 SendDataToWirelessDevice
API 操作从适用于 Amazon Sidewalk 的 AWS IoT Core 向您的设备发送下行链路消息。您可以通过启用消息传送状态事件通知来验证消息是否已送达。
注意
有关连接和设置硬件平台的信息,请参阅《Amazon Sidewalk 文档》中的预置和注册终端设备
向终端设备发送下行链路消息
使用 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
" } } }
下表显示了上行链路元数据中不同参数的定义。
是无线设备的 ID(例如 device-id
),而 ABCDEF1234
是从设备接收的上行链路消息的类型。messageType
Sidewalk 上行链路元数据参数 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 | 描述 | 类型 | 必需 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PayloadData |
从无线设备发送的消息有效负载。 |
字符串 | 是 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
WirelessDeviceID |
发送数据的无线设备的标识符 | 字符串 | 是 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sidewalk.CmdExStatus |
命令运行时状态。响应类型的消息应包含状态代码, |
枚举 | 否 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sidewalk.NackExStatus |
响应 nack 状态,可以为 |
字符串数组 | 否 |