# Changelog ## 1.6.0 - 2026-06-18 - `/v1/actuators/dashboard/system` und `/dashboard/start` lesen fuer Cache-Status nur noch SQLite-Metadaten statt den kompletten Entity-Cache zu materialisieren. - Aktor-Summaries lesen benoetigte Entity-Metadaten gezielt aus SQLite anhand der Aktor-IDs. - Ingress-Dashboard bereinigt: weniger Erklaertexte, kein Ablauf-Menue, kein Versions-Chip im Einrichtungsbereich. - Detailansicht ergaenzt Zurueck-Navigation, Aktualisieren und Auswahl eines anderen beobachteten Geraets. - Frontend bleibt Anzeige- und Bedienebene; Backend liefert schlanke View-Daten, Worker aktualisieren HA-/Discovery-Cache im Hintergrund. ## 1.5.4 - 2026-06-18 - Add-on-Start vertraut Ingress-Proxy-Headern nicht mehr blind. Uvicorn loggt damit den direkten Docker-/Ingress-Peer statt LAN-IPs aus `X-Forwarded-For`. - Dashboard behält bereits geladene System-, Lern- und Discovery-Daten beim Wechseln der Ansichten und aktualisiert sie nur im Hintergrund. - Details sind kein eigener Menüpunkt mehr, sondern gehören zum ausgewählten Aktor aus der Lernübersicht. Bereits geöffnete Details bleiben sichtbar und laden nur bei expliziter Aktualisierung neu. ## 1.2.0 - 2026-06-17 - Automatische Sensor-Gewichtungsanpassung aus Nutzerfeedback: korrektes Feedback staerkt aktuelle Kontextsignale leicht, falsches Feedback wertet sie vorsichtig ab. - Modell-Snapshots mit aktivem Modellstand und Rollback-API ergaenzt. - Dashboard zeigt Modell-Snapshots, Rollback, Zeitprofile, adaptive Gewichtungsupdates und Automation-Konflikte. - Automation-Refresh markiert Konflikte, wenn SillyHome aktiv ist und passende HA-Automationen parallel aktiv bleiben. - Zeitprofile fuer Nacht, Morgen, Tag, Abend und Wochenende werden aus gelernten Handlungen gebildet. ## 1.1.0 - 2026-06-17 - Dashboard als Einrichtungs- und Visualisierungszentrale erweitert: Job-Queue, Sicherheitsprofil, Entscheidungsakte, Wissen/Annahmen/ Unsicherheiten und Beitragsfaktoren pro Aktor. - Lokales Safety-Profil pro Aktor eingefuehrt: manuelle Sperre, Freigabestufe, Mindest-Confidence und optionaler Cooldown werden vor autonomem Schalten ausgewertet. - Sofort-Schaltpfad bleibt schnell: Safety prueft nur lokale Daten; der Home-Assistant-Serviceaufruf wird nicht durch Discovery, Training oder Statistik blockiert. - Sichtbare Job-Queue fuer Discovery, Reconciliation, Training, Evaluation und Automation-Refresh mit Status, Dauer, Fehler und Zusammenfassung. - Entscheidungsstatistik erweitert: Sensor-/Kontextfaktoren, aktive Gewichtungen, Sample-/Confidence-Trends und Feedbackzaehler werden persistiert. ## 1.0.5 - 2026-06-17 - Lange Friendly Names, Entity-IDs, Chips, Tabellenwerte und Metriken brechen im Dashboard responsiv um und laufen nicht mehr aus Karten oder Boxen. - Automatisierter Performance-Budget-Test fuer Root-HTML und `/v1/actuators/dashboard` gegen das 5-Sekunden-Limit ergaenzt. - HA-/Ingress-Verifikation mit Supervisor-Status, Backup, Watchdog, Hard-Reload und Rollback im Operating Guide dokumentiert. ## 1.0.4 - 2026-06-17 - Sensor-Relevanz ist in der Aktor-Detailansicht sichtbar: automatische Relevanz, aktive Gewichtung und Score werden pro verwendetem Sensor/Zustand angezeigt. - Gewichtungen koennen im Dashboard korrigiert und per API unter `/v1/actuators/{actuator_entity_id}/weights` gespeichert werden. - Gruppen-Gewichtungen buendeln mehrere Sensoren/Zustaende fuer einen Aktor, damit verbundene Kontextsignale gemeinsam bewertet werden koennen. ## 1.0.3 - 2026-06-17 - Header-Menue als Pulldown umgesetzt; die separate Navigationsleiste entfaellt. - Geraetegruppen und manuelle Kontextbereiche sind standardmaessig geschlossen. - Dashboard startet in Phasen: leere Bedienoberflaeche, dann Status, danach Geraetedaten. - Detailansicht oeffnet streamartiger: zuerst Basis-Shell, dann Aktorwerte, danach Kontextvorschlaege. ## 1.0.2 - 2026-06-17 - v1.0-Abnahme als `docs/V1_0_ACCEPTANCE.md` dokumentiert: erledigte, teilweise erledigte und offene v1.0.x-Punkte sind getrennt sichtbar. - Dashboard-Startstatistik erweitert: Freigabebereitschaft, Aktiv/Shadow, Gelernt/Wartet und gelernte Handlungen werden direkt im Startbereich zusammengefasst. ## 1.0.1 - 2026-06-17 - Dashboard-UI nach v1-Korrektur neu strukturiert: feste Steuerungsleiste, separate Geräteübersicht, klare Freigabe-/Detailfläche und Statusbereich. - Orange bleibt Primärfarbe; Cyan ist die sichtbare Komplementärfarbe. Rote Aktions- und Fehlerflächen wurden aus der Oberfläche entfernt. - Startpfad weiter beschleunigt: Dashboard lädt nur noch lokale Startdaten. HA-Discovery, Vorschläge und Automation-Refresh laufen erst nach Nutzeraktion. - Detailansicht öffnet ohne automatische Automation-Discovery. Passende Automationen können gezielt per Button neu gesucht werden. ## 1.0.0 - 2026-06-17 - Neuer blockweiser Dashboard-Start über `/v1/actuators/dashboard`: lokale Store-/Cache-Daten laden sofort, HA-Discovery und Vorschläge laufen nachgelagert. - Discovery liest Entities pro Anfrage nur noch einmal und klassifiziert aus diesem Snapshot weiter. Dadurch entfallen doppelte HA-Vollabfragen. - Persistenter JSON-Entity-Cache wird für Friendly Name, Raum, Gerät, Discovery-Gruppen und schnelle Summaries genutzt. - Dashboard mit Orange als Primärfarbe, kompakter Navigation, aufklappbarer Anleitung, aufklappbaren Gerätegruppen und Cache-/Systemstatistik. - Aktor-/Sensor-Kategorien erweitert: Feuchte, Wetter, Helligkeit, Bewegung, Tür/Fenster, Präsenz, Lichtzustände, Schalter, Steckdosen, Lüftung, Heizung, Cover, Helper, PV/Akku/Einspeisung. - Kontextvorschläge vermeiden weitere doppelte HA-Discovery und sortieren aktortypbezogen nach relevanten Bereichen. ## 0.7.21 - 2026-06-17 - Dashboard-Ladepfad getrennt: beobachtete Geräte laden sofort über `/v1/actuators/summary`; Status, Discovery und Vorschläge laufen unabhängig nachgelagert und blockieren die Übersicht nicht mehr. - Systemstatus nutzt Timeouts und bleibt auch bei langsamem ML-/HA-Status bedienbar. - HA-Entity-Metadaten werden als JSON-Cache gespeichert und für Friendly Name, Raum und Gerät in schlanken Summaries wiederverwendet. - Anleitung, Gerätegruppen und manuelle Kontextauswahl sind aufklappbar und kompakter für Smartphone- und Desktopansichten. ## 0.7.20 - 2026-06-17 - Dashboard-Übersicht ist kompatibel mit dem leichten Summary-Format und greift nicht mehr auf `record.behavior.status` aus dem Vollformat zu. ## 0.7.19 - 2026-06-17 - Dashboard-Übersicht nutzt einen leichten `/v1/actuators/summary`-Endpunkt statt voller Lernmuster und kompletter HA-Entityliste. - Nach Aktionen werden Dashboard-Caches gezielt invalidiert, damit keine stale oder doppelt geladenen Einträge entstehen. ## 0.7.18 - 2026-06-16 - Dashboard lädt Aktoren, Entities und Discovery nur noch einmal pro Refresh und rendert daraus Auswahl und Übersicht ohne doppelte API-Ladewege. - Manuelle Kontext-Evidenz wird dedupliziert, damit Hinweise wie "Manuell vom Nutzer als relevant festgelegt" nicht mehrfach erscheinen. - Kontextauswahl ist vollständiger: Feuchte, Wetter, Licht-/Schalterzustände, Bewegungs-/Tür-/Präsenzmelder, PV/Akku/Einspeisung und Helper werden sauberer kategorisiert und per Suche/Kategorie erreichbar. - Domainspezifische Zuordnung geschärft: Lüftungen bevorzugen Feuchte/Temperatur, Lichter Helligkeit/Bewegung/Tür/Präsenz, Heizungen Temperatur/Anwesenheit/Wetter. ## 0.7.17 - 2026-06-16 - WebSocket-Eventpfad ist schneller: irrelevante HA-State-Changes werden vor dem teuren State-Cache-Listenbau verworfen. - WebSocket nutzt Keepalive und reconnectet nach Abbrüchen nach 1s statt 5s. ## 0.7.16 - 2026-06-16 - Beobachtete Aktoren werden in der Übersicht nach Raum oder Typ gruppiert und mit Friendly Name angezeigt. ## 0.7.15 - 2026-06-16 - Add-on-Start ist robust gegen Home-Assistant-Core-502 beim Systemboot: API und WebSocket-Listener starten trotzdem, Reconciliation/Training werden im Hintergrund mit Retry nachgeholt. - Periodische Reconciliation und Fallback-Auswertung beenden den Dienst nicht mehr bei temporären HA-Fehlern. - Add-on-Watchdog prüft `/health`, damit Supervisor den Dienst nach Absturz wieder starten kann. ## 0.7.14 - 2026-06-16 - Onboarding-Vorschläge laden im Dashboard nachgelagert, damit Status, Aktor-Auswahl und bestehende Geräte nicht auf Automation-Discovery warten. ## 0.7.13 - 2026-06-16 - Diagnose-/Schutzsensoren wie Überhitzung und Überlast werden nicht mehr nur wegen gleicher Strom-/Monitoring-Bereiche automatisch als Lichtkontext übernommen. - Verwendete Kontext-Entities können pro Aktor direkt entfernt und damit als manuelle Zuordnung überschrieben werden. - Onboarding-Vorschläge zeigen passende, noch nicht eingerichtete Aktoren aus bestehenden Automationen und naheliegenden Kontexten. - TV-/Medien-Aktoren über `media_player` und Fernbedienungen über `remote` werden in Discovery und Auswahl berücksichtigt. ## 0.7.12 - 2026-06-16 - Aktor-Auswahlliste zeigt maximal 50 Treffer gleichzeitig und fordert bei größeren Mengen zum Eingrenzen per Suche oder Typfilter auf. ## 0.7.11 - 2026-06-16 - Aktor-Discovery erkennt weitere steuerbare HA-Domains wie Buttons, Helper, Heizungen, Schlösser, Ventile und numerische Helper. - Aktor-Auswahl dedupliziert Licht-/Schalter-Doppelungen pro Gerät und gruppiert zusätzliche Typen im Dashboard. - Discovery liefert Kategorien für Mess-, Binär-, Kontext- und Aktor-Entities. - Nutzerfeedback kann Vorhersagen als korrekt oder falsch markieren und direkt als Lernsignal speichern. ## 0.7.10 - 2026-06-16 - WebSocket-State-Changes aktualisieren einen internen Home-Assistant-State- Cache und werten Aktoren direkt gegen diesen frischen Event-Zustand aus. - Event-Auswertungen lösen keine REST-Statusabfrage mehr aus, bevor sie aktive Aktoren schalten. ## 0.7.9 - 2026-06-15 - Event-basierte Vorhersagen verwenden den frischen Sensorzustand direkt aus dem Home-Assistant-WebSocket-Event, damit Kontextwechsel ohne REST-Race sofort bewertet und geschaltet werden können - Regressionstest stellt sicher, dass ein Türsensor-Event trotz veraltetem HA-Snapshot direkt `light.turn_on` auslöst ## 0.7.8 - 2026-06-15 - Home-Assistant-WebSocket-Listener deaktiviert den clientseitigen Keepalive- Ping, damit stabile HA-Verbindungen nicht durch Ping-Timeouts ständig neu aufgebaut werden - Fallback-Auswertung läuft bei getrenntem WebSocket kurzfristig alle 5 Sekunden, damit übernommene Aktoren nicht ohne Steuerung bleiben ## 0.7.7 - 2026-06-15 - WebSocket-State-Changes lesen jetzt das echte Home-Assistant-Eventformat (`event.data.entity_id`), damit Kontextwechsel wie Türsensoren sofort Vorhersagen und Schaltungen auslösen statt erst beim nächsten Statusabruf ## 0.7.6 - 2026-06-14 - Kontextvorschläge blenden zusätzlich Batterie-, Status-, Node-, Last-Seen- und Basic-Entities aus, sofern sie nicht bewusst manuell ausgewählt wurden ## 0.7.5 - 2026-06-14 - Kontextvorschläge weiter geschärft: Standardliste zeigt nur gleiche Räume, gemeinsame Geräte/Tokens oder echte globale Außenwerte - Diagnosewerte wie MQTT-, WiFi-, Restart- und Connect-Zähler werden nicht mehr als fachliche Kontextvorschläge angeboten ## 0.7.4 - 2026-06-14 - Kontext-Auswahl liefert jetzt aktorbezogene Vorschläge statt einer pauschalen Roh-Liste aller Sensoren und Zustände - Dashboard-Auswahl für Aktoren und Kontext nach Typ/Kategorie gruppiert und durchsuchbar; lange Listen werden begrenzt statt mobil unbedienbar zu werden - Manuelle Entity-ID-Eingabe ergänzt, damit relevante Sensoren auch ohne Dropdown-Treffer gespeichert werden können - Irrelevante System-/VPN-/pfSense-Sensoren tauchen bei Lichtaktoren ohne fachlichen Bezug nicht mehr als Standardvorschläge auf ## 0.7.3 - 2026-06-14 - Automatische Kontextzuordnung ignoriert generische Bereiche wie `Monitoring`, damit System-/Disk-/Überhitzungssensoren nicht fälschlich Lichtaktoren erklären - Aktor-Auswahl auf tatsächlich sicher steuerbare Domains begrenzt: `light`, `switch`, `cover`, `fan`, `humidifier` - Neue manuelle Kontext-Zuordnung pro Aktor: Haupt-Messsensor optional setzen und mehrere relevante Kontext-Entities wie PIR, Außenhelligkeit, Luftfeuchtigkeit oder andere Lichtzustände auswählen - Dashboard-Dropdown durch echtes Select plus Suche ersetzt; mobile Bedienung und Aktor-Details enthalten Speichern/Neu-laden-Aktionen für manuelle Kontextwahl ## 0.7.2 - 2026-06-14 - Home-Assistant-Entity-Metadaten werden in Batches gelesen, damit große HA- Installationen nicht mehr am Template-Ausgabe-Limit scheitern - Nicht über die HA-Config-API exponierte Automationen werden leise übersprungen, statt wiederholt Warnungen in die Logs zu schreiben - Dashboard für mobile Nutzung optimiert: Sticky-Schnellnavigation, Karten statt breiter Tabelle, größere Touch-Ziele und bessere Detail-/Menüführung - WebSocket-Status ist direkt im Dashboard-Systemstatus sichtbar ## 0.7.1 - 2026-06-14 - Event-basierter Home-Assistant-WebSocket-Listener authentifiziert sich jetzt mit dem echten HA-WebSocket-Protokoll (`auth_required` -> `auth` -> `auth_ok`) - Kompatibilität mit aktuellen `websockets`-Versionen wiederhergestellt - WebSocket-Healthcheck und Event-Listener-Tests laufen ohne zusätzliches Async-Pytest-Plugin - Add-on-Version angehoben, damit Home Assistant das aktualisierte Image baut ## 0.7.0 - 2026-06-14 - Freie Eingabe von Home-Assistant-Entitätsnamen mit Vorschlagsliste - Freigabestatus und Blockadegrund sind in Übersicht und Details immer sichtbar - Vorhersagen erklären konkret, warum sie ausgeführt oder nicht ausgeführt wurden - Cooldown blockiert nur Wiederholungen desselben Zielzustands; Gegenaktionen wie `Licht an` gefolgt von `Licht aus` bleiben sofort möglich - Passende HA-Automationen werden aus ihren echten Konfigurationen erkannt und können pausiert oder fortgesetzt werden - Sichere Steuerungsübergabe: SillyHome kann übernehmen und passende HA-Automationen pausieren; beim Stoppen können sie gezielt fortgesetzt werden - Dashboard wird ohne Browser-Cache ausgeliefert - Reproduzierbare Runbooks für Debugging, Berechnung, Entwicklung, Tests, Release, Add-on-Update, Live-Verifikation und Rollback ## 0.6.2 - 2026-06-14 - Eindeutig im Home-Assistant-Logbuch erkannte Automationen und Scripts zählen für Lernen und Freigabe gleichwertig wie manuelle Bedienungen - Automationsmuster erhalten dieselbe Modellgewichtung wie manuelle Handlungen - Oberfläche zeigt die gemeinsame Zahl als `eindeutig geregelt`; eine ausdrückliche Aktivierung pro Aktor bleibt weiterhin erforderlich ## 0.6.1 - 2026-06-14 - Manuelle Prüfung als `Aktuelle Situation auswerten` eindeutig von Simulation oder Aktorschaltung abgegrenzt - Sichtbare Rückmeldung mit Prüfzeitpunkt, vorhergesagtem Zustand und Sicherheit oder klarem Hinweis auf einen fehlenden frischen Sensorwechsel ## 0.6.0 - 2026-06-14 - Kausales Shadow-Lernen erkennt frische Kontextwechsel unmittelbar vor einer Aktorhandlung, etwa `Tür geschlossen → offen` vor `Licht aus → an` - Historische Home-Assistant-Automationen dürfen Vorhersagen begründen, zählen aber weiterhin niemals als eindeutige Benutzerhandlung oder Ausführungsfreigabe - Aktuelle `last_changed`-Zeitpunkte verhindern Vorhersagen aus längst unveränderten Sensorzuständen - Oberfläche trennt gelernte Benutzerhandlungen und erkannte HA-Automationen ## 0.5.4 - 2026-06-14 - Tür-, Bewegungs- und andere belastbare Kontextsensoren werden auch ohne numerischen Sensor als vollständige automatische Kontextzuordnung angezeigt - Status und Zuordnungssicherheit bilden das aktive Verhaltenslernen ab statt eines optionalen numerischen Modells - Ausführungsfreigabe erscheint erst, wenn genügend eindeutig manuelle Bedienungen vorliegen; bis dahin nennt die Oberfläche die noch fehlende Anzahl ## 0.5.3 - 2026-06-14 - Verhindert fachlich falsche Sensorzuordnungen nur aufgrund generischer Namen wie `Licht` oder `Lichtschalter` - Übernimmt numerische Sensoren nur noch bei einem belastbaren absoluten Score und einer eindeutigen Abgrenzung zum zweitbesten Kandidaten - Begrenzt Zusatzkontext auf relevante Sensoren und bevorzugt bei Lichtaktoren echte Beleuchtungsstärke gegenüber fremden Leistungs- oder Energiezählern ## 0.5.2 - 2026-06-14 - Add-on-Build invalidiert den Docker-Cache bei jeder Versionsänderung, damit Versionsmetadaten und tatsächlich ausgelieferter Anwendungscode übereinstimmen - Korrigierte Ingress-Oberfläche aus 0.5.1 dadurch erstmals zuverlässig ausgeliefert ## 0.5.1 - 2026-06-14 - Technische Modell-, Intervall- und Sicherheitsparameter aus der normalen Home-Assistant-Add-on-Konfiguration entfernt; sichere Standardwerte bleiben aktiv - Ingress um einen klaren Ablauf mit Aktorauswahl, Beobachtungsphase und späterer Ausführungsfreigabe ergänzt - Bedienelemente und Diagnosen in verständlicher Alltagssprache erklärt ## 0.5.0 - 2026-06-14 - Ingress auf reine Aktorauswahl, automatischen Lernstatus und Vorhersagen reduziert - Automatische Kontextzuordnung ohne Sensor-Overrides oder Review-Blockade - Historische Handlungserkennung aus HA-State-History und Logbook-Herkunft - Persistentes Verhaltensmodell pro Aktor mit Zeit-, Wochentags- und Kontextmustern - Shadow-Vorhersagen vor jeder Ausführungsfreigabe - Explizite Aktivierung pro Aktor, Konfidenzschwelle, Cooldown und enge Service-Whitelist - Schutz vor dem Lernen erkannter HA-Automationen und eigener Schaltvorgänge - Automation-Proposal- und Override-Endpunkte aus dem aktiven Produkt entfernt ## 0.4.0 - 2026-06-13 - Aktuator-zentrierte Einrichtung: Nutzer wählen nur noch Aktuatoren, Sensoren werden deterministisch gefunden und bewertet - Persistente automatische und manuelle Sensorzuordnungen mit Evidenz, Confidence, Review-Gating und Neustart-Sicherheit - Autonomer Modell-Lebenszyklus auf echter HA-Historie: Training, Retraining bei Staleness oder Datenänderung, Archivierung von Waisen - Neues Dashboard und API für Aktuatorauswahl, Reconciliation, Overrides, Modellstatus und Audit-Trail - Neue Container-/Add-on-Defaults für Aktuator-Store und periodische Reconciliation ohne zusätzliche Gerätesteuerung ## 0.2.0 - 2026-06-13 - Klassifizierte Home-Assistant-Entity-Discovery mit Lernrelevanz und Filtern - Validierter Zugriff auf die Home-Assistant-History-API - Normalisierte, chronologisch sortierte numerische Zeitreihen über `/v1/history` - Trainierbares statistisches Baseline-Modell mit persistierten Parametern - Numerische Vorhersagen mit Confidence sowie MAE-/RMSE-Evaluation ## 0.1.0 - 2026-06-13 - Projektinitiierung - Architektur, ADRs und Roadmap - Einheitliche produktive FastAPI-App für HA- und ML-Routen - Funktionierende ENV-Konfiguration und sauberer HA-503-Zustand - Persistente, validierte und gegen Path Traversal gehärtete Model Registry - Reproduzierbares Packaging, CI-Gates und gehärteter non-root Container - Definierte API-Fehler und korrigierte Evaluationsmetriken - Scheduler-tauglicher Retraining-Service mit API und atomischem Registry-Update