Gladys v4.0.7 ist verfügbar!

Hallo zusammen!

Es ist Montag, Zeit für ein neues Release von Gladys Assistant 4: Die v4.0.7 :partying_face:

Dieses Update bringt eine lang erwartete neue Funktion sowie zahlreiche Leistungsverbesserungen, insbesondere für Instanzen mit vielen Geräten (hey @Terdious :p) und die Nutzer von Gladys Plus! :slight_smile: (die ich noch einmal dafür danke, dass sie das Projekt unterstützen!)

1) Die Möglichkeit, Variablen in Szenen zu injizieren.

Ich habe die Dokumentation aktualisiert, es ist nun möglich, eine Variable in eine Nachricht in Szenen zu injizieren.

Dokumentation lesen: Envoyer un message | Gladys Assistant

Demo:

https://imgur.com/a/dbiQxxV

2) Leistungs- und Stabilitätsverbesserungen bei der Sensordaten-Speicherung

Für diejenigen, die große Installationen haben, hatte ich eine Flasche beim Einfügen neuer Sensorwerte bemerkt.

Eine Transaktion im Backend von Gladys verlangsamte das gesamte Einfügen und hatte nicht viel Sinn, da sie am Ende, aufgrund der Schreibgeschwindigkeit, mehr schadete als sie Nutzen brachte.

Nach der Überarbeitung der API-Route erreichen wir wirklich solide und dauerhafte Leistungen. Ihre Gladys-Instanz kann nun problemlos Hunderte von Schreibvorgängen pro Sekunde bewältigen :rocket:

3) Leistungsverbesserungen für Gladys Plus

Ihr seid etwa fünfzig, die Gladys Plus nutzen, das kostenpflichtige Angebot, das ich anbiete, das den Fernzugriff auf Gladys Assistant, verschlüsselt von Ende zu Ende, sowie automatische Backups bietet.

In letzter Zeit haben wir mit einigen Mitgliedern festgestellt, dass der Fernzugriffsdienst von Gladys Plus langsamer war als gewöhnlich, mit Anfragen, die etwa 500-600 ms dauerten, während wir zuvor Zahlen um die 50-60 ms gesehen hatten.

Ich habe einen ganzen Tag damit verbracht, zu untersuchen, und herausgefunden, dass einige interne Funktionsaufrufe von Gladys (lokal) viel Zeit in Anspruch nahmen, aufgrund von LOCKs auf der Datenbankebene.

Um diese Leistungen zu verbessern, habe ich beschlossen, einige Datenbankabfragen zu entfernen und stattdessen den RAM-Cache (viel schneller!) abzufragen, in dem wir einige häufig zugängliche Daten in Gladys speichern.

Seit dieser Änderung sind wir wieder bei ultra-schnellen und leistungsstarken Anfragen :high_voltage:

Der vollständige Changelog ist auf GitHub verfügbar.

Wie aktualisiere ich?

Wenn Sie Gladys mit dem offiziellen Raspbian-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)

Gratulation an alle, die an diesem Release mitgewirkt haben!

Zur Information: Ein kleiner Bug betrifft Gladys v4.0.7 bei HTTP-Aktionen in Szenen ([RESOLU] Scène avec action requête HTTP ne fonctionne plus)

Ich habe gerade Gladys v4.0.8 bereitgestellt, das dieses Problem behebt!

Gibt es dazu keinen Test? Das wäre schade, denn dann wäre das Problem früher entdeckt worden.
Jedenfalls: Herzlichen Glückwunsch :slight_smile:

Es gab Tests, aber es handelte sich um einen sehr speziellen Fall, der durchs Raster gefallen ist :slight_smile:

Ich habe nach dem Vorfall zusätzliche Tests hinzugefügt, damit die Regression nicht wieder auftreten kann!

Guten Abend!

Ich habe gestern Abend eine Neuinstallation auf eine andere SSD durchgeführt (ich brauchte die alte für etwas anderes), aber seitdem bleibt Gladys bei Version 4.0.4. Übrigens, sollte das bereitgestellte Image nicht aktualisiert werden?

Gibt es etwas, das ich tun kann, damit es auf 4.0.8 aktualisiert wird? Ich weiß, dass dies automatisch erfolgen sollte, aber es scheint nicht zu reagieren.

Das Erstellen des Raspbian-Images ist ein manueller und sehr zeitaufwändiger Prozess, den ich nur gelegentlich durchführe. Da die Aktualisierung automatisch erfolgt, ist es weniger ein Problem.

Allerdings hast du Recht, dass seit den letzten Änderungen an der Docker-API, die die API-Aufrufe rate-limit, wir die Aktualisierungsfrequenz auf alle 24 Stunden geändert haben. Wenn du Gladys also zu einem Zeitpunkt t installierst, wird Gladys 24 Stunden später aktualisiert sein, was tatsächlich etwas spät ist.

Das ist ein etwas umstrittenes Thema, das wir schon lange haben, aber wir haben keine perfekte Lösung gefunden ^^ Wir haben eine Lösung, um das Raspbian-Image automatisch zu erstellen, aber diese Lösung bedeutet, dass das Image beim Start initialisiert werden muss, entweder über das Internet (und falls du eine langsame Verbindung oder schlimmstenfalls keine Verbindung hast, funktioniert das nicht), oder von einem lokalen Archiv, das entpackt werden müsste, was bedeutet, dass dein Pi beim ersten Boot eine Weile zum Starten braucht.

@VonOx cc :slight_smile: die ewige Debatte

Ja, der PoC war erfolgreich, aber die Erfahrung beim ersten Start war nicht optimal, da die RPI Probleme mit dem Entpacken hatten. Soweit ich mich erinnere, musste man 15 Minuten warten, bis Gladys hochgefahren war. Außerdem gab es keine Möglichkeit, dem Benutzer mitzuteilen: „Warte einen Moment, denn das System ist noch nicht bereit“.

Ich müsste mir etwas Zeit nehmen, um zu schauen, was HA für HassOS (buildroot) macht, denn es handelt sich auch um Docker


Edit: Ich konnte nicht anders, als gleich einen Blick darauf zu werfen --’

Sie führen einen Pull während des Builds durch, Buildroot scheint das zu ermöglichen (Docker in Docker)

Okay! Tatsächlich kann die Latenzzeit etwas lang sein. Wenn es derzeit keine technische Lösung gibt, sollten wir vielleicht eine Notiz im Tutorial hinzufügen, um zu klären, dass das Update bis zu 24 Stunden dauern kann.
Ansonsten, was würde es kosten, die Update-Häufigkeit zu reduzieren?

Ich werde heute Abend nachschauen, ob das Update tatsächlich durchgeführt wurde.

Eine andere Möglichkeit wäre es, nach der Installation eine Option zum sofortigen Update anzubieten.

2 Punkte:

  • Docker Hub hat sehr niedrige Beschränkungen für nicht authentifizierte Konten hinzugefügt, die dazu führen, dass wir keine häufigen Anfragen stellen können.
  • Der Umstand, dass die Instanzen nur alle 24 Stunden nach Updates suchen, ermöglicht eine schrittweise Verteilung der Updates, da jeder zur Zeit der Instanz-Erstellung nach Updates sucht. Wenn die Verteilung mehr oder weniger homogen ist, bedeutet dies, dass im Falle eines fehlerhaften Updates, wenn wir uns innerhalb der ersten Stunde dessen bewusst werden, nur 1/24 der Instanzen betroffen sind (wenn wir uns nach 2 Stunden dessen bewusst werden, nur 2/24 usw.), und wir können die Situation korrigieren (Rollback, Fix pushen usw.).

Ich denke nicht, dass die Reduzierung dieser Zeit das Problem löst.

Der Ansatz von @VonOx oder die Idee, nach der Installation einen „Jetzt aktualisieren“-Button anzubieten, erscheinen mir vielversprechender!

ah, das ist ja genial! Haben sie also ein Image, bei dem du direkt nach dem Booten die neueste Version von HA hast, selbst ohne Internet? Und ohne Wartezeit?

Home Assistant Operating System verwendet Docker als Container-Engine.
Standardmäßig wird der Home Assistant Supervisor als Container bereitgestellt.
Der Home Assistant Supervisor verwendet wiederum die Docker-Container-Engine, um Home Assistant Core und Add-Ons in separaten Containern zu steuern.

Im Readme wird standardmäßig nur der Supervisor (der selbst ein Container ist) bereitgestellt.

Ich muss mal ein bisschen Informationen sammeln.

Das Skript wird tatsächlich beim Start ausgeführt.

Während des Pulls usw. informiert eine Landing Page den Benutzer, dass das System vorbereitet wird.

Das System ist also anfangs leer.

Das ist ein bisschen das, was ich gemacht habe, außer dass der Benutzer eine Info hat :sweat_smile:

ok! Und wie machen sie das, um die Landing Page anzuzeigen?

Das ist eine Go-App, die beim Start geladen wird (28 MB Bild, also relativ schnell)

Sie bauen pro Maschine - Arch


Also, solange der Benutzer informiert wird, ist es egal, wie lange die Vorbereitung dauert.
Man muss kein Bild (OS) oft bauen. Die Anwendung ist immer in der neuesten Version.

Soweit ich sehe, ermöglicht Buildroot auch das Bauen für x86 / x64 und spezifisch für das Raspberry-Pi-Modell.

https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/README.md

Nicht dumm!

Man kann das gleiche Ergebnis mit einer nginx-alpine (9 MB, nginx - Official Image | Docker Hub) und einem einfachen index.html erreichen, das wäre noch leichter :stuck_out_tongue:

Tatsächlich gefällt mir das besser als Prozess, wenn der Benutzer weiß, was er tut!

Wenn es uns außerdem ermöglicht, das Bild automatisch zu bauen, bin ich dabei :heart_eyes:

Sollen wir das PoC wieder aufnehmen? ^^

Ich habe mein Repo aktualisiert und den CI vorbereitet

Es ist nur noch ein kleiner Schritt

Die Diskussion wird hier fortgesetzt:

Ich bringe das Thema wieder auf, um zu erfahren, ob es Fortschritte gab.
Ich wäre etwas frustriert, wenn ich Gladys installiere und feststelle, dass ich nicht die neueste Version habe (für einen neuen Benutzer).
Ich musste tatsächlich 24 Stunden warten, bis Gladys auf dem neuesten Stand war.

Wäre es möglich, eine Versionshistorie auf der Website zu haben?
V4.0.0
V4.0.1
…
Damit man die neueste oder die vorletzte Version herunterladen kann.

An sich ist das manuelle Update per SSH nicht kompliziert (Quelle):

  1. Neues Docker-Image herunterladen:
docker pull gladysassistant/gladys:v4
  1. Aktuellen Container stoppen und löschen:
docker stop gladys ; docker rm -f gladys
  1. Gladys mit Update neu starten:
docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys \
-e NODE_ENV=production \
-e SERVER_PORT=80 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
gladysassistant/gladys:v4

Aber natürlich ist es viel angenehmer, das alles über die Weboberfläche zu automatisieren :slight_smile: Du kannst eine Feature Request im Forum erstellen!

Es gibt bereits einen Beitrag dazu
https://community.gladysassistant.com/t/build-automatique-de-limage-raspberry-pi-os/6124