Python 3.x Mqtt将消息发布到本地主机。telegraf正在监视本地主机,但无法将其发送到XDB。可能出了什么问题?

Python 3.x Mqtt将消息发布到本地主机。telegraf正在监视本地主机,但无法将其发送到XDB。可能出了什么问题?,python-3.x,mqtt,influxdb,telegraf,Python 3.x,Mqtt,Influxdb,Telegraf,这里,, 如果telegraf到XDB的连接成功,因为当我重新启动telegraf时,它会创建我在配置文件中提到的db。但是mqtt发布的消息没有被telegraf接收到,我甚至试图将其放入文件,但它是空的。 所以有点不对劲 import paho.mqtt.client as mqtt from influxdb import InfluxDBClient import json influxclient = InfluxDBClient(host='localhost', port=80

这里,, 如果telegraf到XDB的连接成功,因为当我重新启动telegraf时,它会创建我在配置文件中提到的db。但是mqtt发布的消息没有被telegraf接收到,我甚至试图将其放入文件,但它是空的。 所以有点不对劲

import paho.mqtt.client as mqtt
from influxdb import InfluxDBClient
import  json

influxclient = InfluxDBClient(host='localhost', port=8086)
# This is the Publisher

dict_msg={"temperature":"20.5"}
msg = json.dumps(dict_msg)

MQTT_HOST = "127.0.0.1"
MQTT_PORT = 1883
MQTT_KEEPALIVE_INTERVAL = 45
MQTT_TOPIC = "sensors"

count = 0

# Define on_publish event function 
def on_publish(client, userdata, mid):
print("Message Published..")


# Initiate MQTT Client
mqttc = mqtt.Client()

mqttc.on_publish = on_publish

# Connect with MQTT Broker
mqttc.connect(MQTT_HOST, MQTT_PORT, MQTT_KEEPALIVE_INTERVAL)

x = 0
while x <= 100000:
    # Publish message to MQTT Broker
    mqttc.publish(MQTT_TOPIC,msg)
    # influx_line_protocol = ("published,counts" = count)
    # print(count)
    x += 1

mqttc.loop(30)
# Disconnect from MQTT_Broker
mqttc.disconnect()`
mqtt-config

[[inputs.mqtt_consumer]]
## MQTT broker URLs to be used. The format should be 
scheme://host:port,
## schema can be tcp, ssl, or ws.
servers = ["tcp://127.0.0.1:1883"]

## Topics to subscribe to
topics = [
  "telegraf/sensors/#",
   ]
data_format = "influx"
也尝试使用json。 不走运


感谢您的帮助。

有两件事不对:

  • 您没有在telegraf.conf中配置XDB输出
  • 您的温度读数是字符串,而不是数字类型
  • 我在这里为您提供了一个使用MQTT插件的工作示例:

    附:石哈尔交叉柱。复制我的答案在这里,与演示;以防其他人遇到类似的问题


    有两件事不对:

  • 您没有在telegraf.conf中配置XDB输出
  • 您的温度读数是字符串,而不是数字类型
  • 我在这里为您提供了一个使用MQTT插件的工作示例:

    附:石哈尔交叉柱。复制我的答案在这里,与演示;以防其他人遇到类似的问题


    您正在发布主题
    sensors
    并订阅
    telegraph/sensors/#
    必须对sensors/#进行子描述,只有这样才能与您发布的内容相匹配,订阅
    sensors
    是否有效您正在发布的主题
    sensors
    和订阅
    telegraph/sensors/#
    必须对sensors/#进行subcription/#只有到那时???要与您发布的内容相匹配,只订阅
    sensors
    是否有效
    [[inputs.mqtt_consumer]]
    ## MQTT broker URLs to be used. The format should be 
    scheme://host:port,
    ## schema can be tcp, ssl, or ws.
    servers = ["tcp://127.0.0.1:1883"]
    
    ## Topics to subscribe to
    topics = [
      "telegraf/sensors/#",
       ]
    data_format = "influx"