Hoeveel gelijktijdige gebruikers kan Home Assistant verwerken voordat het trager wordt?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Home Assistant heeft geen bruikbaar universeel antwoord zoals ‘20 gebruikers’ of ‘100 gebruikers’. Een ingelogd account dat niets doet, zorgt voor een andere belasting dan een wandtablet waarop een complex dashboard wordt weergegeven, een telefoon die Geschiedenis opent of meerdere gebruikers die camerakaarten bekijken terwijl duizenden entiteiten worden bijgewerkt.

Bepaal de omvang van gelijktijdig gebruik door verbonden clients te meten en te kijken naar het werk dat elke client veroorzaakt. De praktische limiet ligt op het punt waarop je representatieve dashboards, WebSocket-updates, serveracties en netwerkverbinding niet langer voldoen aan de responstijd die je acceptabel vindt.

Tel verbonden clients, niet alleen gebruikersaccounts

Het aanmaken van 100 accounts betekent niet dat er 100 gelijktijdige sessies zijn. Omgekeerd kan één persoon tegelijkertijd een browser, telefoon, tablet en kiosk verbonden hebben.

De WebSocket-integratie van Home Assistant kan sensor.connected_clients beschikbaar maken als het huidige aantal verbonden WebSocket-clients. Gebruik dat aantal als signaal voor gelijktijdigheid terwijl je de belasting reproduceert.

Noteer het aantal clients samen met het CPU-gebruik van de server, geheugendruk, netwerkdoorvoer en actielatentie. Een verbindingsaantal zonder de bijbehorende belasting is geen capaciteitsresultaat.

De frontendbelasting hangt af van statusupdates en dashboardwerk

De frontend brengt een WebSocket-verbinding tot stand en houdt de Home Assistant-status gesynchroniseerd met de browser. Elke client moet ook het geopende dashboard weergeven. Daardoor kunnen clienthardware en aangepaste kaarten al beperkende factoren worden voordat de server dat wordt.

De huidige frontendarchitectuur beschrijft hoe de frontend kernstatus en aanvullende abonnementen via de WebSocket-API ontvangt. Een drukke installatie zorgt daardoor ook na het laden van de pagina voor voortdurende updatebelasting.

Test de daadwerkelijke mix van dashboards die het huishouden gebruikt, in plaats van op elke client een lege testpagina te openen.

Een hoge entiteit-updatesnelheid kan clients belasten voordat het gebruikersaantal groot lijkt

Een systeem met duizenden vaak veranderende sensoren kan veel meer frontendwerk veroorzaken dan een grotere gebruikersgroep die voornamelijk statische entiteiten bekijkt. Dit is vooral zichtbaar op oudere tablets en energiezuinige wandpanelen.

Een Home Assistant-issue beschreef een situatie waarin grote hoeveelheden entiteitsupdates dashboardclients overbelastten, zelfs wanneer het zichtbare dashboard zelf eenvoudig was.

Dit definieert geen universele drempel, maar laat wel zien waarom ‘gebruikers’ de verkeerde enige eenheid is. Meet naast het aantal verbindingen ook het aantal updates per seconde en de reactiesnelheid van clients.

Er is geen gepubliceerd maximum voor huishoudelijk gebruik dat je kunt overnemen

Vragen uit de community over ongewoon grote implementaties illustreren de onzekerheid. In een discussie over ongeveer 200 gebruikers vond men geen duidelijk ondersteund maximum en werd die schaal beschouwd als een ongebruikelijke toepassing die je moet testen in plaats van als vanzelfsprekend aan te nemen.

Voor een normaal huishouden betekent dit dat je niet op zoek hoeft naar een maximumaantal sessies in leveranciersstijl. Voor een gemeenschappelijke toegangspoort, gedeeld gebouw, laboratorium of andere omgeving met veel gebruikers is Home Assistant mogelijk niet het juiste platform voor identiteits- en toegangsbeheer, zelfs als de server de verbindingen technisch kan onderhouden.

De methode voor het bepalen van de capaciteit op basis van gelijktijdige belasting van ZimaSpace is hier van toepassing: de capaciteit moet worden afgestemd op de drukste realistische overlap, niet op het totale aantal geregistreerde accounts.

Voer een stapsgewijze test uit totdat één meetwaarde de fout herhaaldelijk laat zien

Stap Meting Stopconditie
Voeg actieve clients in kleine groepen toe Verbonden clients Representatieve gelijktijdigheid bereikt
Open echte dashboards Eerste weergave en interactievertraging Herhaaldelijk merkbare vertraging voor gebruikers
Genereer normale entiteitsbelasting WebSocket-/updatebelasting Clients kunnen niet bijhouden
Voer veelgebruikte acties uit Latentie van serveractie tot apparaat Bedieningslatentie neemt merkbaar toe
Herhaal dit tijdens piekbelasting CPU, geheugen, netwerk en clientbelasting Dezelfde beperkende laag treedt opnieuw op

Kies de capaciteit één stap onder het eerste herhaalbare foutpunt en houd ruimte over voor back-ups, updates, cameraverkeer en ongebruikelijke pieken. Als slechts één oude tablet trager wordt terwijl serveracties snel blijven, levert het vervangen van de server mogelijk geen hogere bruikbare gelijktijdigheid op.

Veelgestelde vragen

Staan 20 Home Assistant-gebruikersaccounts gelijk aan 20 gelijktijdige gebruikers?

Nee. Accounts zijn identiteiten; gelijktijdigheid gaat over actieve clientverbindingen en het werk dat die clients veroorzaken. Eén gebruiker kan meerdere clients hebben, terwijl veel accounts volledig inactief kunnen zijn.

Kunnen er altijd meer gebruikers verbinding maken met eenvoudigere dashboards?

Dat kan de weergavebelasting op clients verminderen, maar de servercapaciteit hangt ook af van de entiteit-updatesnelheid, WebSocket-verkeer, geschiedenisquery's, camera's, de netwerkverbinding en achtergrondservices. Meet de volledige belasting.

Ondersteuning & Tips

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.