NEWS
Werte der influxDB als Excel ausleiten
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
Sehe schon das läuft auf eine Löschung des ganzen Datenpunkts heraus
Moin,
erst mal langsam und tief Luft holen.
Zu Deinen Grafiken, ohne die Abfragen dahinter, kann man da nicht viel machen, dann muss ich erst mal verstehen, um welche Daten es sich handelt, bei meinem Stromzähler gibt es zwei Datenpunkte
sonoff.0.DVES_8AA766.SENSOR.SML.akt_w <- der aktuelle Verbrauch sonoff.0.DVES_8AA766.SENSOR.SML.total_kwh <- der gesamte Verbrauch seit
Wenn es sich um aktuelle Werte handelt, kann es nicht sein, dass Du einen Verbraucher eingeschaltet hast?
Dann hast Du meine beiden Bilder nicht richtig angeschaut im ersten war die
range (start: v.time....
, damit bekam ich drei Werte, das zweite Bild war dann genau 15 Minuten vor und 15 Minuten nach der Meldezeit eingestellt.Dein Wert von ~5000 war heute um 7:24 Zulu Zeit, das ist 9:24 in Deutschland
Hier mal ein anderes Beispiel:
from(bucket: "iobroker_strom") |> range(start: 2023-06-14T13:35:00Z, stop: 2023-06-14T13:40:00Z ) |> filter(fn: (r) => r["_measurement"] == "sonoff.0.DVES_8AA766.SENSOR.SML.akt_w") |> filter(fn: (r) => r["_field"] == "value") //|> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last")
Wenn Du Deinen Wert gefunden hast, dann kannst Du ihn auch genau mit dieser Eingrenzung, mittels delete löschen.
influx delete --bucket iobroker-data --start
hier_zeitpunktanfang
--stopzeitpunktende
--predicate '_measurement="Stromzähler"'Er findet in diesem Zeitraum ja nur den einen Wert und löscht dann auch nur den und nicht das ganze Bucket.
Ich kann das aber erst morgen mal testen.
VG
Bernd -
Hallo Bernd,
ich versuche hier mal Antworten zu geben:
"Zu Deinen Grafiken, ohne die Abfragen dahinter, kann man da nicht viel machen, dann muss ich erst mal verstehen, um welche Daten es sich handelt, bei meinem Stromzähler gibt es zwei Datenpunkte"
Es ist der Datenpunkt in bei dem der aktuelle Verbauch angezeigt wird.
++++++++++++++++++++
"Wenn es sich um aktuelle Werte handelt, kann es nicht sein, dass Du einen Verbraucher eingeschaltet hast?"
Nein, es war von 6:45 - 11:30 keiner Zuhause und keine Verbraucher mit so hoher Leistung an)
++++++++++++++++++++++
"Dann hast Du meine beiden Bilder nicht richtig angeschaut im ersten war die range (start: v.time...., damit bekam ich drei Werte, das zweite Bild war dann genau 15 Minuten vor und 15 Minuten nach der Meldezeit eingestellt."
Doch das habe ich aber bei mir kamen da keine Daten raus.
Jetzt habe ich es noch einmal versucht:Sowohl mit 7:24 und 9:24 aber der Wert kam nicht (Denke mal das Z steht für Zulu?)
Immerhin kamen jetzt die 3 Werte.
+++++++++++++++++++++++++++++
"Wenn Du Deinen Wert gefunden hast, dann kannst Du ihn auch genau mit dieser Eingrenzung, mittels delete löschen.
influx delete --bucket iobroker-data --start hier_zeitpunktanfang --stop zeitpunktende --predicate '_measurement="Stromzähler"'
Er findet in diesem Zeitraum ja nur den einen Wert und löscht dann auch nur den und nicht das ganze Bucket.
Ich kann das aber erst morgen mal testen."
Ich werde den Wert noch mal versuchen zu finden und dann noch mal warten bis du es getestet hast.
Was hat das mit dem Screenshot von dir auf sich?
Ich sehe du hast da vermutlich was eingefügt //> aggregat .............Edit:
Habe gerade noch mal den Punkt gesucht und gefunden:
Dann den Wert so wie gezeigt eingegeben:
und auch das haut nicht hin.
Habe es in der Zeile 5 mit//|>
und ohne probiert.
Das interessante ist ja auch das die Werte Watt und _time gleich sind wie im ersten Screenshot und _start und _stop die Zeit schon wieder anders....... und noch einen zu hohen Wert gefunden im ähnlichen Zeitbereich??.
Der Wert ist vorher nie erschiene, ich glaube das Influx DB will mich in den Wahnsinn treiben
Ich finde hier keine Systematik.Gruß Duffy
-
vergiss mal die _start und _stop Spalten in den Ergebnissen, die sind hier völlig irrelevant. Entscheidend ist die "_time" Spalte. Hier steht der Zeitstempel, zu welchem der Wert aufgezeichnet wurde.
Mit diesem Range solltest du deinen ersten Ausreißer bekommen
|>range (start: 2023-06-14T07:22:00Z, stop: 2023-06-14T07:25:00Z)
Hier fehlt übrigens das "stop:"
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
Habe gerade noch mal den Punkt gesucht und gefunden:
Moin,
zu viele Bilder, da kann man immer so schlecht Kopieren
du musst in die Abfrage mal start: 2023-06-14T07:20:00.000Z und stop: 2023-06-14T07:25:00.000Z eingeben
Z = Zulu Zeit, Greenwich Zeit oder UTC
Für Deutschland kommen dann entweder +1/+2 Stunde(n) draufgerechnetNein alles was in der FLUX Abfrage mit
//
beginnt, ist kommentiert, also wird es ignoriert.Diese zwei Werte
_start
und_stop
das sind die Werte, die Du durch den eingestellten Abfragezeitraum bekommst
Wenn Du um 12 Uhr Mittags sagst, gib mir die letzten 12 Std., dann bekommst Du die Werte von 00:00 Uhr bis 12:00 Uhr, wenn Du aber das Gleiche um 14 Uhr machst, dann bekommst Du natürlich auch andere Werte, denn 14 - 12 ist 2 Uhr Nachts bis 14 Uhr Mittags.
Daher verändern sich die Werte für_start
und_stop
. Nur die dritte Spalte _time ist wichtig, denn das ist der Wert, als das Ereignis geschehen ist.VG
Bernd -
@duffy sagte in Werte der influxDB als Excel ausleiten:
Der Wert ist vorher nie erschiene, ich glaube das Influx DB will mich in den Wahnsinn treiben
Moin,
das ist nicht die
influxDB
die zeigt dir nur das, was da drin ist an.Kannst Du mal die Daten zeigen wie hier im Beispiel
Ich möchte nur mal sehen, ob du vom
Value
mehrere Senderfrom
im Bucket hast.Dann schau mal, ob sich da noch mehr von den angeblichen Ausreißern im Bucket verstecken
from(bucket: "iobroker_strom") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "sonoff.0.DVES_8AA766.SENSOR.SML.akt_w") |> filter(fn: (r) => r["_field"] == "value") //|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) //|> yield(name: "mean") //|> max(column: "_value") |> highestMax(n:10, groupColumns: ["_value"])
VG
Bernd -
Danke marc-berg für den Hinweis auf die "wichtige" Zeit das schafft schon mal etwas Entspannung in der Verwirrung.
So bin ich auf einen hohen Wert gestoßen.Gruß Duffy
-
@dp20eic
Hallo Bernd,
hier der gewünschte Screenshot.
Danke auch für die Erklärung mit der Zeit. Jetzt weis ich dan Eurer Hilfe welches die entscheidende Zeit ist und warum sich die anderen ändern.
Edit:
from(bucket: "iobroker-data") |>range (start: 2023-06-14T07:00:00Z, stop: 2023-06-14T08:00:00Z) |> filter(fn: (r) => r["_measurement"] == "Stromzähler") |> filter(fn: (r) => r["_field"] == "value") //|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) //|> yield(name: "mean") |> highestMax(n:10, groupColumns: ["_value"])
Hab das mal so eingegeben und es kam das heraus:
0 Stromzähler value 65396 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:23:22.950Z 0 Stromzähler value 649 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:20:02.990Z 0 Stromzähler value -70 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:00:03.117Z 0 Stromzähler value -75 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:00:33.017Z 0 Stromzähler value -78 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:00:13.005Z 0 Stromzähler value -79 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:00:23.020Z 0 Stromzähler value -81 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:00:52.997Z 0 Stromzähler value -83 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:01:22.978Z 0 Stromzähler value -123 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:22:03.024Z 0 Stromzähler value -129 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:21:52.986Z
War das so gemeint?
(Allerdings vermisse ich meinen Wert mit 5325,5 der anfänglich gezeigt wurde aber auf den kann ich gut verzichten wenn das der Fehler war, siehe unten)
0 Stromzähler value 65396 2023-06-14T07:00:00.000Z 2023-06-14T08:00:00.000Z 2023-06-14T07:23:22.950Z
Gruß Duffy
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
Allerdings vermisse ich meinen Wert mit 5325,5 der anfänglich gezeigt wurde
Das war kein echter Wert, sondern ein Mittelwert, den du mit "aggregateWindow" + dem Parameter "mean" erzeugt hast.
-
Danke Marc Berg für die Erklärung. Sollte eigentlich nur der jetzige Wert derjenige sein dich ich löschen können müsste.
Gru0 Duffy
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
der jetzige Wert derjenige sein dich ich löschen können müsste.
???
gibt es im Influx-Adapter nicht die Möglichkeit einzelne Werte in der Historie zu bearbeiten oder zu löschen?
-
Meinem Erkenntnisstand soll das nur über Befehle in der Konsole gehen.
Ach, warum muss das so kompliziert sein
Aber noch bleibe ich dank eurer Hilfe dran -
@homoran sagte in Werte der influxDB als Excel ausleiten:
gibt es im Influx-Adapter nicht die Möglichkeit einzelne Werte in der Historie zu bearbeiten oder zu löschen?
Leider für die InfluxDB 2.x noch nicht. Sollte aber im nächsten Release (latest) drin sein.
-
IIch habe versucht das mit den 5325,5 nachzustellen und habe das mit dem "aggregateWindow" + dem Parameter "mean" deaktiviert und es kommt immenoch die 65396.
from(bucket: "iobroker-data") |>range (start: 2023-06-14T07:22:00Z, stop: 2023-06-14T07:25:00Z) |> filter(fn: (r) => r["_measurement"] == "Stromzähler") |> filter(fn: (r) => r["_field"] == "value") //|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
Gruß Duffy
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
warum muss das so kompliziert sein
ist es das?
influx ist eben nicht ioBroker. Und Datenbankensprachen sind ziemlich komplex, da damit viel abgebildet werden muss.@duffy sagte in Werte der influxDB als Excel ausleiten:
Meinem Erkenntnisstand soll das nur über Befehle in der Konsole gehen.
was soll ich damit anfangen?
in dem history Adapter geht das ganz einfach
ich kann mir nicht vorstellen dass es mit dem InfluxDB-Adapter nicht geht. ich nutze allerdings kein Influx.
-
@marc-berg sagte in Werte der influxDB als Excel ausleiten:
@homoran sagte in Werte der influxDB als Excel ausleiten:
gibt es im Influx-Adapter nicht die Möglichkeit einzelne Werte in der Historie zu bearbeiten oder zu löschen?
Leider für die InfluxDB 2.x noch nicht. Sollte aber im nächsten Release (latest) drin sein.
Danke für diese Info.
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
IIch habe versucht das mit den 5325,5 nachzustellen und habe das mit dem "aggregateWindow" + dem Parameter "mean" deaktiviert und es kommt immenoch die 65396.
Moin,
nach der Erklärung von @Marc-Berg und deinen eigenen Ermittlungen ist das dann der einzige falsche Wert in der Datenbank.
Du hast in deiner Abfrage von oben den Zeitraum
range
nicht groß genug gewählt, damit hast du nur den einen gefunden, der in derrange
14.06.2023 7 Uhr UTC bis 14.06.2023 8 Uhr UTC auftauchte, aber nicht, ob du noch weitere Ausreißen in der Bucket hast
Wenn du die Abfrage von unten nimmst, dann sollten dir evtl. weitere ins Netz gehen.from(bucket: "iobroker-data") |>range (start: 1970-01-01T00:00:00Z, stop: now()) // das nimmt alle Daten aus dem Bucket von 1970 bis zur aktuennen Uhrzeit |> filter(fn: (r) => r["_measurement"] == "Stromzähler") |> filter(fn: (r) => r["_field"] == "value") |> highestMax(n:10, groupColumns: ["_value"]) // mit n:10 werden dir die 10 Höchsten Werte angezeigt //|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) //|> yield(name: "mean")
Jetzt, weißt du auch, warum ich das
aggregate
u.yeald
kommentiert//
habeDen/die gefundenen Werte kannst du dann einzeln, mittels
delete
löschen.
Ich würde mir dann nochmal den Datenpunkt, den du in die InfluxDB schreibst, anschauen und dort einen logischen max. Wert eintragen, damit es nicht wieder solche Ausreißer gibt.
Beispiel:
Ich habe da mal einen Wert von 6000 eingetragen, denn mein höchster Wert war ~5200, das hängt natürlich von deinen Werten ab.
VG
Bernd -
@dp20eic
Guten Abend Bernd,
Ich habe deine o.g. Daten einmal in influxDB eingetragen. Es scheint sich um den einzigsten Ausreißer zu handeln. Die restlichen Maximalwerte liegen um die 6700 was ungünstigerweise schon sein kann. Habe den Wert mal auf 7000 gesetzt.
(Sollten da einmal 7100 dürber liegen ist das auch egal)"Den/die gefundenen Werte kannst du dann einzeln, mittels delete löschen."
da ist es wieder mein Ursprungsproblem, wie mit delete löschen
"influx delete --bucket iobroker-data --start hier_zeitpunktanfang --stop zeitpunktende --predicate '_measurement="Stromzähler"'"
Sorry habe gerade versucht da was rein zu schreiben aber das wird nix da kommen mehr Fragen als Lösungen raus.
0 Stromzähler value 65396 0 2023-06-15T17:00:25.022Z 2023-06-14T07:23:22.950Z
Wie würde das dann für die Konsole so aussehen?
"influx delete --bucket iobroker-data --start 2023-06-14T07:23:22.950Z --stop 2023-06-14T07:23:22.950Z --predicate '_measurement="Stromzähler"'"
Edit:
Nein, habe es versucht ging nicht.
pi@raspberrypi:~ $ "influx delete --bucket iobroker-data --start 2023-06-14T07:23:22.950Z --stop 2023-06-14T07:23:22.950Z --predicate '_measurement="Stromzähler"'" -bash: influx delete --bucket iobroker-data --start 2023-06-14T07:23:22.950Z --stop 2023-06-14T07:23:22.950Z --predicate '_measurement=Stromzähler': command not found
VG Duffy
-
@duffy sagte in Werte der influxDB als Excel ausleiten:
Sorry habe gerade versucht da was rein zu schreiben aber das wird nix da kommen mehr Fragen als Lösungen raus.
Moin,
den verstehe ich nicht, löschen kannst Du nur auf der Kommandozeile mit
"influx delete --bucket iobroker-data --start hier_zeitpunktanfang --stop zeitpunktende --predicate '_measurement="Stromzähler"'"
influx delete --bucket iobroker-data --start 2023-06-14T07:22:00.000Z --stop 2023-06-14T07:23:50.000Z --predicate '_measurement="Stromzähler"'
Also nach den von Dir gezeigten und auch von @Marc-Berg bestätigten Zeiten solltest Du das löschen können.
Du betreibst alles auf dem gleichen Rechner?
Was kommt, wenn Du das auf der Kommandozeile eintippst?which influx
VG
Bernd -
@duffy sagte in Werte der influxDB als Excel ausleiten:
Nein, habe es versucht ging nicht.
Die Anführungsstriche ganz vorn und ganz hinten müssen weg.
-
@marc-berg sagte in Werte der influxDB als Excel ausleiten:
Die Anführungsstriche ganz vorn und hinten müssen weg.
Moin,
guter Hinweis, war mir entgangen.
VG
Bernd