O Home Assistant pode parecer menos responsivo num cliente porque a execução no servidor é apenas uma parte do percurso; a renderização, a cache, a rota e as atualizações são específicas de cada cliente.
Um computador de secretária rápido e um telemóvel lento não indicam automaticamente um desempenho inconsistente do Home Assistant Core. O servidor pode fornecer o mesmo estado enquanto a WebView móvel demora mais tempo a construir um painel, processar cartões personalizados, apresentar imagens ou acompanhar eventos em tempo real. Diagnostique a diferença medindo separadamente a resposta do servidor e a renderização no cliente; depois compare o mesmo painel, URL e rede antes de alterar o anfitrião.
A causa principal encontra-se frequentemente depois de o Home Assistant Core responder
A capacidade de resposta do cliente inclui o estabelecimento da ligação, a autenticação, a transferência inicial de dados, a execução de JavaScript, a disposição dos componentes, a descodificação de imagens, as atualizações dos cartões, o processamento do toque e os eventos WebSocket contínuos. O Core controla apenas parte dessa sequência. Uma atualização do servidor não consegue corrigir um motor de navegador que é o verdadeiro estrangulamento, tal como uma reposição da cache não consegue corrigir uma consulta lenta à base de dados.
Um caso na comunidade do Home Assistant relatou um painel rápido no computador de secretária, mas que ficava repetidamente em branco e bloqueava ao deslocar-se no iOS, ilustrando como a renderização móvel pode dominar a latência percecionada. A pista importante era o comportamento específico do cliente perante o mesmo servidor e painel.
Comece por comparar um painel simples e um painel complexo em ambos os clientes. Se ambos apresentarem a mesma espera do lado do servidor, mas apenas um tiver problemas depois de o conteúdo chegar, mantenha a investigação no frontend. Se todos os clientes forem lentos antes de os primeiros dados chegarem, recue na análise para o Home Assistant, o armazenamento, a rede, o DNS ou o percurso da integração.
As quatro causas das diferenças de capacidade de resposta entre clientes
As principais causas são a capacidade de renderização do cliente, o estado da cache, as diferentes rotas de ligação e o custo de processar muitas atualizações em tempo real. Podem coexistir, razão pela qual alterar uma definição melhora por vezes o sintoma sem explicar toda a diferença. Mantenha o painel e o servidor constantes enquanto testa cada variável.
Um guia de design de painéis observa que modelos personalizados pesados, renderizações frequentes dos cartões e hardware cliente mais antigo podem aumentar significativamente o custo de renderização do lado do cliente. O ponto importante não é um valor universal de tempo de carregamento; é que o mesmo servidor pode parecer diferente quando os clientes renderizam quantidades diferentes de trabalho ou dispõem de recursos de dispositivo muito distintos.
Utilize os indicadores abaixo para decidir onde a diferença é introduzida. Uma causa só é credível quando uma alteração controlada afeta o cliente lento, enquanto o anfitrião do Home Assistant e o outro cliente permanecem estáveis. Evite acumular várias “correções de desempenho” de uma só vez, pois isso elimina as provas necessárias para identificar o verdadeiro limite.
Causa 1: O cliente tem menor capacidade de renderização
- Mecanismo: os cartões, modelos, imagens e operações de disposição consomem recursos de CPU, memória e GPU do dispositivo.
- Indicador: as respostas do servidor são semelhantes, mas um telemóvel ou tablet demora mais tempo a deslocar-se, apresentar conteúdo ou aceitar toques.
- SE–ENTÃO: se um painel mínimo for rápido no mesmo dispositivo, a carga de renderização do cliente é a causa mais provável.
Causa 2: Clientes diferentes utilizam recursos em cache diferentes
- Mecanismo: um navegador, uma WebView ou uma aplicação complementar podem manter os recursos do frontend e o estado de forma diferente.
- Indicador: uma atualização forçada, a reposição da cache do frontend ou um perfil de navegador limpo altera o comportamento sem qualquer alteração no servidor.
- SE–ENTÃO: se apenas o cliente limpo melhorar, considere o estado da cache como evidência local do cliente, e não como uma questão de capacidade do servidor.
Causa 3: Os percursos de ligação não são realmente iguais
- Mecanismo: um cliente utiliza um URL interno, enquanto outro chega através de um proxy, URL remoto, fallback de DNS, VPN ou percurso Wi-Fi diferente.
- Indicador: o tempo até à primeira resposta muda antes de começar a renderização do painel.
- SE–ENTÃO: se ambos os clientes se tornarem semelhantes no mesmo URL e na mesma rede, foi o percurso — e não o Core — que criou a diferença.
Causa 4: O volume de eventos altera o custo de manter a vista atualizada
- Mecanismo: um painel grande subscreve muitas entidades em alteração e tem de processar atualizações WebSocket repetidas.
- Indicador: a página fica mais lenta depois de permanecer aberta ou durante períodos de elevada atividade dos sensores.
- SE–ENTÃO: se reduzir os cartões subscritos ou as entidades com muitas atualizações eliminar a lentidão, o processamento das atualizações é o custo dominante no cliente.
Distinguir a cache do cliente da capacidade do servidor
As caches aquecidas podem tornar os carregamentos repetidos mais rápidos ao manter recursos do frontend e o estado da aplicação, pelo que um segundo carregamento melhor não prova que o servidor tenha elevada capacidade. Por outro lado, uma cache desatualizada pode fazer com que um cliente se comporte incorretamente ou pareça lento depois de atualizações. A cache é, portanto, uma condição de teste que deve ser controlada, e não o próprio resultado de desempenho.
Uma investigação do frontend do Home Assistant relata uma intensa atividade de eventos WebSocket associada a uma renderização lenta depois de uma aplicação Android regressar ao primeiro plano, ilustrando como o volume de atualizações em tempo real pode afetar o frontend depois do carregamento inicial. Esse é um percurso de recursos diferente da latência de execução das automações do Home Assistant.
Execute testes tanto com a cache aquecida como com o cliente controladamente limpo. Se um carregamento a frio for lento, mas os toques e as atualizações em funcionamento contínuo forem rápidos, os recursos de arranque dominam. Se a aplicação ficar mais lenta quanto mais tempo permanecer subscrita, meça o processamento de eventos e as atualizações do painel. Se a reposição da cache alterar apenas um dispositivo, não comunique esse resultado como prova de maior capacidade do servidor.
Utilizar uma matriz de clientes com o mesmo percurso e o mesmo painel
Teste o navegador do computador de secretária, o navegador móvel e a aplicação complementar perante o mesmo URL local na mesma rede Wi-Fi, utilizando um painel mínimo e o painel normal de produção. Um guia detalhado de design de painéis móveis considera explicitamente a disposição responsiva e as limitações do frontend como questões do lado do cliente; por isso, o tempo de ligação, a resposta do servidor, a primeira renderização utilizável e a confirmação do dispositivo devem ser registados separadamente. Repita o percurso remoto noutro teste.
A ZimaSpace explica a fase de rede anterior em latência de DNS na LAN: um cliente pode esperar antes de a aplicação sequer receber um pedido. Combine essa medição com as medições do frontend para evitar atribuir a renderização a demora causada pelo resolvedor ou pelo proxy.
Considere o servidor aprovado quando vários clientes apresentarem tempos semelhantes de API e de chamadas de serviço, mesmo que os tempos de renderização sejam diferentes. Otimize o painel do cliente lento quando o custo de renderização ou de atualizações for o valor discrepante. Encaminhe a investigação para o Core, o armazenamento ou o desempenho das integrações apenas quando a demora existir antes das fases específicas do cliente. Assim, “responsivo” fica associado a um segmento medido, em vez de a uma única impressão subjetiva do ecrã.
Centro de Tecnologia e IA
Mais para Ler

Porque é que a arquitetura do Home Assistant muda à medida que um servidor doméstico adiciona mais serviços?
Mais serviços alteram a arquitetura do Home Assistant quando adicionam estado partilhado, filas, dispositivos, ciclos de atualização ou domínios de falha — e não...

Como medir o desempenho do Home Assistant sem confundir a cache com a capacidade
Um resultado em estado quente prova reutilização, não capacidade. Meça o arranque a frio, o estado estacionário em quente, a carga repetida, a latência...

De quanta simultaneidade de automações precisa o Home Assistant para controlar toda a casa?
A maioria das automatizações para toda a casa precisa apenas de uma sobreposição limitada; dimensione a simultaneidade com base na duração da execução ×...

