mdzio / ccu-historian

Der CCU-Historian erfasst die Betriebsdaten des Hausautomations-Systems HomeMatic der Firma eQ-3.
http://www.ccu-historian.de
GNU General Public License v3.0
122 stars 14 forks source link

Text-Schnittstelle: avg nicht nachvollziehbar #366

Closed the-other-martin closed 2 years ago

the-other-martin commented 2 years ago

Hallo Mathias, ich habe folgende Zeitreihe im Datenpunkt 587 und möchte den Mittelwert (und andere Aggregate) auswerten: ` <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">

29.10.2022 12:34:13,769 | 2 | 2.003 -- | -- | -- 29.10.2022 12:45:02,000 | 2 | 2.003 29.10.2022 13:00:05,000 | 2 | 2.003 29.10.2022 13:15:01,000 | 2 | 2.003 29.10.2022 13:30:02,000 | 2 | 2.003 29.10.2022 13:45:02,000 | 2 | 2.003 29.10.2022 14:00:05,000 | 2 | 2.003 29.10.2022 14:15:01,000 | 2 | 2.003 29.10.2022 14:30:04,000 | 2 | 2.003 29.10.2022 14:45:01,000 | 2 | 2.003 29.10.2022 15:00:04,000 | 2 | 1.999 29.10.2022 15:15:02,000 | 2 | 1.999 29.10.2022 15:30:02,000 | 2 | 1.999 29.10.2022 15:45:01,000 | 2 | 1.999 29.10.2022 16:00:05,000 | 2 | 1.999 29.10.2022 16:15:02,000 | 2 | 1.999 29.10.2022 16:30:03,000 | 2 | 1.999 29.10.2022 16:45:00,000 | 2 | 1.999 29.10.2022 17:00:01,000 | 2 | 1.999 29.10.2022 17:15:01,000 | 2 | 1.999 29.10.2022 17:30:01,000 | 2 | 1.999 29.10.2022 17:45:00,000 | 2 | 1.999 29.10.2022 18:00:02,000 | 2 | 1.999 29.10.2022 18:15:00,000 | 2 | 1.999 29.10.2022 18:30:01,000 | 2 | 1.999

`

Dazu verwende ich

http://192.168.1.120:81/query/text.gy?dp=587&b=-6h&ag=max&ag=min&ag=avg&ag=first&ag=last

und erhalte

2.003 1.999 1.9877070703703703 2.003 1.999

Der dritte Wert müsste der Mittelwert sein, er ist allerdings niedriger als der niederste Wert - ich kann das Ergebnis nicht nachvollziehen. Liegt hier ein Fehler im Historian oder bei mir vor?

Schöne Grüße, Martin

mdzio commented 2 years ago

Ich habe noch einmal ein paar Tests bei mir durchgeführt. Die Werte waren immer plausibel.

the-other-martin commented 2 years ago

Ich habe auch nochmal mit einem anderen Zeitraum getestet (es handelt sich um die Dieselpreise in den letzten Stunden: grafik

mit: http://192.168.1.120:81/query/text.gy?dp=587&b=-5h&ag=max&ag=min&ag=avg&ag=first&ag=last erhalte ich: 1.999 1.994 1.9373308072222224 1.999 1.994

D.h. der Mittelwert liegt demnachbei 1.937, obwohl der höchste Wert (indiesem Intervall) 1.999 und der niedrigste Wert 1.994 war. Das scheint nicht korrekt zu sein.

Spielen Daten vor dem abgefragten Zeitraum auch eine Rolle beim Mittelwert avg?

Schöne Grüße, Martin

mdzio commented 2 years ago

Mir ist im Diagramm aufgefallen, dass die Daten nur bis 10:00 Uhr gehen aber der Abfragezeitraum bis 10:08 Uhr. Eventuell hat dies einen Einfluss. Trage mal bitte als Ende 4h45m ein, damit die letzten 15 Minuten nicht berücksichtigt werden. In der Abfrage-URL muss der Parameter &e=4h45m hinzugefügt werden.

the-other-martin commented 2 years ago

grafik

Ich habe eben eine aktuelle Grafik der letzten fünf Stunden erstellt, als Ende für die Text-Schnittstelle 9:30 eingetragen: http://192.168.1.120:81/query/text.gy?dp=587&b=-5h&ag=max&ag=min&ag=avg&ag=first&ag=last&e=8h45m Ergebnis: 1.994 1.994 1.1226746036190476 1.994 1.994

Anmerkung: Die Daten zum Dieselpereis werden alle 15 Minuten über CCU3 script mittels abgefragt und in die Systemvariable geschrieben. Anmerkung 2: Zum Vergleich habe ich auf einen sehr kurzen Zeitraum eingeschränkt: http://192.168.1.120:81/query/text.gy?dp=587&ag=max&ag=min&ag=avg&ag=first&ag=last&b=8h00m&e=8h45m Ergebnis: -Infinity Infinity NaN NaN NaN Anmerkung 3: Noch etwas: http://192.168.1.120:81/query/text.gy?dp=587&ag=max&ag=min&ag=avg&ag=first&ag=last&b=-2h&e=-1h Ergebnis: grafik

mdzio commented 2 years ago

Zur Abfrage: http://192.168.1.120:81/query/text.gy?dp=587&b=-5h&ag=max&ag=min&ag=avg&ag=first&ag=last&e=8h45m b=-5h: Die Abfrage startet 5h in der Vergangenheit. e=8h45m: Das Ende ist -5h+8h45m=+3h45m in der Zukunft. Das Ergebnis ist dann einigermaßen plausibel.

Zur Abfrage: http://192.168.1.120:81/query/text.gy?dp=587&ag=max&ag=min&ag=avg&ag=first&ag=last&b=8h00m&e=8h45m Das ist ein Zeitbereich in der Zukunft (+8h bis +16h45m). Dort sind garantiert keine Daten.

Zur Abfrage: http://192.168.1.120:81/query/text.gy?dp=587&ag=max&ag=min&ag=avg&ag=first&ag=last&b=-2h&e=-1h Der Start ist 2h zurück und das Ende ist 3h zurück. Das ist nicht erlaubt.

Wenn der Parameter e, wie oben, relativ (als Zeitdauer) angegeben wird, dann wird vom Beginnzeitpunkt an gerechnet.

Die Parameter b und e sind hier noch einmal genau beschrieben.

Nimm mal bitte die Parameter &b=-5h&e=4h45m, dann sollte alles richtig sein.

the-other-martin commented 2 years ago

Hallo Mathias! Vielen Dank für Deine Hinweise-jetzt kann ich meine Ergebnisse für avg teilweise erklären!

Da meine Datenpunkte immer etwa 15 Minuten Abstand haben (die Sekunden variieren etwas), spielen in diesem Sinn "zukünftige" (nicht vorhandene) Werte eine Rolle bei der Mittelwertbildung: Da z.B. 50 Sekunden nach dem letzten Punkt noch kein neuer Punkt vorhanden ist, geht der avg Richtung 0!

Folgende Frage bleibt aber:

http://192.168.1.120:81/query/text.gy?dp=587&ag=max&ag=maxts&ag=min&ag=mints&ag=avg&ag=first&ag=last&b=-24h&e=23h45m 2.038 2022-10-31 12:45:01 1.994 2022-10-30 17:55:52 1.999562388385965 1.994 2.007 grafik

Dies müsste der Zeitraum 23h45m, beginnend vor 24 Stunden, sein. Wie erklärt sich folgendes: Der Minimalwert-Zeitpunkt wird immer mit dem Zeitpunkt des Aufrufs aktualisiert, als ob der allerletzte Wert zählt, obwohl der außerhalb des angegebenen Zeitraums liegt?

Schöne Grüße, Martin

mdzio commented 2 years ago

Warum der zurückgegebene Zeitstempel von mints vor dem abgefragten Zeitbereich liegt, ist für mich jetzt nicht erklärbar. Ich konnte es bei meinen Tests auch nicht reproduzieren.

the-other-martin commented 2 years ago

Ich habe es eben nochmal versucht, das Ergebnis scheint nun plausibel: 2.004018982320442 2022-11-01 10:59:49 1.993 2022-11-02 10:00:07 1.998833137954354 2.004018982320442 1.993

mdzio commented 2 years ago

Ich schließe dann mal diesen Eintrag. Bei Bedaraf kann er wiedereröffnet werden.

the-other-martin commented 2 years ago

Danke für Deinen Support! Schöne Grüße, Martin