如何解码LoRaWAN有效载荷?



我正在连接万尼管理中心。

每个设备都为我提供有效载荷的数据。

我可以访问如下数据:

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=="))

I got this:

bytearray(b'x01x00xd1x029x04x00x00x05x00x07rxf7x15@"')

现在我不知道下一步该做什么。

您不应该解码有效负载。我不使用Kerlink,但例如在TTN或Chirpstack上,应用程序服务器为您解码并将其传递给您设置的任何代理- HTTP:集成,Datacake等。这些服务器具有有效负载格式化器,可以解码有效负载,并可以从简单地传递字节到解码Cayenne流或其他方式进行格式化。

注意上面的有效负载"AQDRAjkEAAAFAAcN9xVAIg=="确实是Base64编码的。但它不是你的终端节点发送的-不是直接:数据是用你的ApplicationKeyDevEUI编码的AES-128。因此,除非您熟悉AES和LoRaWAN安全协议,否则您无法访问负载中的数据。相反,您必须添加一个集成协议,它将传递解码消息(以及更多)。

最新更新