Cassandra 在物联网网关Thingsboard中发布多个数据

Cassandra 在物联网网关Thingsboard中发布多个数据,cassandra,thingsboard,Cassandra,Thingsboard,我刚刚开始使用Thingsboard,我遇到了这个,。我已经实施了但我面临的问题是 1.我只能传输一个键值对。如何传输多个键值传感器数据 2.另外,如果有任何其他方式访问卡桑德拉数据库,以便我可以检索到Thingsboard的所有矿山数据 请帮忙。谢谢。例如,湿度、温度、气体 在这种情况下,您使用一个访问令牌/单个mqtt会话,并像这样以单个json发送数据 {"humidity":42.2, "temperature":23.3, "gas":45} {"sensorA.humidity":

我刚刚开始使用Thingsboard,我遇到了这个,。我已经实施了但我面临的问题是

1.我只能传输一个键值对。如何传输多个键值传感器数据

2.另外,如果有任何其他方式访问卡桑德拉数据库,以便我可以检索到Thingsboard的所有矿山数据


请帮忙。谢谢。

例如,湿度、温度、气体

在这种情况下,您使用一个访问令牌/单个mqtt会话,并像这样以单个json发送数据

{"humidity":42.2, "temperature":23.3, "gas":45}
{"sensorA.humidity":42.2, "sensorB.temperature":23.3, "sensorC.gas":45}
如果您有多个传感器连接到单个设备,请按如下方式发送它们

{"humidity":42.2, "temperature":23.3, "gas":45}
{"sensorA.humidity":42.2, "sensorB.temperature":23.3, "sensorC.gas":45}
可用主题是静态的,并在此处列出:
你问的是两件截然不同的事情

1) 通过正确映射网关传入消息,可以一次传输更多的键值对。我想您正在使用MQTT协议。此协议的默认映射在/etc/tb gateway/conf/mqtt-config.json中指定。此文件指定如何在发送到ThingsBoard的服务器实例之前,将来自代理的传入MQTT消息转换为ThingsBoard键值格式。 要映射来自传感器的多个读数,可以执行以下操作:

{
  "brokers": [
    {
      "host": "localhost",
      "port": 1883,
      "ssl": false,
      "retryInterval": 5000,
      "credentials": {
        "type": "anonymous"
      },
      "mapping": [
        {
          "topicFilter": "WeatherSensors",
          "converter": {
            "type": "json",
            "filterExpression": "",
            "deviceNameJsonExpression": "${$.WeatherStationName}",
            "timeout": 120000,
            "timeseries": [
              {
                "type": "double",
                "key": "temperature",
                "value": "${$.temperature}"
              },
              {
                "type": "double",
                "key": "humidity",
                "value": "${$.humidity}"
              }
            ]
          }
        }
      ]
    }
  ]
}
这样,如果您向主题
WeatherSensors
发送类似
{“WeatherStationName”:“test”,“temperature”:25,“湿度”:40}
的消息,您将在ThingsBoard server中的名为“test”的设备中看到两个键值对

2) 访问存储在内部ThingsBoard服务器中的数据的最佳方式是通过,这样您就可以使用同一段代码查询任何ThingsBoard实例,而不管数据库使用何种技术(Cassandra、PostgreSQL等)。您可以在本文中找到一个Python示例。 另一种方法是对数据库使用特定的查询语言,例如用于PostgreSQL的SQL或用于Cassandra的CQL