Feinere Steuerung des Statusverlaufs

Ja, wir sind uns einig :wink:
3,25 GB Backup!

Es stimmt, wenn man die gesamte Historisierung aktiviert lässt, wird das schon erheblich. Ich habe derzeit etwa zehn Sensoren, die bereits 350 MB einnehmen. Wie werden die Daten gespeichert (bei jeder Wertänderung, nach einem Timer)? Muss wirklich alles gespeichert werden oder nur nach Schwellenwerten (beispielsweise die Batterie, es ist nur interessant zu wissen, wie lange sie hält, wenn sie unter einen bestimmten Schwellenwert fällt, oder in Stufen wie 90%, 85% usw.)? Es gibt Nutzungsänderungen (Temperatur, Luftfeuchtigkeit usw.) und Wartungsänderungen (Batteriespannung, Stromstärke usw.), die unterschiedliche Anforderungen abdecken, daher könnten die Datenspeicherungen unterschiedlich sein!

Das ist ja krass, diese Gewichtsunterschiede, wie ist das möglich?!

Das wäre lang zu erklären, aber das Wichtigste ist, dass man auf Gladys-Seite die Daten mehrmals dupliziert (die berühmten aggregierten Daten), um eine schnelle Abfrage von Time-Serie-Daten zu ermöglichen, und dass man Indizes verwendet, die ebenfalls duplizierte Daten sind. Alles in allem gibt es viele Duplikate :slight_smile:

In einer Time-Serie-Datenbank ist das Datenformat anders und für zeitliche Daten optimiert, sodass man nicht die gleichen Verrenkungen machen muss wie mit einer relationalen DB. Darüber hinaus verwendet eine Time-Serie-Datenbank Kompressionsalgorithmen, um die Daten komprimiert zu speichern und sie bei der Lektüre „on the fly“ zu dekomprimieren.

Allerdings hat das alles Tradeoffs, diese Time-Serie-Datenbanken eignen sich nur für zeitliche Daten. Wenn wir das also eines Tages in Gladys implementieren, wird nur die Tabelle « t_device_feature_state » in diese DB wandern, der Rest bleibt in SQLite (das für alles Relationale ultra-robust ist).

Diese Funktion ist in Gladys Assistant 4.31 verfügbar! :rocket:

Ich schließe dieses Thema, um die Abstimmungen freizugeben. Zögern Sie nicht, ein neues Thema zu erstellen, falls Sie auf Fehler stoßen :slight_smile: