Home Assistant verfügt nicht über eine universelle „Suchmaschine“, deren Geschwindigkeit mit jeder hinzugefügten Entität abnimmt. Das deutlichere Skalierungsproblem ist die historische Abfragearbeit: Das Verlaufsfenster, logbuchähnliche Ansichten, Statistiken und andere datenbankgestützte Funktionen müssen gespeicherte Recorder-Daten abrufen und organisieren.
Mit zunehmender Datensatzgröße hängen die Kosten einer Anfrage davon ab, wie viele Zeilen übereinstimmen, welche Indizes die Suche eingrenzen können, ob Attribute verknüpft werden müssen, wie viele Daten sich bereits im Speicher befinden und wie schnell der Speicher fehlende Seiten bereitstellen kann. Die Datenbankgröße ist wichtig, aber die Form der Abfrage ebenso.
Der Verlauf liest aus dem Recorder, nicht nur aus der Live-Zustandsmaschine
Aktuelle Gerätewerte befinden sich im Laufzeit-Zustandsmodell von Home Assistant, während die Verlaufsintegration gespeicherte Beobachtungen aus dem Recorder liest. Eine Dashboard-Karte, die die aktuelle Temperatur anzeigt, und ein Verlaufdiagramm über fünf Tage verwenden daher unterschiedliche Datenpfade.
Home Assistant dokumentiert, dass der Verlauf vom Recorder abhängt und normalerweise unverarbeitete Recorder-Daten innerhalb des konfigurierten Aufbewahrungszeitraums liest. Wenn der ausgewählte Zeitraum bei geeigneten Sensoren über diesen Zeitraum hinausgeht, können stattdessen stündliche Langzeitstatistiken verwendet werden.
Deshalb kann sich ein großer Verlaufdatensatz langsam anfühlen, während eine lokale Lichtautomatisierung weiterhin sofort reagiert.
Mehr gespeicherte Zustände bedeuten mehr Zeilen, Metadaten und Indexarbeit
Jede aufgezeichnete Aktualisierung fügt der Datenbank Informationen hinzu. Home Assistant reduziert Duplikate, indem Entitätskennungen und gemeinsame Attribute in verwandten Tabellen getrennt gespeichert werden. Eine stark ausgelastete Installation kann dennoch große Mengen an Zustandszeilen ansammeln.
Das aktuelle Datenmodell von Home Assistant zeigt, dass aufgezeichnete Zustände auf Entitätsmetadaten und gemeinsame Attributzeilen verweisen und indizierte Zeitstempel sowie Beziehungen für historische Abfragen enthalten. Entitäten mit häufigen Änderungen erhöhen daher mehr als nur die Anzahl der lesbaren Werte.
Aufbewahrungsdauer und Aktualisierungsfrequenz verstärken sich gegenseitig. Ein Sensor, der sich jede Sekunde ändert, erzeugt eine völlig andere Arbeitsmenge als einer, der sich zweimal täglich ändert, selbst wenn beide nur „eine Entität“ sind.
Indizes verringern den Suchaufwand, machen die Ergebnisgröße aber nicht kostenlos
SQLite kann Indizes verwenden, um bei häufigen Abfragebedingungen und Sortierungen das Durchsuchen jeder einzelnen Zeile zu vermeiden. Das ist für den Verlauf entscheidend. Ein Index beseitigt jedoch weder die Kosten für die Rückgabe eines großen passenden Bereichs noch für das Verknüpfen zugehöriger Daten.
Die Dokumentation zur Abfrageplanung von SQLite erklärt, dass Indizes die Suche und Sortierung beschleunigen, während große Ergebnismengen, Zeilenzugriffe und Sortiervorgänge weiterhin Arbeit proportional zu den ausgewählten Daten und dem Abfrageplan verursachen. Der Planer wählt anhand der geschätzten Kosten zwischen den verfügbaren Pfaden.
„Die Datenbank hat einen Index“ und „Diese Abfrage bleibt für immer konstant schnell“ sind daher keine gleichbedeutenden Aussagen. Größere Zeitbereiche und besonders datenintensive Entitäten können weiterhin mehr Seiten und Zeilen relevant machen.
Die Recorder-Aufbewahrung steuert Leistung und Kapazität
Home Assistant bereinigt Recorder-Daten automatisch, damit detaillierte Zustände nicht unbegrenzt wachsen. Eine längere Aufbewahrung liefert mehr Verlauf in voller Auflösung, vergrößert aber auch die aktive historische Arbeitsmenge, die Sicherungsgröße und den Wartungsaufwand.
Die Recorder-Dokumentation warnt ausdrücklich, dass ein zu starkes Anwachsen der Datenbank Speicherplatz verbraucht und Home Assistant verlangsamen kann. Das standardmäßige Bereinigen und Neuorganisieren dient unter anderem dazu, das Datenbankwachstum zu begrenzen.
Der richtige Aufbewahrungszeitraum ist daher eine Anforderung an das Produkt. Bewahre hochauflösende Daten so lange auf, wie sie benötigt werden, um konkrete Fragen im Haushalt zu beantworten – nicht nur, weil noch Speicherplatz frei ist.
Speicher und Cache bestimmen, wie aufwendig sich dieselbe Abfrage anfühlt
Eine wiederholte Verlaufsabfrage kann schneller sein, weil sich Datenbank- und Dateisystemseiten bereits im Speicher befinden. Dieselbe Abfrage nach einem Neustart oder bei Speicherdruck muss möglicherweise mehr physische Lesevorgänge durchführen. Ein anderer Dienst, der stark auf dieselbe SSD schreibt, kann die Latenz ebenfalls erhöhen, ohne die SQL-Abfrage zu verändern.
Die ZimaSpace-Analyse zum Wachstum von Metadaten und Verlauf in Home Assistant erklärt die Ursachen auf der Schreibseite. Die Abfrageleistung ist die Konsequenz auf der Leseseite: Mehr gespeicherte Zustände sind vor allem dann relevant, wenn der ausgewählte Zeitraum oder die Arbeitsmenge tatsächlich darauf zugreift.
Miss die Abfragezeit gemeinsam mit der Speicherlatenz und dem Speicherdruck, bevor du Datenbanken verschiebst oder schnellere Hardware kaufst.
Abfragekosten senken, indem unnötige Daten reduziert werden – nicht nützlicher Verlauf
- Schließe Entitäten aus, deren historische Änderungen keinen Erkenntniswert haben.
- Reduziere die Aktualisierungsfrequenz an der Quelle, wenn häufige Änderungen nicht nützlich sind.
- Richte die Aufbewahrung der Rohdaten an dem Zeitraum aus, den Nutzer tatsächlich untersuchen.
- Verwende für lange Zeiträume Langzeitstatistiken, wenn stündliche Zusammenfassungen ausreichen.
- Betreibe den Recorder auf einem zuverlässigen Speicher mit geringer Latenz und ausreichenden freien Kapazitätsreserven.
- Vergleiche denselben Verlaufszeitraum vor und nach jeder Änderung.
Die relevante Kennzahl ist nicht allein die Datenbankgröße. Entscheidend ist, wie sich die Abfragelatenz verändert, wenn sich die Anzahl gespeicherter Zeilen, der angeforderte Zeitraum, der Cache-Zustand und die Speicherbedingungen ändern.
FAQ
Werden lokale Automatisierungen automatisch langsamer, wenn die Recorder-Datenbank größer wird?
Nein. Die direkte Gerätesteuerung und historische Abfragen sind getrennte Pfade. Sie können sich indirekt beeinflussen, wenn die Recorder-Arbeit gemeinsam genutzte CPU-, Speicher- oder Speicherressourcen belastet. Ein langsames Verlaufsdiagramm beweist jedoch nicht, dass die Automatisierungs-Engine langsam ist.
Tech- & KI-Zentrum
Mehr zum Lesen

Laufzeitstatus vs. dauerhafter Status in Home Assistant: Was muss einen Neustart überstehen?
Home Assistant speichert nicht jeden aktuellen Wert dauerhaft; Konfiguration, Register, ausgewählte wiederhergestellte Zustände, Verlauf und Bereitstellungsdaten erfüllen beim Neustart unterschiedliche Aufgaben.

Wie authentifiziert Home Assistant lokale und entfernte Sitzungen?
Lokale und Remote-Home-Assistant-Sitzungen verwenden dasselbe serverseitige Identitätsmodell. Der Fernzugriff ändert die Route und die TLS-Grenze, nicht den grundlegenden Token-Ablauf.

Warum erstellt Home Assistant nach einem Container-Neustart einen anderen Zustand?
Ein Container-Neustart bedeutet nicht den Verlust des Zustands: Home Assistant stellt den Laufzeitzustand aus der persistenten Konfiguration, den Integrationen, Registries und externen Quellen wieder...

