Hii,
Ich gebe dann mal wieder ein Update.
Hannah selbst hat im letzten Monat einige Updates bekommen, die Integration in den ioBroker wurde verbessert, ebenso kamen neue Features dazu. Die ESP-Firmware ist quasi fertig. Diese hat mittlerweile einige Versionen bekommen, so kann sie bspw. mit Sensoren wie dem BMP280 und AHT20 (oder nur einem davon) betrieben werden, oder auch mit einem BME680. Die Wakeworderkennung ist abgeschlossen, es wurde Support eingebaut um Audio-Samples für das Wakewordtraining über die Mikrofone des ESPs aufzunehmen um auf diese Weise authentische Trainingsdaten zu bekommen.
Die ESP-Firmware hat darüber hinaus eine OTA-Komponente erhalten und kann sich somit selbstständig updaten. Vor einem Update fragt der ESP aktiv bei Hannah nach einem "ok", erst wenn Hannah den Request bestätigt, führt der ESP das Update aus. Dies ist notwendig, damit der Satellit nicht bspw. mitten im Gespräch neustartet.
Auch für alle weiteren Hannah-Komponenten gibt es einen Update Service, dieser nennt sich dort AutoDeploy. AutoDeploy bedient sich an der selben OTA-Infrastuktur wie die ESP-Firmware, lädt die neuen Komponenten-Files runter und startet die betroffenen Services neu.
Das läuft über einen eigenen Microservice den ich Hannah Update Server genannt habe. Bei Bedarf kann ich dessen API gerne offen legen. Das gleiche gilt für eine weitere neue Komponente: Den Assetserver. Dieser stellt bspw. Jingles und/oder einfache Töne bereit, die dann von Hannah oder den Satelliten abgespielt werden können. Auch dessen API kann ich bei Bedarf offen legen.
Zu der ESP-Firmware: Größtenteils halte ich die mittlerweile für abgeschlossen. Sicher kommen da zukünftig noch weitere Features oder Bugfixe rein, aber aktuell ist diese für mich vollständig und komplett konfigurierbar.
Außerdem hat die ESP-Firmware mittlerweile auch ein WiFi-Provsioning. Nach dem Flashen oder wenn man den "geheimen" Reset-Knopf gefunden hat, öffnet der ESP einen AccessPoint und gibt sich selbst die IP-Adresse 192.168.4.1. Über diese Adresse kann man ihn dann konfigurieren und bspw. die WiFi-Credentials eintragen. Seine WebUI ist auch im normalen Betrieb verfügbar. Dort lässt sich bspw. das Wakeword an- und ausschalten, der Name oder die Raumzuordnung ändern.
Quasi nebenbei hat Hannah über die Satelliten auch einen BLE-Tracker bekommen, sie kann nun also BLE-Devices im Haus "orten".
Selbstverständlich werden alle Satellitendaten in den ioBroker gebracht.
Weiterhin wurde die Integration in ein LLM verbessert. Wird nun ein LLM verwendet, das Tools unterstützt, werden mehrere Tools an das LLM übergeben. So kann auch im Smalltalk-Modus der ioBroker gesteuert werden und das LLM arbeitet an manchen Stellen besser/exakter als die regelbasierte NLU. So hat als Beispiel Whipser den Satz "Fritteuse an" als "Fritus a" transkribiert, worauf die regelbasierte NLU keinen Match hatte und das folgerichtig als Smalltalk in das LLM geleitet hat. Das LLM hat dann korrekt "Fritteuse an" verstanden/geschlossen und tat genau das.
Außerdem gibt es in ioBroker gleich drei States, die in etwa den gleichen Zweck haben, aber anders sind:
announcement
Diese Texte gehen direkt ans TTS und werden über die Satelliten ausgespielt
announcementSsml
Quasi das gleiche wie das vorherige, aber mit SSML-Support
announcementRephrase
Diese Texte gehen einen kleinen "Umweg" über das LLM mit der Ansage: Formuliere das in deinen Worten neu und flechte deine Persönlichkeit ein. So kommt in relativ starre Texte die man in ioBroker bspw. über Javascript generiert ein wenig Variation.
Von meinem eigenen PCB befindet sich gerade Revision 4 auf dem Weg zu mir. Revision 1 wurde nie gebaut und die Revsion 2 und 3 haben dumme Fehler, die nie hätten passieren dürfen :D
Alles zusammen, also ein sehr produktiver Monat, nach meiner Git-History hat Hannah in dieser Zeit 56 Releases gehabt.