wer kann mir bitte bei einer ganz einfachen Abfrage weiterhelfen, ich schaffs einfach nicht
Ich möchte den letzten Wert von temp_sensor1 mit dem Tag “volk=1” haben.
Ich verwende den InfluxDBClient in Python mit folgender Abfrage:
temp = client.query('SELECT LAST(value) from "temp_sensor1" where "volk"="1"')
ist der Datentyp des Tag-Felds “volk” vielleicht Integer?
Kannst Du unabhängig davon auch noch das komplette Python Programm mit uns teilen? Vielleicht lässt sich ja noch etwas anderes erkennen, warum das gerade in die Hose geht.
Hallo Andreas,
der Datentyp von Volk sollte eigentlich (auch wenns anders zu erwarten wäre) ein String sein. Ich habs die Abfrage auch mit Integer probiert, funktioniert leider auch nicht.
Das ganze Python-Script ist relativ einfach, weil ich wollte nur versuchen ob das so klappt
# python3 -m pip install influxdb
from influxdb import InfluxDBClient
client_Influx = InfluxDBClient(host='123.123.123.123', port=8086, username='waage', password='password, database='db')
temp = client_Influx.query('SELECT LAST(value) from "temp_sensor1" where "volk"="1"')
Das hier ist nur ein Typo vom Abschreiben, stimmts?
Ich glaube Strings müssen über einfache Anführungszeichen (single-quotes) angesprochen werden, während Symbolnamen (Tabellenname sowie Feldnamen) optional mit doppelten Anführungszeichen gequotet werden können.
Beide dieser Anfragen sollten also funktionieren:
SELECT LAST(value) from temp_sensor1 where volk='1'
SELECT LAST("value") from "temp_sensor1" where "volk"='1'
Im Trockendock (ohne Python, sondern dafür direkt im Terminal) könnte es folgendermaßen funktionieren:
influx -precision rfc3339 -host 123.123.123.123 -username waage -password password -database db -execute "SELECT LAST(value) from temp_sensor1 where volk='1';"
ich hab das jetzt ausprobiert, leider ohne Erfolg.
Direkt im Terminal klappt SELECT * from temp_sensor1
Und jetzt kommts, ich trau es mir fast nicht sagen, aber ihr wisst ja e nicht wo ich wohne
Der Datenbank-Eintrag heißt nicht “value” sonder “wert”
Also SELECT LAST(wert) from temp_sensor1 where volk='1'
funktioniert wunderbar.