我想检索有关某个主题的mqtt中发送的数据,我也使用influxdb telegraf和chronograf显示这些值的图形。但是我想根据主题使用python程序和SQL检索这些值。
我从一些代码开始,但是我无法定义所需的主题。 我使用以下SQL查询:“按时间DESC LIMIT 1从%s ORDER中选择%s”来获取最后一个值,但是它不取决于主题。...
取决于主题的Chronograf上的SQL查询是: SELECT mean(“ I”)AS“ mean_I”来自“ michelin”。“ autogen”。“ mqtt_consumer” WHERE time>:dashboardTime:AND“ topic” ='PI1'GROUP BY time(:interval :) FILL(null)< / p>
所以我想根据主题PI1,但是我如何在SQL请求中实现它,所以我尝试添加:AND topic ='PI1',但它不起作用。如果有人可以帮助我。 感谢您的反馈。
def run(element):
"""Instantiate a connection to the InfluxDB."""
host='localhost'
port=8086
dbname = 'michelin'
measurement = "michelin.autogen.mqtt_consumer"
device = element
user=""
password=""
results = read_energy_data(dbname,measurement,device)
return(results)
def read_energy_data(db, measurement, device):
client = InfluxDBClient(host='localhost', port='8086')
client.switch_database(db)
results = client.query(("SELECT %s from %s ORDER by time DESC LIMIT 1 ") % (device, measurement))
points = results.get_points()
for item in points:
return item[device]