Hi zusammen!
Es ist wieder Zeit für ein kleines monatliches Wrap-Up zu meiner Offline-Sprachassistentin Hannah. Im Juni habe ich unter der Haube und vor allem an der Oberfläche extrem viel getan! Wer das Projekt bisher verfolgt hat, wird wissen, dass es einige Einstellungen gab, die man mühsam in YAML-Dateien bearbeiten musste. Damit ist jetzt Schluss, denn genau dafür gibt es nun die neue WebUI.
Hier sind die wichtigsten Highlights aus dem Entwicklungszyklus der letzten Wochen:
🌟 Die neue WebUI: Tschüss YAML, hallo No-Code!
Die größte Neuerung ist mein Web-Interface. Um künftige Versionskonflikte mit dem Core-System komplett zu vermeiden und die Entwicklung sauber zu trennen, läuft die WebUI als eigenständige Standalone-Anwendung in einem separaten Repository (und ist dort direkt mit der Version 1.0.0+ gestartet).
Flexibler Microservice: Ich habe die WebUI als echten Microservice konzipiert. Sie kann entweder auf demselben Host wie Hannah selbst laufen oder auf einem völlig anderen Server in eurem Netzwerk. Auch ein Deployment über Docker wird voll unterstützt. Ein passendes Dockerfile liegt im Repository bei, sodass ihr euch das Image ganz einfach selbst bauen könnt.
Neues Gewand (Tailwind CSS): Das alte Bootstrap-Design fliegt nach und nach raus. Große Teile wie die Raum-, Satelliten- und Einstellungsseiten erstrahlen bereits in einem schicken, einheitlichen Dark-Theme auf Tailwind-Basis – perfekt für das Dashboard-Tablet an der Wand.
Komfortabler Trigger-Editor: Im Trigger-Editor müsst ihr die Wochentage für Uhrzeit-Bedingungen nicht mehr mühsam als Text (durch Kommas getrennt) eintippen. Das lässt sich jetzt ganz entspannt über eine saubere Checkbox-Auswahl zusammenklicken.
Ausblick – Responsive Design: Damit das Interface auch auf dem Smartphone knackig aussieht, habe ich bereits eine Responsive-Design-Initiative für das Projekt gestartet. Eine echte Optimierung für mobile Endgeräte steht also als Nächstes auf meinem Zettel!
Hier geht es direkt zum neuen Repository:
🔗 WebUI-Repository
[image: 1782854966431-opera_xnx9hpccnx.png]
[image: 1782854979753-opera_jvu4uftg1i.png] [image: 1782854979764-opera_7qdww1z3i7.png] [image: 1782854979771-opera_qzdttphwrx.png]
🧠 Core-Updates & Stabilisierung
Auch im Core (aktuell bei Version 0.48.1) habe ich massive Fortschritte bei der Strukturierung der Datenmodelle gemacht:
Lösen von der strikten ioBroker Integration zur Unterstützung einer stärkeren Bindung und Stabilität: Unter der Haube habe ich die BLE-Indoor-Lokalisierung und die Benutzerverwaltung unabhängiger auf eigene Beine gestellt. Statt starr auf asynchrone Snapshots des Adapters zu warten, lädt Hannah Nutzerdaten nun direkt synchron aus einer lokalen SQLite-Datenbank. Das verhindert Race-Conditions nach Server-Neustarts komplett. Keine Sorge: Sobald der ioBroker-Adapter connected, pusht Hannah den aktuellen Anwesenheitsstatus ("Wer ist zuhause") sofort sauber rüber!
Routinen & Trigger im No-Code-Editor: Über die neue Oberfläche lassen sich Routinen und komplexe Trigger-Bedingungen (Wenn-Und-Außer-Wenn-Dann) völlig ohne Programmieraufwand direkt in der UI zusammenklicken.
Personalisierte Satelliten: Satelliten lassen sich jetzt nicht mehr nur festen Räumen zuweisen, sondern können im System direkt einer konkreten "Person" (Besitzer) zugeordnet werden. Das legt den Grundstein für zukünftige, personalisierte Ansagen, die genau da landen, wo sich der jeweilige Nutzer aufhält.
Dynamische Satelliten-Verwaltung: Über das Web-Interface kann ich Satelliten nun endlich vollständig administrieren und bei Bedarf über einen neuen "Löschen"-Button inklusive gRPC-Event-Verteilung direkt sauber aus der DB und dem ioBroker-Objektbaum entfernen. Leichen im System gehören damit der Vergangenheit an.
🔌 ioBroker-Adapter & Hardware-Verbindung
ioBroker-Adapter: Natürlich wurde der Adapter nicht vergessen und hat in der Zeit ebenso eine Menge Updates erhalten. So kann man nun neue Satelliten direkt über den ioBroker-Admin flashen, die Objektdatenbank wurde bereinigt und dutzende Bugs wurden durch Stabilitätsupdates gefixt.
🔊 Performance-Schub für Ankündigungen (Proxy-Fix)
Wer mehrere Satelliten im Einsatz hat, kennt das vielleicht: Bisher liefen Audio-Ankündigungen (Announcements) an mehrere Geräte sequentiell ab. Wenn ein Satellit noch streamte, blockierte das die restlichen Geräte.
Das habe ich komplett überarbeitet: Ein neuer paralleler Dispatcher verteilt die Audio-Chunks nun pro Geräte-ID auf eigene Worker-Goroutinen. Die Ausgabe auf verschiedenen Satelliten erfolgt ab sofort absolut gleichzeitig und parallel, ohne dass sich die Geräte gegenseitig ausbremsen.
Das war es auch schon für diesen Monat von meiner Seite! Die Entkopplung der WebUI macht den Weg frei für ein noch modulareres Setup.
Wie sieht's bei euch aus? Habt ihr Wünsche für den No-Code-Trigger-Editor, die generelle WebUI oder das ganze Projekt? Lasst es mich in den Kommentaren wissen!
Egal ob hier im Forum über diesen Thread, per privater Nachricht oder direkt auf GitHub – ich bin hör-bereit.
Das waren nun in diesem Monat ganze 84 Releases, in meinen Augen spricht das für ein lebendes Projekt.
Viele Grüße,
Leonie