【问题标题】:Posting multiple data in IoT gateway Thingsboard在 IoT 网关 Thingsboard 中发布多个数据
【发布时间】:2019-07-05 20:15:15
【问题描述】:

我刚刚开始使用 Thingsboard,我遇到了这个,https://thingsboard.io/docs/iot-gateway/getting-started/。我已经实现了它,但我面临的问题是,

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

2.另外,如果有任何其他方式可以访问 Cassandra 数据库,以便我可以将所有我的数据检索到 Thingsboard。

请帮忙。谢谢你。

【问题讨论】:

    标签: cassandra thingsboard


    【解决方案1】:

    你问的是两个非常不同的事情。

    1) 通过正确映射网关传入消息,您可以一次传输更多键值对。我想您正在使用 MQTT 协议。此协议的默认映射在 /etc/tb-gateway/conf/mqtt-config.json 中指定。此文件指定如何将来自代理的传入 MQTT 消息转换为 ThingsBoard 键值格式,然后再发送到 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, "humidity":40} 的消息,您将在名为“test”的设备中看到ThingsBoard 服务器中的两个键值对。

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

    【讨论】:

      【解决方案2】:

      例如,湿度、温度、气体。

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

      {"humidity":42.2, "temperature":23.3, "gas":45}
      

      如果您有多个传感器连接到单个设备,请像这样发送它们

      {"sensorA.humidity":42.2, "sensorB.temperature":23.3, "sensorC.gas":45}
      

      可用主题是静态的,并在此处列出: https://thingsboard.io/docs/reference/mqtt-api/#telemetry-upload-api

      【讨论】:

        猜你喜欢
        • 2021-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-04
        • 1970-01-01
        相关资源
        最近更新 更多