Influxdb: min, max, average....

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Wohnort: Werl
Kontaktdaten:

Influxdb: min, max, average....

Beitrag von KlausGünther »

Guten Morgen Zusammen,

ich speichere Werte in InfluxDB und schaue mir das ganze mit Grafana an, leider gibt es mehrere Probleme:

Ich hole mir von 3 Items die bei jedem Update gespeichert werden, einmal in der Stunde die Durchschnittswerte:

Code: Alles auswählen

TF_FS_10_average.postUpdate(Feinstaub_10.averageSince(now.minusDays(365), "influxdb"))
TF_FS_25_average.postUpdate(Feinstaub_25.averageSince(now.minusDays(365), "influxdb"))
TF_FS_100_average.postUpdate(Feinstaub_100.averageSince(now.minusDays(365), "influxdb"))
das funktioniert soweit. Jetzt dachte ich mir, ich möchte auch noch in der Sitemap die Maximalwerte im letzten Jahr bzw. den letztem 365 Tagen haben und habe folgenden Code eingefügt:

Code: Alles auswählen

Feinstaub_10_hw.postUpdate(Feinstaub_10.maximumSince(now.minusDays(365), "influxdb"))
Feinstaub_25_hw.postUpdate(Feinstaub_25.maximumSince(now.minusDays(365), "influxdb"))
Feinstaub_100_hw.postUpdate(Feinstaub_100.maximumSince(now.minusDays(365), "influxdb"))
und dann kommt foldener Fehler:

Code: Alles auswählen

[ERROR] [ntime.internal.engine.ExecuteRuleJob] - Error during the execution of rule 'Feinstaub Maxwerte': An error occurred during the script execution: Could not invoke method: org.eclipse.smarthome.model.script.actions.BusEvent.postUpdate(org.eclipse.smarthome.core.items.Item,org.eclipse.smarthome.core.types.State) on instance: null
Die Items dazu:

Code: Alles auswählen

Number TF_FS_10_average        "Feinstaub Ø PM 1,0"
Number TF_FS_25_average        "Feinstaub Ø PM 2,5"
Number TF_FS_100_average       "Feinstaub Ø PM 10,0"
Number Feinstaub_10            "Feinstaub PM10"
Number Feinstaub_25            "Feinstaub PM25" 
Number Feinstaub_100           "Feinstaub PM100"
Number Feinstaub_10_hw        "Feinstaub PM10 max."
Number Feinstaub_25_hw        "Feinstaub PM25 max."
Number Feinstaub_100_hw       "Feinstaub PM100 max."

Das anzeigen von anderen Max/Min werten klappt soweit (allerdings auch nicht reibungslos). Hierei ist bei den min. Temperaturen des letzten Jahres spannend, dass in Granfa was von -1.12°C steht und in der Sitemap nur -0.28°C, wobei ich beide Werte in der Influx DB finde. Spannend wird es, wenn ich die Abfrage von "letzte 365" auf sagen wir mal 25 ändere, findet er die -1.12, bei über 30 auf einmal nicht mehr.

Gibt es jemanden hier der was dazu sagen kann ?

Das ganze passiert unter Openhab 2.5M5 und seit gestern auch auf 2.5M6, Raspberry Pi4, also ein Update hat da auch nicht geholfen.

Grüße
KlausGünther

KlausGünther
Beiträge: 143
Registriert: 16. Jul 2018 08:57
Wohnort: Werl
Kontaktdaten:

Re: Influxdb: min, max, average....

Beitrag von KlausGünther »

So, es gibt eine Lösung.
Nochmal als kurzerklärung:
Ich speichere jede Minute werte (z.B. Lufttemperatur) und rufe mir mit einer Regel Min/Max Werte ab.
Das anzeigen klappt soweit auch, aber ab einem Zeitpunkt X sind die Min/Max Werte auf einmal falsch.
Ruft man in der influxdb mit einem query im gleichen Zeitraum die Min/Max Werte ab, sind aber die richtigen
Werte da, scheint also ein Problem zu sein, das nach einer bestimmten Anzahl von Werten (Values) auftritt.

Durch puren Zufall bin ich darauf gestossen, dass in der ein der Konfigurationsdatei von influxdb,
/etc/influxdb/influxdb.conf
einen Bereich [HTTP] gibt mit einem Eintrag:
max-row-limit = 10000
wenn man den entsprechend erhöht, stimmen auf einmal die Werte....

Antworten