Aggregation - Fehlermeldung "invalid data for aggregation day"

Hallo,

ich weiß das hier das Thema aggregation schon mehrmals aufgetaucht ist, mir ist aber auch nach viel lesen leider nicht ganz klar wozu das notwendig ist.
Ich habe in IPS 11 Variablen (Hauptsächlich Temperaturen) geloggt, diese zeige ich mir über einen Graphen im WF an. Ich sehe im Meldungsmonitor aber eine ständig wachsende Zahl von Meldungen mit:

08.12.2018 18:47:58*| Archive Control*| Invalid data for aggregation hour for VariableID #15591. Expected: 1543856400, Found: 1543852800

Expected und Found scheinen ja zeitstempel zu sein: 03.12.2018 - 18:00:00 bzw. 03.12.2018 - 17:00:00. Somit ist die Fehlermeldung schon verständlich, erwartet 18 Uhr gefunden 17 Uhr. (Die anderen Meldungen haben natürlich andere IDs und andere Zeiten, aber sind vom gleichen Meldungstyp)

Wenn ich den Archive Handler aufrufe, poppt auch sofort die Meldung auf, dass ich 11 Variablen aggregieren sollte. Mache ich dies, verschwinden die Meldungen für vielleicht 30 Minuten und es kommen danach immer mehr rein.

Das Skript zum auto aggregieren hier: Pi - Automatische Reaggregation aller geloggten Variablen habe ich schon probiert.
Es führt zwar zum Ziel, allerdings wird das angehängte Ereignis immer wieder deaktiviert.

  • Warum tauchen diese Meldungen zur Aggregation bei mir auf?
  • Ist der elegante Weg wirklich ein auto Skript alle 30 min o.ä. aufzurufen?
  • Und vielleicht auch noch eine etwas dumme Frage, was genau hat es mit der Aggregation aufsich?

Danke und Grüße
Marcel

Update: Habe nach dem Post vorhin einmal manuelle Aggregation durchgeführt um 18:55 Uhr kam die Meldung der letzten Variable rein „Reaggregation is complete!“ Um 19:01 Uhr, kam schon wieder die erste Meldung invalid data…

kannst du von den entsprechenden Varis dir mal die Rohdaten ansehen ? manchmal kann man beim Sichten Ungereimtheiten erkennen, diese manuell korrigieren oder löschen

Du meint über Variable editieren und dann auf „zeigen“? Die kann ich mir anzeigen lassen ja. Es fällt mir da höchstens auf, dass manche Variablen 10 Werte pro Tage haben andere wieder 25. Das liegt aber sicherlich daran, dass nicht ständig Wertänderungen stattfinden.

Ich glaube ich hatte einfach ein Zeitproblem.
Der Raspberry auf dem IPS läuft war nicht synchron mit der Zeit aus dem Netz, was mir vorher garnicht aufgefallen ist. Die Zeit im WF von IPS ist die Zeit auf dem Raspberry nehme ich an? Diese war zu der Zeit auf meinem PC (W7 64 Bit) ca. 4min unterschiedlich. Habe jetzt mal den RPI etwas weiter konfiguriert, mal sehen ob die Aggregation Fehler wieder kommen.
Falls nicht hat es sich erledigt, wenn mir vielleicht jemand noch meine 2. und 3. Frage beantworten könnte wäre ich dankbar.:slight_smile:

Du meint über Variable editieren und dann auf „zeigen“?

ich wäre über die csv gegangen

Zur Frage 3:
Deine Daten liegen erst mal in der Reihenfolge vor, wie Sie entstehen. Für eine Darstellung ‚Stunde‘ wäre das vermutlich Ok, für die Darstellungen ‚Tag‘, ‚Woche‘, ‚Monat‘ würde es ggf. recht lange dauern.Sie werden also in der ‚Datenbank‘ in getrennten csv-Dateien mit den Zusätzen week, day, year abgespeichert. Dies kann Du in der Dokumentation unter Archiv Control nachlesen. Die Aggregation findet normalerweise automatisch statt.

Grüße, Gerhard

Du meinst also über die Einzeldateien direkt auf dem System wo IPS läuft? Also bei mir der Raspberry.

Danke Gerhard für die Erklärung, das heißt die Aggregation „sortiert“ quasi die Rohdaten ein, sodass die aufbereitet und schneller dargestellt werden können?

Bisher ist es mir noch nicht gelungen die Zeit Synchronisation auf dem Pi dauerhaft sicherzustellen. Hab nun gelesen das es sinnvoller diese mit systemd-timesyncd anstatt über ntp durchzuführen, muss ich aber noch ausprobieren.

Hallo,

zur Zeitsyncronisation meine Lösung für den pi:


apt purge ntp
apt install ntpdate
crontab -e
- @reboot ntpdate -s 0.de.pool.ntp.org
- 0 */6 * * * ntpdate -s 0.de.pool.ntp.org

Grüße, Gerhard

In der aktuellen OS Version kann man das auch mit Bordmitteln über „timedatectl“ entsprechend einrichten.

Hallo Ralf,
Hallo Gerhard,

danke für die Tipps. Ich werde die Einstellungen bei Gelegenheit mal vornehmen.
Könnt ihr mir sagen, woher die Uhrzeit aus dem Webfront stammt? Von IPS oder von dem Gerät mit dem ich mir das Webfront anzeige?

VG

Neueste Erkenntnis:
1.) Durch Einstellungen mit Hilfe der „timedatectl“ Funktion ist die Zeit auf dem Pi mittlerweile genauer als noch vor 5 Tagen. Damals waren mehrere Minuten unterschied zur Systemzeit am Windows 7 Rechner vorhanden, jetzt sind vielleicht noch 30sec. Finde ich zwar auch merkwürdig, würde ich aber erstmal so hinnehmen.

2.) Interessanter ist eigentlich die Tatsache, dass der aggregation Fehler anscheinend immer beim Übertritt einer ganzen Stunde auftritt. Gestern Abend um ca. 19:20 Uhr manuell aggregiert und bis 20:00 Uhr keine Fehlermeldungen. Danach kamen wieder einzelne Meldungen rein. Als Zeitzone ist auf dem Pi Europe/Berlin eingestellt. Muss da eventuell alles auf UTC stehen?

3.) In die .csv Daten habe ich auch reingesehen, dort ist merkwürdig, dass es für jeden Zeitstempel 2 Einträge gibt. Im 1. Block steht ja in jeder Zeile der UNIX Zeitstempel, dahinter die Daten. Wie gesagt ist der 1. Block oft doppelt vorhanden.

Das sollte nicht so sein.

Zeitzone korrekt, z.B.?


sudo timedatectl set-timezone Europe/Berlin

NTP aktiviert?


sudo timedatectl set-ntp true

Wenn du keine speziellen Zeitserver in der /etc/systemd/timesyncd.conf einstellen möchtest, dann sollten die Standard-Server reichen.

mit


sudo service systemd-timesyncd status

kannst du prüfen, ob und mit welchem Time-Server synchronisiert wird.

Falls das nicht passt, den Service neu starten


sudo service systemd-timesyncd restart

Es sollte keine Abweichung zur „Normalzeit/korrekten lokalen Zeit“ geben.

Falls du eine Firewall (irgendwo) im Weg hast, dann musst du dafür sorgen, dass die Time-Server erreichbar sind oder einen im lokalen Netz haben und den in der timesyncd.conf einragen.

Hallo,

bei meiner Einstellung (post #9) gibt es keine Unterschiede zur Windows-Zeit.

Grüße, Gerhard

Hier der Auszug aus „sudo service systemd-timesyncd status“

 sudo service systemd-timesyncd status
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
           └─disable-with-time-daemon.conf
   Active: active (running) since Tue 2018-12-11 20:20:36 CET; 22h ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 10062 (systemd-timesyn)
   Status: "Synchronized to time server 37.120.191.245:123 (0.de.pool.ntp.org)."
   CGroup: /system.slice/systemd-timesyncd.service
           └─10062 /lib/systemd/systemd-timesyncd

Dec 11 20:20:36 raspberry systemd[1]: Starting Network Time Synchronization...
Dec 11 20:20:36 raspberry systemd[1]: Started Network Time Synchronization.
Dec 11 20:20:37 raspberry systemd-timesyncd[10062]: Synchronized to time server 37.120.191.245:123 (0.de.pool.ntp.org).

Und von timedatectl


 timedatectl
      Local time: Wed 2018-12-12 19:09:13 CET
  Universal time: Wed 2018-12-12 18:09:13 UTC
        RTC time: n/a
       Time zone: Europe/Berlin (CET, +0100)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Wie ihr seht habe ich den dt Server für die Synchronisation eingetragen

Anbei vielleicht nochmal ein Foto zur Verdeutlichung. (Screenshot über 2 Bildschirme, danach nur die relevanten Elemente ausgeschnitten)


Wie man hier erkennt sind die Zeiten alle nicht 100% gleich. Die von der Windows Uhr wird mit dem Internet über time.windows.com synchronsiert, die vom Pi sollte ja durch meine Einstellungen mit dem deutschen ntp server synchronsiert werden. Wo die Uhrzeit im Webfront herkommt weiß ich nicht.

PS.: Auch jetzt während des Schreibens vom Post wieder. Stundenüberschlag und zak direkt beim nächsten Versuch der automatischen aggregation, wieder Meldungen, dass die aggregation hour nicht geklappt hat. Ich vermute die Meldung für day kommt beim Tageswechsel.

Hallo,

der Window-Zeit-Server ist oft nicht so genau. Wie wäre es, statt seiner ‚pool.ntp.org‘ zu verwenden oder einen Internetzeitserver. Dann hättest Du schon mal die gleichen (oder vergleichbare) Server. Dann sollte die Zeit auch stimmen.

Grüße, Gerhard

Es klingt so, als würde bei Abschluss der Stunde die entsprechende Aggregation zweimal in die Datei geschrieben werden. Das ist offensichtlich nicht so korrekt. Auf die Schnelle konnte ich hier leider nichts problematisches finden, aber ich schaue mir das noch einmal genauer an.

Ich denke nicht, dass das Problem mit der Exaktheit der Uhr zusammenhängt. Ob der zwei Minuten vor oder nach geht sollte hierfür nicht relevant sein. Probleme mit der Uhr könnte ich mir nur vorstellen, wenn diese zurückgeht, du also zweimal den Sprung von 9:59 auf 10:00 machst.

Welche IP-Symcon Version benutzt du?

Kann es denn sein, dass die Aggregation auf verschiedene Zeitstempel schaut? Wenn die eine Uhr eben 1 Minuten später als die andere den Überschlag macht?

Ich nutze die Version 5.0.

Habe jetzt mal denselben Server wie auf dem Raspberry eingstellt „0.de.pool.ntp.org“. Sieht erstmal etwas besser aus. Wobei die Windows Zeit schnell „davon läuft“ nach einigen Minuten sind ~8 sec unterschied da. Wenn man in den Internetzeiteinstellungen von Windows (Windows 7) „Jetzt aktualisieren“ betätigt, wird das delta wieder kleiner. Hab mir die Analoguhr als Widget auf den Desktop gepackt, da sieht man auch ganz gut, dass der Sekundenzeiger wieder zurückspringt.

Das Archiv betrachtet die Systemzeit. Wenn die zurückspringt wie von Marcel beschrieben, dann könnte ich mir das als Fehlerquelle vorstellen.