Home Assistant kann sich auf einem Client weniger reaktionsschnell anfühlen, weil die Serverausführung nur einen Teil des Ablaufs darstellt; Rendering, Cache, Route und Aktualisierungen sind clientabhängig.
Ein schneller Desktop und ein langsames Smartphone deuten nicht automatisch auf eine inkonsistente Leistung von Home Assistant Core hin. Der Server kann denselben Status liefern, während die mobile WebView länger für den Aufbau eines Dashboards, die Verarbeitung benutzerdefinierter Karten, das Rendern von Bildern oder das Nachholen von Live-Ereignissen benötigt. Analysieren Sie die Unterschiede, indem Sie die Serverantwort und das Client-Rendering getrennt messen, und vergleichen Sie dasselbe Dashboard, dieselbe URL und dasselbe Netzwerk, bevor Sie den Host ändern.
Die eigentliche Ursache liegt oft hinter der Antwort von Home Assistant Core
Die Reaktionsfähigkeit des Clients umfasst den Verbindungsaufbau, die Authentifizierung, die anfängliche Datenübertragung, die JavaScript-Ausführung, das Layout der Komponenten, die Bilddekodierung, Kartenaktualisierungen, die Touch-Verarbeitung und kontinuierliche WebSocket-Ereignisse. Core steuert nur einen Teil dieser Abfolge. Ein Server-Upgrade kann keine Browser-Engine reparieren, die tatsächlich den Engpass darstellt, ebenso wenig wie ein Zurücksetzen des Caches eine langsame Datenbankabfrage beheben kann.
In einem Fall aus der Home-Assistant-Community wurde berichtet, dass ein Dashboard auf dem Desktop schnell war, auf iOS beim Scrollen jedoch wiederholt leer blieb und stockte. Das veranschaulicht, wie mobiles Rendering die wahrgenommene Latenz dominieren kann. Der entscheidende Hinweis war das clientabhängige Verhalten gegenüber demselben Server und Dashboard.
Vergleichen Sie zunächst ein einfaches und ein komplexes Dashboard auf beiden Clients. Wenn beide Clients dieselbe serverseitige Wartezeit zeigen, aber nur einer nach dem Eintreffen der Inhalte Probleme hat, sollte die Untersuchung im Frontend fortgesetzt werden. Wenn alle Clients vor dem Eintreffen der ersten Daten langsam sind, sollten Sie Home Assistant, Speicher, Netzwerk, DNS oder den Integrationspfad untersuchen.
Die vier Ursachen für Unterschiede bei der Reaktionsfähigkeit von Client zu Client
Die Hauptursachen sind die Rendering-Leistung des Clients, der Cache-Zustand, unterschiedliche Verbindungswege und der Aufwand für die Verarbeitung zahlreicher Live-Aktualisierungen. Sie können gleichzeitig auftreten. Deshalb verbessert eine einzelne Änderung manchmal das Symptom, ohne den gesamten Unterschied zu erklären. Halten Sie Dashboard und Server konstant, während Sie jede Variable einzeln testen.
Ein Leitfaden zur Dashboard-Gestaltung weist darauf hin, dass umfangreiche benutzerdefinierte Vorlagen, häufige erneute Renderings von Karten und ältere Client-Hardware die clientseitigen Rendering-Kosten deutlich erhöhen können. Entscheidend ist nicht eine universelle Ladezeit, sondern dass sich derselbe Server unterschiedlich anfühlen kann, wenn Clients unterschiedlich viel Arbeit rendern oder über sehr unterschiedliche Geräteressourcen verfügen.
Nutzen Sie die folgenden Merkmale, um festzustellen, an welcher Stelle der Unterschied entsteht. Eine Ursache ist nur dann plausibel, wenn eine kontrollierte Änderung den langsamen Client beeinflusst, während der Home-Assistant-Host und der andere Client unverändert bleiben. Vermeiden Sie es, mehrere „Performance-Optimierungen“ gleichzeitig vorzunehmen, da dadurch die für die Identifizierung der tatsächlichen Grenze erforderlichen Hinweise verloren gehen.
Ursache 1: Der Client verfügt über weniger Rendering-Leistung
- Mechanismus: Karten, Vorlagen, Bilder und Layout-Aufgaben beanspruchen CPU, Arbeitsspeicher und GPU des Geräts.
- Merkmal: Die Serverantworten sind ähnlich, aber ein Smartphone oder Tablet scrollt, rendert Inhalte oder reagiert später auf Tippen.
- WENN–DANN: Wenn ein minimales Dashboard auf demselben Gerät schnell ist, ist die Rendering-Last des Clients die wahrscheinlichste Ursache.
Ursache 2: Unterschiedliche Clients verwenden unterschiedliche gecachte Ressourcen
- Mechanismus: Ein Browser, eine WebView oder eine Begleit-App kann Frontend-Ressourcen und Status unterschiedlich speichern.
- Merkmal: Ein erzwungenes Neuladen, das Zurücksetzen des Frontend-Caches oder ein sauberes Browserprofil verändert das Verhalten, ohne dass der Server geändert wurde.
- WENN–DANN: Wenn sich nur der bereinigte Client verbessert, ist der Cache-Zustand ein lokaler Hinweis auf den Client und kein Hinweis auf die Serverkapazität.
Ursache 3: Die Verbindungswege sind tatsächlich nicht identisch
- Mechanismus: Ein Client verwendet eine interne URL, während ein anderer einen Proxy, eine Remote-URL, einen DNS-Fallback, ein VPN oder einen anderen WLAN-Pfad nutzt.
- Merkmal: Die Zeit bis zur ersten Antwort ändert sich, bevor das Dashboard zu rendern beginnt.
- WENN–DANN: Wenn beide Clients bei Verwendung derselben URL und desselben Netzwerks ähnlich schnell werden, hat der Verbindungsweg den Unterschied verursacht – nicht Core.
Ursache 4: Das Ereignisaufkommen verändert den Aufwand für die Aktualisierung der Ansicht
- Mechanismus: Ein großes Dashboard abonniert viele sich ändernde Entitäten und muss wiederholte WebSocket-Aktualisierungen verarbeiten.
- Merkmal: Die Seite wird langsamer, nachdem sie längere Zeit geöffnet war oder während hoher Sensoraktivität.
- WENN–DANN: Wenn das Entfernen abonnierter Karten oder aktualisierungsintensiver Entitäten die Verzögerung beseitigt, ist die Verarbeitung der Aktualisierungen der maßgebliche Kostenfaktor auf dem Client.
Client-Cache und Serverkapazität unterscheiden
Warme Caches können wiederholte Ladevorgänge beschleunigen, weil sie Frontend-Ressourcen und den Anwendungsstatus beibehalten. Ein schneller zweiter Ladevorgang beweist daher nicht, dass der Server über hohe Kapazität verfügt. Umgekehrt kann ein veralteter Cache dazu führen, dass sich ein Client nach Aktualisierungen fehlerhaft verhält oder langsam erscheint. Der Cache ist deshalb eine Testbedingung, die kontrolliert werden sollte, und nicht das Leistungsergebnis selbst.
Eine Untersuchung des Home-Assistant-Frontends berichtet von einer hohen Aktivität bei WebSocket-Ereignissen zusammen mit langsamen erneuten Renderings, nachdem eine Android-App in den Vordergrund zurückkehrt. Das veranschaulicht, wie das Volumen der Live-Aktualisierungen das Frontend beeinflussen kann – und zwar über einen anderen Ressourcenpfad als die Latenz der Automatisierungsausführung von Home Assistant.
Führen Sie sowohl Tests mit warmem Cache als auch kontrollierte Tests mit einem leeren Client-Cache durch. Wenn ein Ladevorgang mit leerem Cache langsam ist, aber Tippen und Aktualisierungen im laufenden Betrieb schnell sind, dominieren die Startressourcen. Wenn die App langsamer wird, je länger sie abonniert bleibt, messen Sie die Ereignisverarbeitung und die Dashboard-Aktualisierungen. Wenn das Zurücksetzen des Caches nur ein Gerät verändert, sollten Sie dieses Ergebnis nicht als Beweis für eine höhere Serverkapazität angeben.
Eine Client-Matrix mit identischem Pfad und Dashboard verwenden
Testen Sie Desktop-Browser, mobilen Browser und Begleit-App mit derselben lokalen URL im selben WLAN. Verwenden Sie dabei ein minimales Dashboard und das normale Produktions-Dashboard. Ein ausführlicher Leitfaden zur Gestaltung mobiler Dashboards behandelt responsives Layout und Frontend-Grenzen ausdrücklich als clientseitige Themen. Deshalb sollten Verbindungszeit, Serverantwort, erste nutzbare Darstellung und die Bestätigung durch das Gerät getrennt aufgezeichnet werden. Wiederholen Sie den Remote-Pfad in einem separaten Test.
ZimaSpace erläutert die frühere Netzwerkphase anhand der DNS-Latenz im LAN: Ein Client kann warten, bevor die Anwendung überhaupt eine Anfrage erhält. Kombinieren Sie diese Zeitmessung mit Frontend-Messungen, damit Sie eine Verzögerung durch Resolver oder Proxy nicht fälschlicherweise dem Rendering zuschreiben.
Betrachten Sie den Server als unauffällig, wenn mehrere Clients ähnliche Zeiten für API- und Service-Aufrufe zeigen, auch wenn sich ihre Rendering-Zeiten unterscheiden. Optimieren Sie das Dashboard des langsamen Clients, wenn dessen Rendering- oder Aktualisierungsaufwand ein Ausreißer ist. Beziehen Sie Core, Speicher oder die Integrationsleistung erst dann ein, wenn die Verzögerung vor den clientabhängigen Phasen auftritt. So bleibt „reaktionsschnell“ an ein gemessenes Teilsegment gebunden und nicht an den subjektiven Eindruck eines einzelnen Bildschirms.
Tech- & KI-Zentrum
Mehr zum Lesen

Warum verändert sich die Architektur von Home Assistant, wenn ein Heimserver weitere Dienste hinzufügt?
Mehr Dienste verändern die Architektur von Home Assistant, wenn sie gemeinsamen Zustand, Warteschlangen, Geräte, Aktualisierungszyklen oder Fehlerdomänen hinzufügen – nicht bloß weitere Container.

So misst du die Leistung von Home Assistant, ohne Cache mit Kapazität zu verwechseln
Ein warmes Ergebnis belegt Wiederverwendung, nicht Kapazität. Messen Sie den Kaltstart, den stabilen Warmzustand, wiederholte Last, die Tail-Latenz und die zuerst ausgelastete Ressource.

Wie viel Automatisierungsparallelität benötigt Home Assistant für die Steuerung des gesamten Hauses?
Die meisten Automatisierungen im ganzen Haus benötigen nur begrenzte Überschneidungen. Dimensioniere die Parallelität anhand von Ausführungsdauer × Auslösungsrate und begrenze sie anschließend auf eine...

