Home Assistant fügt keinen universellen Speicherfaktor hinzu; der Overhead hängt von Ereignishäufigkeit, aufbewahrtem Verlauf, Statistiken, Indizes, Protokollen, Backups, Add-ons und temporärem Arbeitsbereich ab.
Ein Temperatursensor kann winzige Werte ausgeben, doch aus seinen Änderungen können mit Zeitstempeln versehene Zustände, Attribute, Indexeinträge, Aggregate, Sicherungskopien und Dateisystemmetadaten entstehen. Kameraclips oder Add-on-Daten können aus völlig anderen Gründen den größten Anteil ausmachen. Eine nützliche Schätzung trennt daher jede Speicherfunktion und misst ihr tägliches Wachstum anhand der tatsächlichen Anzahl von Entitäten im Haushalt, der Aktualisierungsfrequenz, der Aufbewahrungsdauer, der Protokollierungsstufe und der Backup-Richtlinie.
Quellwerte werden zu strukturierten Recorder-Daten
Quelldaten sind nur die von einem Gerät oder einer Integration eingehenden Werte. Der Recorder speichert ausgewählte Zustandsänderungen und Ereignisse mit Zeitangaben, Entitätsverweisen, Attributen und relationaler Struktur, damit der Verlauf und andere Funktionen darauf zugreifen können. Ein kurzer Messwert wie 21,4 belegt daher mehr Speicher als seine sichtbaren Zeichen, sobald Datenbankseiten und Beziehungen berücksichtigt werden.
Home Assistant verwaltet Rohzustände neben kurz- und langfristigen Statistikformaten. Diese ausführliche Erklärung des Datenbank- und Statistikmodells zeigt, warum der belegte Speicher von der Änderungsfrequenz und den Aggregationsregeln abhängt und nicht von der nominellen Größe eines Sensor-Payloads.
Diese erste Ebene wird in der Regel von der Rate bestimmt: Häufig wechselnde Entitäten erzeugen mehr Zeilen als stabile Entitäten, und umfangreiche Attribute können den Unterschied noch verstärken. Tausend Entitäten bedeuten nicht in jedem Haushalt denselben Speicherbedarf. Für die Overhead-Prognose werden Änderungen pro Tag, aufbewahrte Tage und der durchschnittliche Speicherbedarf pro gespeicherter Zeile benötigt – nicht nur die Anzahl der Entitäten.
Indizes und Datenbankseiten benötigen zusätzlichen strukturellen Speicher
Eine relationale Datenbank benötigt Strukturen, die Zeilen dauerhaft speichern und durchsuchbar machen. Tabellenseiten, Indizes, freie Seiten, Journale und Write-Ahead-Logs können zusätzlich zum logischen Inhalt der Zeilen Speicher belegen. Diese Strukturen verbessern Konsistenz und Abfrageleistung, doch ihre Dateigröße nimmt nicht immer sofort ab, wenn alter Verlauf entfernt wird.
SQLite speichert Tabellen und Indizes in Seiten fester Größe, sodass die physische Größe von der Seitenzuweisung und nicht von einer einfachen Summe der Feldlängen abhängt. Ein verständlicher Leitfaden zum Seitenlayout von SQLite erklärt, wie Datensätze, Indizes und freier Speicher in der Datenbankdatei zusammenwirken.
Dadurch entstehen zwei unterschiedliche Messgrößen: logisch aufbewahrte Daten und physisch zugewiesener Speicher. Eine Bereinigung kann die erste Größe verringern, ohne die zweite sofort zu reduzieren, während ein Wartungsvorgang zusätzlichen temporären Speicher benötigen kann, bevor Speicherplatz wieder freigegeben wird. Bei der Kapazitätsplanung muss daher ausreichend Arbeitsreserve erhalten bleiben, statt die aktuelle Datenbankdatei als maximal möglichen Bedarf zu betrachten.
Statistiken tauschen Detailtiefe gegen langfristige Aufbewahrung
Der kurzfristige Verlauf bewahrt detaillierte Änderungen über ein begrenztes Zeitfenster, während langfristige Statistiken kompakte Aggregate für unterstützte numerische Entitäten speichern. Die Aggregation reduziert das Wachstum pro Entität gegenüber der dauerhaften Aufbewahrung jedes Rohzustands, erzeugt aber einen weiteren dauerhaften Datensatz mit einer anderen Lebensdauer als der gewöhnliche Verlauf.
Ein Home-Assistant-Datenmodell kann daher gleichzeitig Rohzustände, kurzfristige Statistikproben und stündliche Langzeit-Zusammenfassungen enthalten. Die praktische Aufschlüsselung in diesem Artikel zu Zeitreihenintegrationen zeigt, warum historische Analysen häufig eine zusätzliche Speicherfunktion neben den aktuellen Zustandsdaten des Controllers einführen.
Das Ergebnis hängt vom jeweiligen Haushalt ab: Ein Zuhause mit vielen stabilen binären Entitäten kann einen überschaubaren Statistik-Overhead haben, während Energie- und Umgebungssensoren langfristige Aggregate ansammeln können. Langzeitstatistiken sind keine duplizierte Rohhistorie, sondern bewahren analytischen Wert mit geringerer Auflösung. Schätze sie als separate tägliche Wachstumsrate, statt sie in einen unerklärten Datenbankfaktor einzurechnen.
Protokolle, Backups und Container-Layer vervielfachen den Speicherbedarf
Der Speicherbedarf von Home Assistant umfasst mehr als den Recorder. Protokolle können bei wiederholten Fehlern oder Debug-Sitzungen stark wachsen. Backups können die Datenbank, die Konfiguration, den Add-on-Zustand und ausgewählte gemeinsam genutzte Ordner kopieren. Bei Container-Installationen bleiben außerdem Images, beschreibbare Layer, Volumes und manchmal alte Versionen oder Build-Caches auf derselben Systemfestplatte erhalten.
Der von Docker belegte Speicher verteilt sich auf mehrere Speicherbereiche und nicht auf ein einziges Anwendungsverzeichnis. Dieser Docker-Leitfaden zum Speicherplatz trennt Images, Container, Volumes und Cache und hilft zu erklären, warum das Dateisystem stärker wachsen kann als der sichtbare Home-Assistant-Datenordner.
Die Backup-Aufbewahrung vervielfacht ausgewählte Daten entsprechend der Anzahl der Kopien, doch Komprimierung und inkrementelles Verhalten können das genaue Verhältnis verändern. Eine aktive 2-GB-Datenbank bedeutet nicht, dass jedes Backup exakt 2 GB hinzufügt, und ein kleiner Konfigurationsordner garantiert nicht, dass Backups klein bleiben. Miss den Inhalt der Archive und die Anzahl der aufbewahrten Generationen unabhängig voneinander.
Temporärer Speicher erzeugt einen Spitzenbedarf über dem Dauerbedarf
Datenbankwartung, Backuperstellung, Dekomprimierung, Updates, das Abrufen von Images und Migrationen können temporären Speicher benötigen, während alte und neue Versionen gleichzeitig vorhanden sind. Dieser Spitzenbedarf wird leicht übersehen, weil er nach erfolgreichem Abschluss wieder verschwindet. Er wird zu einem Zuverlässigkeitsproblem, wenn ein Vorgang freie Blöcke zum Abschluss benötigt, der Dauerbestand aber bereits den größten Teil der Festplatte belegt.
Die SQLite-Hauptdatenbank und das WAL können zugewiesenen Speicher behalten, bis Bedingungen für Checkpointing oder Komprimierung erfüllt sind. Eine Leistungsanalyse zum Wachstum von SQLite-Dateien erklärt, warum sich Datenbank und Write-Ahead-Log anders vergrößern können als die für die Anwendung sichtbaren logischen Daten.
Der erforderliche Spitzenbedarf hängt vom jeweiligen Vorgang ab. Eine Neuschreibung der Datenbank kann Speicher in der Größenordnung der Datenbankgröße benötigen, während ein Image-Update vorübergehend sowohl alte als auch neue Layer behalten kann. Die ZimaSpace-Empfehlungen zum freien Speicher für Home-Assistant-Aufgaben nennen operative Schwellenwerte, nachdem die einzelnen Overhead-Komponenten ermittelt wurden.
Wo ein einzelner Overhead-Faktor versagt
Ein fester Prozentsatz versagt, wenn eine Komponente dominiert. Das Debug-Protokoll kann während einer Fehlerschleife größer werden als der Recorder; lokal gespeicherte Kameramedien können jede Datenbanktabelle übertreffen; ein großes Add-on kann sein eigenes Volume vergrößern; oder eine lange Backup-Aufbewahrung kann Kopien größer machen als die aktiven Zustandsdaten. Auch Änderungen an der Arbeitslast machen das Verhältnis von gestern unbrauchbar.
Anleitungen zur Vermeidung von Container-Speicherknappheit trennen Images, beschreibbare Layer, Protokolle, Volumes und Build-Cache genau deshalb, weil jede Komponente einen anderen Wachstumsmechanismus hat. Die fünfteilige Bestandsaufnahme in dieser Docker-Speicheranalyse zeigt, warum eine Gesamtsumme auf oberster Ebene die maßgebliche Quelle nicht identifizieren kann.
Auch installationsübergreifend ist der Faktor irreführend. Home Assistant OS, ein Container, eine VM und ein überwacht installiertes Host-Paket organisieren Systemdaten unterschiedlich. Vergleiche nur gleichartige Installationen und lasse Medien oder Daten unabhängiger Anwendungen aus der Berechnung, sofern das Home-Assistant-Backup oder die Laufzeitumgebung sie nicht tatsächlich verwaltet.
Erstelle ein Sieben-Tage-Modell für das Speicherwachstum
Erfasse zunächst eine Ausgangsbasis für Datenbankdateien, Konfiguration, Protokolle, Backups, Add-on-Volumes, Container-Images und -Layer, Medien sowie freien Speicher. Halte Aufbewahrungs- und Protokollierungseinstellungen sieben repräsentative Tage lang konstant. Zeichne jede Komponente täglich zur gleichen Zeit auf und notiere Updates, Neustarts, Backup-Aufträge, ungewöhnliche Fehler oder neu hinzugefügte Geräte.
Arbeiten zur Speicherverwaltung beginnen mit Transparenz, weil Volumes, Images, beschreibbare Layer und Cache unterschiedliche Lebenszyklen haben. Dieser Artikel zu den Interna von Docker-Speichern hilft dabei, gemessene Bytes persistenten Anwendungsdaten oder dem Laufzeit- und Paketierungs-Overhead zuzuordnen.
Berechne für jede Funktion das tägliche Wachstum, multipliziere es mit dem jeweiligen Aufbewahrungszeitraum und addiere den größten beobachteten temporären Spitzenbedarf sowie eine Wiederherstellungsreserve. Prüfe die Werte nach dem Hinzufügen von Integrationen oder Änderungen an Protokollen, Medien oder Backups erneut. Dieses Komponentenmodell liefert einen belastbaren Kapazitätsbereich; ein universeller Faktor kann das nicht.
Tech- & KI-Zentrum
Mehr zum Lesen

Warum verarbeitet Home Assistant vorhandene Daten nach einem Upgrade erneut?
Home Assistant kann vorhandene Daten nach einem Upgrade erneut verarbeiten, um gespeicherte Zustände, Indizes, Caches und Integrationen mit dem neuen Code kompatibel zu machen.

Welche Abhängigkeiten setzen am häufigsten die tatsächliche Leistungsgrenze von Home Assistant?
Die Leistung von Home Assistant wird durch die langsamste erforderliche Abhängigkeit auf dem Weg vom Ereignis zum Ergebnis begrenzt, nicht unbedingt durch die CPU...

Home-Assistant-Netzwerk: Wie Erkennung, DNS und Routing Erreichbarkeit ermöglichen
Die Erreichbarkeit von Home Assistant erfordert Erkennung, eine korrekte Namensauflösung, eine gültige Route, zugelassenen Datenverkehr und einen lauschenden Endpunkt.

