我在本地计算机(Windows)上使用 thingsboard ,并且我需要通过 HTTP POST 请求从CSV文件发送数据,为此,我需要编写一个 JAVA 程序,该程序将允许将数据从 JSON 文件发送到Thingsboard平台。 您对我有什么建议吗?
答案 0 :(得分:0)
这很简单,不需要身份验证,大约是Telemetry Upload API。由于您没有csv的任何示例,并且假设您可能会找到大量的指南,因此我在这里仅举一个示例,根据您的要求,使用python http客户端对THINGSBOARD服务器执行POST http请求,可以在任何语言。
您仅应:
在data
词典中将数据从csv或任何格式转换为以下格式,并在ts
字段中使用正确的时间戳记values
和其他变量。如果您不输入ts
,它将在其上标记数据的输入时间。 ts
必须以毫秒为单位。
将其转换为json
如示例中所述,在URL中使用主机IP地址,该设备的PORT和访问令牌。
import requests, json
IP, PORT, access_token = ???.???.???.??? # host address of Thingsboard server
PORT = 8080 # normally it should be 8080
access_token = XXXXXXXX # you can copy it easily from device panel of Thingsboard
data = [
{
"ts": 1591123823000,
"values": {
"TEMPERATURES": 100,
"DEW_POINT": 28,
"VALUE_X": 0
}
},
{
"ts": 1591123883000,
"values": {
"TEMPERATURES": 150,
"DEW_POINT": 26,
"VALUE_X": 10
}
},
{
"ts": 1591123943000,
"values": {
"TEMPERATURES": 200,
"DEW_POINT": 25,
"VALUE_X": -10
}
}
]
data = json.dumps(data)
headers = {'Content-Type': 'application/json',}
url_post = 'http(s)://{}:{}/api/v1/{}/telemetry'.format(IP, PORT, access_token)
response = requests.post(url_post, headers=headers, data=data)