如何通过HTTP将数据发送到Thingsboard

时间:2020-05-26 20:15:40

标签: json csv http thingsboard

我在本地计算机(Windows)上使用 thingsboard ,并且我需要通过 HTTP POST 请求从CSV文件发送数据,为此,我需要编写一个 JAVA 程序,该程序将允许将数据从 JSON 文件发送到Thingsboard平台。 您对我有什么建议吗?

1 个答案:

答案 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)