簡體   English   中英

如何解碼 LoRaWAN 有效載荷?

[英]How to decode LoRaWAN payload?

我目前正在連接到 Wanesy 管理中心。

每個設備都為我提供有效載荷的數據。

我可以訪問以下數據:

device EUI  A81758FFFE0463D4
device addr 021C4EC6
application EUI 0000000000000000
application key BB408BA747D12C4EC8ABA547990D911B
DevNonceCounter Disabled

我有這個數據上行鏈路:

Status    Plain
Payload type    BASE64
Payload    AQDRAjkEAAAFAAcN9xVAIg==

這是我到目前為止所嘗試的:

payload = bytearray(b64decode("AQDRAjkEAAAFAAcN9xVAIg=="))

我懂了:

bytearray(b'\x01\x00\xd1\x029\x04\x00\x00\x05\x00\x07\r\xf7\x15@"')

現在我不知道我的下一步是什么。

在解碼來自 loRaWAN 的信息時,您需要首先解碼 base64 有效載荷,然后您將擁有一個類似於藍牙設備制造數據的字節數組(您已經擁有)。 下一步是在他們的支持網站上搜索手冊或直接通過 email 尋求支持以獲取信息,這些信息通常稱為應用說明數據表用戶指南等。 此文件包含與有效負載相關的所有信息以及如何解析該信息,在某些情況下,銷售傳感器的公司已經有一個解析器,您可以從中查看代碼。

您不必解碼有效負載。 我不使用 Kerlink,但例如在 TTN 或 Chirpstack 上,應用程序服務器會為您解碼它並將其傳遞給您設置的任何代理 - HTTP:集成、Datacake 等。這些服務器具有有效負載格式化程序解碼有效載荷並可以將其格式化,從簡單地傳遞字節到解碼 Cayenne stream 或其他方式。

請注意,您上面的有效載荷"AQDRAjkEAAAFAAcN9xVAIg=="確實是 Base64 編碼。 但這不是你的終端節點發送的——不是直接發送的:數據是用你的ApplicationKey和你的DevEUI編碼的 AES-128。 因此,除非您對 AES 和 LoRaWAN 安全協議感到滿意,否則您無法訪問有效負載中的數據。 相反,您必須添加一個將傳遞解碼消息(以及更多)的集成協議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM