Gladys Assistant v4.10.2 ist verfügbar mit Performance-Fixes und einem Datenbank-Bereinigungs-Button!

Hallo zusammen!

Gladys Assistant v4.10.2 ist verfügbar, ein Update, das die Art und Weise verbessert, wie die Löschung des Zustandsverlaufs funktioniert.

Hintergrundlöschung des Zustandsverlaufs

Konkreter gesagt: Wenn Sie nun ein Gerät mit der Option « Ja, Zustände speichern » deaktiviert speichern, wird Gladys nicht mehr « blockiert » sein, wenn Sie viel Verlauf zu löschen haben, da Gladys die Zustände schrittweise im Hintergrund löscht, ohne dass dies blockierend wirkt.

Für weitere Informationen habe ich hier detailliert beschrieben, wie das alles funktioniert:

Möglichkeit, eine manuelle Datenbankbereinigung durchzuführen

Gladys verwendet SQLite als Datenbank, und wie viele Datenbanksysteme bietet SQLite einen Befehl VACUUM (auf Deutsch: « Leerung! »), der die Datenbank bereinigt und nicht mehr verwendete Zeilen von der Festplatte löscht.

Dadurch wird der Speicherplatzverbrauch von Gladys reduziert, indem die Datenbank neu aufgebaut wird.

Dies ist eine Operation, die von Zeit zu Zeit nützlich sein kann, um Speicherplatz zu sparen, aber die auf großen Datenbanken lange dauert und vor allem blockierend ist: Die DB ist während der Bereinigung nicht zugänglich und Gladys ebenfalls nicht.

Aus diesem Grund habe ich beschlossen, eine Schaltfläche « Datenbank bereinigen » in den Systemeinstellungen von Gladys anzubieten, um denen, die es wünschen, zu ermöglichen, eine manuelle Bereinigung durchzuführen, wann immer sie es wünschen.

Bisher habe ich keine geplante Bereinigung eingerichtet, und zwar aus dem einfachen Grund, dass ich vermeiden möchte, dass Gladys bei Ihnen für 1 Stunde nicht verfügbar ist, falls Sie eine sehr große Datenbank haben und eine relativ langsame Festplatte (z. B. eine SD-Karte!), ohne dass Sie wissen, warum. Beim Benutzer würde dies als Absturz wahrgenommen werden!

Das könnte eine zukünftige Entwicklung sein, aber ich denke, dass diese Bereinigung deaktivierbar sein sollte, falls sie implementiert wird, für diejenigen, die eine hohe Verfügbarkeit anstreben.

In der Zwischenzeit ist es manuell und in den Systemeinstellungen verfügbar:

Für weitere Informationen:

Das vollständige CHANGELOG ist hier verfügbar.

Wie aktualisiere ich?

Wenn Sie Gladys mit dem offiziellen Raspberry Pi OS-Bild installiert haben, werden Ihre Instanzen automatisch in den kommenden Stunden aktualisiert. Dies kann bis zu 24 Stunden dauern, keine Sorge.

Wenn Sie Gladys mit Docker installiert haben, stellen Sie sicher, dass Sie Watchtower verwenden (Siehe die Dokumentation).

Hallo
Bezieht sich das auch auf die neuesten Themen (ich denke an die Temperaturen/Feuchtigkeit der Tasmota…)?

Danke

Gute Idee, so zu denken. Das wird es allen ermöglichen, die Verfügbarkeit ihrer Instanz zu verwalten, und klar, Gladys sollte immer verfügbar sein, besonders im Falle von Automatisierung nachts.

Hallo @Titou43! Wovon sprichst du genau? (Ich würde mich über einen Link zu einem bestimmten Thema oder einem Pull-Request freuen)

Dieses Update hat nichts mit Tasmota zu tun :slight_smile:

Ich spreche über dieses Thema:

Hallo @Titou43! Ich weiß nicht, ob @AlexTrovato Zeit hatte, sich das anzusehen, bei dem Thema denke ich nicht! Man muss sich in Geduld üben :slight_smile:

Ich konnte einige Tests durchführen und bestätige meinerseits, dass Gladys nicht mehr einfriert!
Danke @pierre-gilles :+1:

Ich habe tatsächlich Fortschritte bei den Temperatur- und Feuchtigkeitssensoren gemacht.
Ich muss noch ein Docker-Testbild für die Validierung vorbereiten.

EDIT: Das wurde tatsächlich bereits getestet!

Test läuft. Danke für deine Änderungen, das Löschen, Aktualisieren und Hinzufügen von Geräten ist jetzt sofort möglich, trotz der Größe meiner Datenbank.

Manuell einen VACUUM starten zu können, ist sehr praktisch, denn man hat die Ausfallzeit von Gladys unter Kontrolle.

Super!! Danke für die Rückmeldung :slight_smile:

@pierre-gilles Also, ich glaube nicht, dass alle Fälle berücksichtigt wurden, die zu einem Blockieren während des Datenlöschens führen können.
Dank der Integration des Lixee TIC des letzten Updates wollte ich MQTT-Geräte löschen, die ich nicht mehr brauche. Ich habe keine Warnung erhalten, wie viele wichtige Daten betroffen sind, und Gladys war für mehrere sehr lange Minuten blockiert.
[EDIT]: Nach 2 Stunden Warten habe ich Gladys neu gestartet!

Ich werde versuchen, den Fall mit einer anderen Gladys-Instanz zu reproduzieren, um dir bei Bedarf mehr Details zu geben.

Bist du auf der neuesten Version von Gladys?

Ja, in 4.12.

Das könnte mit einem anderen Problem zusammenhängen.
Ich werde diese Löschung auf einer anderen Gladys-Instanz und meiner Datenbank testen, sobald ich kann, und ich halte dich auf dem Laufenden, wenn ich es reproduzieren kann.

Meine MQTT-Geräte wurden nicht gelöscht (wahrscheinlich wegen meines Reboots), also fange ich wieder an, sie zu löschen. Diesmal lösche ich nur ein einziges Feature und Gladys hängt wieder fest! :disappointed_relieved:

Ich kann das Problem reproduzieren, wann immer ich will, also sag mir, was du zum Debuggen brauchst.
Ich habe die Docker-Logs angesehen, aber ich werde von z2m-Warnungen überflutet.

Kannst du mir die Datenbank und den Namen des Geräts, das Probleme macht, einfach schicken? :slight_smile:

Hast du die Datenbank von neulich noch? Wenn nicht, schicke ich sie dir noch heute.

Es ist das MQTT-Linky-Gerät, bei dem eine der Funktionen, zum Beispiel der Index, entfernt wurde

Ich wäre dir dankbar, wenn du sie mir zurückschicken könntest :slight_smile:

Kein Problem, ich schicke sie dir noch heute zurück.