NEWS
Abfrage influxDB 2.0 per node-red
-
Hallo zusammen,
ich kämpfe gerade mit folgendem Problem:Ich möchte über node-red den LETZTEN um 00:00 in die influxDB (2.0 !) geschrieben Wert abfragen, um die Tagessumme zu berechnen.
- Influx:
- node-red (Änderung aggregationWindow ->2d):
Leider ergibt die Abfrage folgenden Fehler:
Wer kann mir bitte helfen ? WAS stimmt an der Abfrage NICHT ?
Auch mein Alternativ-Abruf per ioBroker/ influxDB Adapter funktioniert bisher NICHT:
Die Verbindung wird wohl hergestellt, aber es erscheinen Keine Datenpunkte:
Danke für Euere Hilfe
Andreas -
@ak68 sagte in Abfrage influxDB 2.0 per node-red:
WAS stimmt an der Abfrage NICHT ?
Das "v" bezieht sich auf den Zeitraum, der z.B. in Grafana Dashboards eingestellt ist. In deiner Abfrage gibt es diese Variable deshalb nicht. Hier muss ein absoluter oder relativer Zeitwert angegeben werden. Wenn du die Abfrage hier als Text in Code-Tags reingestellt hättest, könnte man das gleich als Beispiel reinstellen.
-
Danke für die Hilfe, hier der (bisherige) Code:
from(bucket: "datenbank_langzeit") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler") |> aggregateWindow(every: 1d, fn: mean) |> yield(name: "mean")
-
@ak68 sagte in Abfrage influxDB 2.0 per node-red:
Danke für die Hilfe, hier der Code:
from(bucket: "datenbank_langzeit")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler")
|> aggregateWindow(every: 1m, fn: mean)
|> yield(name: "mean")Hier ein Beispiel, welches die letzten 10 Tage abfragt. Das musst du dann mit für dich sinnvollen Daten ersetzen.
from(bucket: "datenbank_langzeit") |> range(start: -10d, stop: now) |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler") |> aggregateWindow(every: 1m, fn: mean) |> yield(name: "mean")
-
Danke erst einmal, funktioniert aber leider noch nicht:
-
@ak68 sagte in Abfrage influxDB 2.0 per node-red:
funktioniert aber leider noch nicht
Ja, mein Fehler. Wenn "bis jetzt" abgefragt werden soll, dann ohne Stop-Parameter
from(bucket: "datenbank_langzeit") |> range(start: -10d) |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler") |> aggregateWindow(every: 1m, fn: mean) |> yield(name: "mean")
-
Danke, jetzt komme ich weiter .......
-
@ak68
Hallo,ich würde mal so starten:
import "date" import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "telegraf") |> range(start:date.truncate(t: -30d, unit: 1d)) |> filter(fn: (r) => r["_measurement"] == "Strom_Wallbox_Zaehler") |> aggregateWindow(every: 1d, fn: last, createEmpty: false) |> difference(nonNegative: true) |> yield(name: "daily")
Was macht das?
- es lädt die deutsche Zeitzone, da Du ja vermutlich nicht die Summen nach UTC machen möchtest
- es setzt den Startpunkt auf den Tagesanfang vor 30 Tagen
- es wird dann jeweils der letzte Wert des Tages genommen (nicht der Durchschnitt (mean))
- es werden die Differenzen zwischen den Tagesendpunkten genommen
d.h. aus der Abfrage purzeln die Tagessummen der letzten 30 Tage direkt heraus.
(nicht wundern über den Time-Wert, der steht aktuell auf ...23:00:00.000Z, das kommt durch UTC/CET-Unterschied)
Der letzte Wert ist dann natürlich das was heute bis jetzt angefallen ist. -
Vielen Dank, ich versuche mich an Eueren Anleitungen "enlangzuhangeln"
Jetzt möchte ich die Maximaltemperatur der letzten 24h auslesen (alt: seit 0 Uhr)
Leider bring die folgende Abfrage keine korrekten Werte und müsste eigentlich um 7.0 Grad zurückwerfen;
import "date" import "timezone" option location = timezone.location(name: "Europe/Berlin") from(bucket: "datenbank_kurzzeit") |> range(start: -24h) |> filter(fn: (r) => r["_measurement"] == "T.Aussen") |> aggregateWindow(every: 1d, fn: max) |> yield(name: "max")
Wie muss hier die korrekte Syntax sein ?
Danke