我一直在尝试使用一个小的 GSM 调制解调器和 InfluxDB2 HTTP API 从外部将数据记录到我的家庭服务器 - 它很远,需要在外部,只需检查水位和其他系统内容。
我正在努力理解正确的有效负载和提供它的密钥,以便它接受我的数据。
我在 Micro Python 上使用 ESP32 和请求模块,使用 MicroPython_ESP32_psRAM_LoBo。
我正在使用的 GSM 库让一切都像连接到 Wifi 一样工作,我很确定我的问题与 GSM 方面无关。
系统使用 InfluxDB2 和 Python3(准确的说是 Micro Python)
当前设置
payload = {"header":"Authorization: Token CrAzYlOnG_ToKeN", "data-raw":"WaterWatcher1 Level=532,Volume=752.22,BattV=3.768,Temperature=25.36 1621434110"}
response = requests.post("http://xxx.xxx.xxx.xxx:8086/api/v2/write?org=Home_Org&bucket=BackYardInfo&precision=s", params=payload)
( xxx 替换为我正确的 IP - 是的,我已确保这是正确的,并让我的 ISP 将其设置为静态)
这给了我一个恒定的身份验证错误:
W (3390149) HTTP_CLIENT: This request requires authentication, but does not provide header information for that
我已经阅读了 InfluxDB2 文档,但似乎仍然无法正确理解,我似乎认为如果我在 InfluxDB Ver 1 中这样做会更容易,但现在我只想尝试以这种方式学习它。
我手动输入了完全相同的数据,效果很好(虽然更改了时间戳)
我很确定这归结为我只是不知道如何使用请求模块正确发送数据,任何指针和解释都会有很大帮助。