【发布时间】:2021-09-11 21:33:45
【问题描述】:
所以我在 Helium 控制台中定义了一个集成(即 IoT LoRaWAN 网络服务)。当我测试从我的 IoT 设备向我的 Helium 控制台集成端点发送数据时,我可以看到有效负载。我可以手动将其解码回正确的 JSON 请求正文。但是我无法在 Helium 控制台中定义一个自定义函数,该函数将自动执行此集成。我的 IoT 设备正在序列化环境数据的 MsgPack 有效负载,然后将其发送到 Helium 控制台集成端点。 Helium 控制台自定义功能允许使用 Javascript,虽然只是简单的框架,没有任何要求、导入等。
下面是可以手动解码payload的Python脚本。如果有人熟悉这个领域,我会对建议感兴趣。有可用于 Helium 的预定义解码器,但没有一个与我的硬件完全匹配。
如果有人为 Helium 控制台集成创建了自定义解码功能,我会很好奇如何将其淘汰。这里有一些关于这个的信息 --> https://docs.helium.com/use-the-network/console/functions/.
import ssl, sys, json, base64
import msgpack
payload = "haJiVspAozMzo3RfQxilZWNfbVMWonBoB6NvcnAC"
# decode the payload from base64 and unpack
b64 = base64.b64decode(payload)
mp_dict = msgpack.unpackb(b64)
print(mp_dict) # output is {'bV': 5.099999904632568, 't_C': 24, 'orp': 2, 'ph': 7, 'ec_mS': 22}
【问题讨论】:
标签: javascript iot lorawan