Gladys Assistant 4.83: Schnellere Aktivität, DuckDB-Bereinigung und 2FA für Gladys Plus

Hallo zusammen!

Die Version 4.83.0 ist verfügbar! :rocket:

Nach dem großen Release 4.82 (Aktivitätsprotokoll + MQTT) konzentriert sich diese Version auf Zuverlässigkeit, Leistung und einige sehr konkrete Verbesserungen für den täglichen Gebrauch, insbesondere für Installationen mit viel Historie und für Gladys Plus.


:high_voltage: Aktivitätsseite: Sofortige Anzeige, auch bei großen Datenbanken

Bei einer Installation mit Hunderten von Millionen von Zuständen konnte das Filtern der Aktivität nach einer seltenen Kategorie (Öffnungen, Tasten…) die Oberfläche für mehrere zehn Sekunden blockieren.

Die Aktivitätsseite lädt nun die Historie in progressiven Zeitfenstern: Die ersten Ereignisse werden sofort angezeigt, und die Suche läuft im Hintergrund weiter mit einem Band wie „Aktivitätssuche — {Monat}…“.

Bei einer Datenbank mit 448 Millionen Zuständen zeigt ein Filter „Öffnungen“, der zuvor 20–33 Sekunden zum Antworten benötigte, nun die ersten Ergebnisse in ~100 ms.

Danke an @Terdious für diese Arbeit!


:broom: Automatische Reinigung von verwaisten Zuständen (DuckDB)

Seit der Migration der Historie zu DuckDB gab es einen Bug, bei dem die „Keine Historie mehr behalten“-Löschung einer Funktion sowie die Löschung von Geräten in bestimmten Fällen die Zustände in DuckDB nicht korrekt bereinigten.

Ergebnis: „Zombie“-Zustände (Funktionen ohne Historie oder bereits gelöschte Funktionen) konnten sich über Jahre ansammeln, ohne dass es jemand bemerkte, bis das Aktivitätsprotokoll eingeführt wurde.

Diese Version behebt das Löschen, und startet einmal beim Starten einen Hintergrundjob, der die verwaisten Zustände sanft (in Abschnitten, mit Pausen) bereinigt, um die CPU nicht zu überlasten und den Rest von Gladys nicht zu blockieren.

Bei einer Testinstallation wurden 45 Millionen verwaiste Zustände bereinigt. Sie können den Fortschritt unter Einstellungen → Aufgaben verfolgen.

Nochmals danke an @Terdious!


:locked_with_key: Gladys Plus: 2FA-Prozess überarbeitet

Der gesamte Double-Authentification-Fluss von Gladys Plus wurde überarbeitet, um viele kleine unangenehme Fälle besser zu handhaben, die mir gemeldet wurden (fehlende Konfiguration, Codefehler, Rückwärtsnavigation usw.).

Zögern Sie nicht, mir Ihr Feedback zur 2FA zu geben. Ich möchte wirklich, dass es für Anfänger einfacher wird, und ich bin mir bewusst, dass die Authentifizierungsschritte für Nicht-Techniker immer noch etwas komplex sind.

Ein nächster Schritt wäre die Hinzufügung von Wiederherstellungscodes, um die 2FA selbst zurückzusetzen, falls das Telefon oder die Authentifizierungs-App verloren geht.


:ring_buoy: Gladys Plus-Wiederherstellung: Kein temporäres Konto mehr

Bei einer Wiederherstellung eines Backups vom Anmeldebildschirm erstellte Gladys zuvor ein temporäres lokales Konto mit hardcodierten Anmeldedaten. Wenn der Prozess unterbrochen oder fehlgeschlagen war, konnte dieses Konto bleiben, die Anmeldung blockieren… und eine Instanz in einem unangenehmen Zustand hinterlassen.

Dieses temporäre Konto wurde gelöscht. Die Wiederherstellung funktioniert ohne Erstellung eines lokalen Benutzers, und Instanzen, die bereits durch ein altes temporäres Konto „blockiert“ waren, werden automatisch beim Start geheilt.


:clapper_board: Szenen: Dauer in Sekunden beim Zustandsauslöser

Beim Auslöser Zustandsänderung eines Geräts bot die Option „Ausführen, nachdem die Bedingung seit… gültig ist“ nur Minuten an.

Sie können nun Sekunden oder Minuten wählen, was praktisch ist, um schnell zu reagieren (z. B. „wenn die Bewegung für 10 Sekunden erkannt wird“).

Bestehende Szenen bleiben standardmäßig in Minuten.


:desktop_computer: Oberfläche

  • Dashboard: Die Widget-Typen werden alphabetisch nach der Sprache der Oberfläche sortiert (danke @Will_71)
  • Szenen: Gleiches gilt für die Listen der Auslöser und Aktionen (danke @Will_71)
  • MQTT: Übermäßiger vertikaler Abstand in der Geräteliste korrigiert
  • Aktivität: Horizontales Scrollen der Filter unter Windows verbessert
  • Szenen: Korrektur eines schwarzen Abstands bei mehrzeiligen Variablenchips
  • HomeKit: Temperaturfarbwerte außerhalb der Grenzen (z. B. LED-Streifen) werden nun auf das HomeKit-Maximum (500 Mireds) begrenzt, was HAP-Warnungen wie „characteristic was supplied illegal value“ vermeidet

:hammer_and_wrench: Technik

  • DuckDB-Migration: Wechsel vom Paket duckdb (veraltet) zu @duckdb/node-api. Gleicher Motor, gleiche .duckdb-Dateien: keine Datenmigration auf Benutzerseite. Vorcompilierte Binärdateien ersetzen die native Kompilierung.
  • Automatische Veröffentlichung des Gladys Plus-Frontends nach einer Produktionsfreigabe

:heart: Danke an die Mitwirkenden

Ein großes Dankeschön an @Terdious und @Will_71 für ihre Beiträge zu dieser Version und danke an die gesamte Community für euer Feedback und eure Tests, besonders an diejenigen von euch, die Gladys auf sehr großen Historie-Datenbanken laufen lassen: Dank euch können wir diese Leistungen unter realen Bedingungen validieren.

Wie immer aktualisiert sich Gladys automatisch innerhalb von 24 Stunden, wenn ihr Watchtower verwendet, andernfalls könnt ihr dies mit einem Klick in den Einstellungen tun.

Denkt daran, Telegram zu konfigurieren, um eine Benachrichtigung auf eurem Telefon zu erhalten, wenn Gladys sich aktualisiert!

Vollständige Versionshinweise auf GitHub anzeigen

Danke für diese Version :rocket:

Für die Bereinigung meinerseits:

:scream:

Mais mais mais !!^^ Löscht ihr jeden Tag Geräte / Funktionen mit @Will_71 ?? :face_with_peeking_eye: :joy:

Wie ich mit Pierre-Gilles gesprochen habe, hatte ich 20 von 450 Millionen Status ^^ Ich lösche nie etwas :sweat_smile:

6 Minuten für die vollständige Reinigung ?? Wow, Glück gehabt, läuft Gladys auf einem Rennpferd? Bei mir dauert es mehr als 1 Stunde (zu viele Zustände :sweat_smile:)

Virtuelle Maschine auf einem Proxmox, die langsam viele virtuelle Maschinen hat :sweat_smile::

Seitens der virtuellen Maschine:

image

Für die Anzahl der Zustände auf meiner Seite:
image

Zu meiner Entschuldigung hatte ich viele Probleme mit meinem Ethernet-Zigbee-SMLIGHT-Adapter, der nach einigen Stunden die Hälfte der Geräte verlor. Ich habe die Gelegenheit genutzt, um die Geräte in zigbee2mqtt umzubenennen, auch wenn die Daten verloren gehen. Ich hatte keine Zeit, die Datenbank zu aktualisieren.

Der neue Mini-PC Beelink SER9 macht die Arbeit viel besser und schneller ^^

Offensichtlich passiert da etwas, aber was … Mysterium :joy:

@mutmut ich nehme an, du bist auf Gladys Plus, aktualisiere die Seite und du solltest die neuen Übersetzungen sehen :slightly_smiling_face:

Überhaupt nicht, lokal wie die meisten Male zu Hause

EDIT: aber das Aktualisieren funktioniert gut!

Gladys ist eine PWA, also speichert dein Browser das gesamte Frontend im Cache. Manchmal braucht es also einen guten Refresh, um zur nächsten Version zu wechseln :grin:

Ich bin gerade nach Hause gekommen und sehe das:

Ist das also normal? Heißt das, wenn ich Waisen-Status hatte, habe ich ihn jetzt nicht mehr?

Ja, das ist normal!! Das bedeutet, dass du überhaupt keine hattest ^^ Wie Pierre-Gilles :wink: :sweat_smile:

Gut gemacht :raising_hands:

Ich bin auf der Seite der großen Waisen :rofl:


image

Ich fühle mich auf dieser Seite weniger allein :joy:

Die CPU hat 4°C Temperatur für die Bereinigung der Waisen aufgenommen.

Ich stelle fest, dass die Festplattenauslastung bei 16 % geblieben ist.

Ich danke allen Mitwirkenden für all diese Explosionen an Neuheiten und Verbesserungen.

Als Nicht-Techniker schaue ich mir an, was passiert, ohne es wirklich zu verstehen, aber die Lösung entwickelt sich weiter. Ich kann einige neue Möglichkeiten nutzen und das gefällt mir gut.

Hallo @Jluc,
Ja, das ist normal. Selbst wenn du massenhaft Daten gelöscht hast, hätte sich die Festplattenauslastung nicht verringert: DuckDB reduziert die Größe seiner Datei nach einem Löschvorgang nicht, sondern recycelt nur den freigegebenen Speicherplatz intern für zukünftige Daten.

Daher wird deine Datenbank in den kommenden Zeiten kaum noch wachsen, bis die etwa 250 MB, die diese Zustände ausmachten, aufgefüllt sind ^^

Es ist trotzdem schön zu sehen, wie all diese Waisen das Nest verlassen haben ^^

Der Einfluss ist vielmehr in der Zeit, die nicht für die Performance der Histogramme genutzt wird. Je mehr Daten es zu durchsuchen gibt, desto schwerer wird es, Abfragen durchzuführen, obwohl diese Daten nicht mehr benötigt werden.

Ich denke, ich habe herausgefunden, warum einige 0 Zustände zum Bereinigen haben:

Dieser Parameter ^^ Wenn er nicht auf unbegrenzt eingestellt ist, erfolgt die Bereinigung natürlich, egal ob sie Waisen sind oder nicht, nehme ich an :wink:

Bei mir ist es tatsächlich auf 1 Jahr eingestellt.

Bei mir ist es unbegrenzt