將要傳送至 LoRaWAN 裝置的下行訊息排入佇列
雲端託管應用程式和其他 AWS 服務 可以向您的無線裝置傳送下行訊息。下行訊息是從 AWS IoT Core for LoRaWAN 傳送至您的無線裝置的訊息。您可以為已加入 AWS IoT Core for LoRaWAN 的每台裝置安排和傳送下行訊息。
如果您有多個裝置要為其傳送下行訊息,則可以使用多點傳送群組。多點傳送組中的裝置會共用相同的多點傳送地址,然後將資料分配至整個收件人裝置群組。如需詳細資訊,請參閱建立多點傳送群組,以將下行承載傳送至多個裝置。
下行訊息佇列的運作方式
LoRaWAN 裝置的裝置類別決定了佇列中的訊息傳送至裝置的方式。A 類裝置會將上行訊息傳送至 AWS IoT Core for LoRaWAN 以指示裝置可用於接收下行訊息。B 類裝置可以在常規的下行位置接收訊息。C 類裝置可以隨時接收下行訊息。如需裝置分級的詳細資訊,請參閱 裝置類別。
下面顯示如何將訊息排入佇列並將其傳送至 A 類裝置。
- 
                        AWS IoT Core for LoRaWAN 會透過訊框連接埠、承載資料,以及使用 AWS IoT 主控台或 AWS IoT Wireless API 所指定的確認模式參數,來緩衝您新增至佇列的下行訊息。 
- 
                        您的 LoRaWAN 裝置傳送一則上行訊息,指示其處於線上狀態,並且可以開始接收下行訊息。 
- 
                        如已將多個下行訊息新增至佇列,則 AWS IoT Core for LoRaWAN 將佇列中的第一則下行訊息傳送至已設定確認 (ACK) 旗標的裝置。 
- 
                        您的裝置會立即將上行訊息傳送至 AWS IoT Core for LoRaWAN,或是進入睡眠狀態,直到下一個上行訊息產生且在訊息中包含 ACK 旗標。 
- 
                        AWS IoT Core for LoRaWAN 接收含有 ACK 旗標的上行訊息時,會清除佇列中的下行訊息,指示您的裝置已成功收到下行訊息。如果檢查三次後上行訊息中仍缺少 ACK 旗標,則會丟棄該訊息。 
使用主控台執行下行佇列操作
您可以使用 AWS Management Console 將下行訊息排入佇列,並根據需要清除個別訊息或整個佇列。若為 A 類裝置,在從裝置接收上行訊息以指示裝置處於線上狀態後,已排入佇列的訊息將會傳送至裝置。訊息傳送後,即會自動從佇列中清除。
將下行訊息排入佇列
建立下行訊息佇列
- 
                        前往 AWS IoT 主控台的裝置集線器 ,然後選擇要將下行訊息排入佇列的裝置。 
- 
                        在裝置詳細資訊頁面的 Downlink messages (下行訊息) 部分中,選擇 Queue downlink messages (將下行訊息排入佇列)。 
- 
                        請指定以下參數以設定下行訊息: - 
                                FPort:選擇裝置與 AWS IoT Core for LoRaWAN 通訊的訊框連接埠。 
- 
                                Payload (承載):指定您要傳送至裝置的承載訊息。承載大小上限為 242 個位元組。如果啟用了調適型資料速率 (ADR),AWS IoT Core for LoRaWAN 會使用其為您的承載大小選擇最佳的資料速率。您可以根據需要進一步最佳化資料速率。 
- 
                                Acknowledge mode (確認模式):確認您的裝置是否已收到下行訊息。如果訊息需要此模式,您將會在資料串流中看到含有 ACK 旗標的上行訊息,且訊息將從佇列中清除。 
 
- 
                                
- 
                        若要將下行訊息新增至佇列,請選擇 Submit (提交)。 
您的下行訊息現已新增至佇列。如果您未看到訊息或接收到錯誤,則可以疑難排解錯誤,如 下行訊息佇列錯誤疑難排解 中所述。
注意
將下行訊息新增至佇列後,您便無法再編輯參數 FPort、Payload (承載) 和 Acknowledge mode (確認模式)。若要使用不同的參數值來傳送下行訊息,您可以刪除此訊息,並使用更新的參數值將新的下行訊息排入佇列。
佇列會列出您新增的下行訊息。若要查看裝置和 AWS IoT Core for LoRaWAN 之間交換的上行和下行訊息的承載,您可以使用網路分析器。如需詳細資訊,請參閱使用網路分析器即時監控無線資源機群。
列出下行訊息佇列
您建立的下行訊息即會新增至佇列。每個後續下行訊息均會在此訊息之後新增至佇列中。您可以在裝置詳細資訊頁面的 Downlink messages (下行訊息) 部分查看下行訊息清單。接收上行後,訊息將傳送至裝置。在您的裝置收到下行訊息後,訊息將從佇列中移除。然後,下一則訊息將在佇列中向上移動,以便傳送至您的裝置。
刪除個別下行訊息或清除整個佇列
每則下行訊息在傳送至您的裝置後,均會自動從佇列中清除。您亦可刪除個別訊息或清除整個下行佇列。這些動作無法復原。
- 
                        如果您在佇列中找到不想傳送的訊息,請選擇訊息,然後選擇 Delete (刪除)。 
- 
                        如果您不希望將佇列中的任何訊息傳送至您的裝置,則可以選擇 Clear downlink queue (清除下行佇列)。 
使用 API 執行下行佇列操作
您可以使用 AWS IoT Wireless API 將下行訊息排入佇列,並根據需要清除個別訊息或整個佇列。
將下行訊息排入佇列
若要建立下行訊息佇列,請使用 SendDataToWirelessDevice API 操作或 send-data-to-wireless-device CLI 命令。
aws iotwireless send-data-to-wireless-device \ --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \ --transmit-mode "1" \ --payload-data "SGVsbG8gVG8gRGV2c2lt" \ --wireless-metadata LoRaWAN={FPort=1}
執行此命令的輸出會為下行訊息產生 MessageId。在某些情況下,即使您收到 MessageId,資料封包繩也可能會被丟棄。如需如何解決錯誤的詳細資訊,請參閱 下行訊息佇列錯誤疑難排解。
{ MessageId: "6011dd36-0043d6eb-0072-0008" }
列出佇列中的下行訊息
若要列出佇列中的所有下行訊息,請使用 ListQueuedMessages API 操作或 list-queued-messages CLI 命令。
aws iotwireless list-queued-messages
預設情況下,執行此命令時最多可顯示 10 則下行訊息。
移除個別下行訊息或清除整個佇列
若要從佇列中移除個別訊息或清除整個佇列,請使用 DeleteQueuedMessages API 操作或 delete-queued-messages CLI 命令。
- 
                        若要移除個別訊息,請提供您想要為無線裝置移除的訊息的 messageID(由wirelessDeviceId指定)。
- 
                        若要清除整個下行佇列,請針對您的無線裝置將 messageID指定為*(由wirelessDeviceId指定)。
下行訊息佇列錯誤疑難排解
若您並未看到預期的結果,請檢查以下事項:
- 
                         
                            下行訊息不會顯示在 AWS IoT 主控台中如果在新增 (如 使用主控台執行下行佇列操作 中所述) 後在佇列中看不到下行訊息,這可能是因為您的裝置尚未完成名為啟用或聯結程序的程序。當您的裝置加入 AWS IoT Core for LoRaWAN 時,此程序即完成。如需詳細資訊,請參閱使用主控台將您的無線裝置規格新增至 AWS IoT Core for LoRaWAN。 在將您的裝置加入 AWS IoT Core for LoRaWAN 後,您可以使用網路分析器或 Amazon CloudWatch 來監控您的裝置,以檢查聯結和重新聯結是否成功。如需詳細資訊,請參閱監控工具。 
- 
                         
                            使用 API 時遺失下行訊息資料封包當您使用 SendDataToWirelessDeviceAPI 操作時,API 會傳回唯一的MessageId。但是,這無法確認您的 LoRaWAN 裝置是否已收到下行訊息。如果您的裝置尚未完成聯結程序,則下行資料封包可能會被丟棄。如需如何解決此錯誤的詳細資訊,請參閱上一節。
- 
                         
                            傳送下行訊息時發生缺少 ARN 錯誤從佇列將下行訊息傳送至您的裝置時,您可能會接收到遺失 Amazon 資源名稱 (ARN) 錯誤。由於未為接收下行訊息的裝置正確指定目的地,即可能會出現此錯誤。若要解決此錯誤,請檢查裝置的目的地詳細資訊。