Pular para o conteúdo

Home Assistant

A casa inteligente por detrás do painel: se o Home Assistant corre ou arrancou em modo de recuperação, entidades indisponíveis ou desconhecidas por domínio, baterias baixas, atualizações em espera (core, sistema operativo, add-ons, firmware de dispositivo) e as reparações abertas.

O DumbMonit lê a API REST do Home Assistant com o token de acesso de longa duração de um utilizador dedicado sem direitos de administrador, e a lista de reparações através da API WebSocket. Nunca chama um serviço, nunca dispara um evento e nunca altera um estado.

A falha a vigiar não é «o Home Assistant não responde» (uma verificação de site já vê isso) mas o Home Assistant responde e algo por detrás dele deixou de funcionar: uma integração cujas entidades todas ficaram indisponíveis depois de uma atualização, uma pen Zigbee que caiu do barramento USB, um sensor de porta cuja bateria chegou a 5%, uma reparação à espera há semanas.

Todas as métricas têm o prefixo dumbmonit_homeassistant_.

MétricaO quêEtiquetas
infovalor 1version
running1 quando o estado do core é RUNNING, 0 enquanto arranca ou para
recovery_mode1 em modo de recuperação (ou modo seguro em versões mais antigas): a configuração não pôde ser carregada
entitiesentidades por domíniodomain
entities_unavailable, entities_unknownentidades nesse estado, por domíniodomain
entity_unavailablevalor 1 por entidade indisponível, no máximo 50entity, name, domain
batteriessensores de bateria e sensores binários de bateria
batteries_lowbaterias abaixo do limiar, e sensores binários de bateria que estão ativos
battery_lowuma série por bateria baixa, valor = o seu nível em percentagem (0 para um sensor binário), no máximo 50entity, name
updates_availableentidades update.* que estão ativas
update_availablevalor 1 por atualização em espera, no máximo 50entity, name, installed, latest
repairsreparações abertas (nem ignoradas nem dispensadas) por severidade: critical, error, warningseverity
repairvalor 1 por reparação aberta, no máximo 50issue, domain, severity
scrape_errorschamadas que falharam na última verificação

Alguns domínios ficam no estado unknown por natureza: um botão nunca premido, um evento nunca recebido, um serviço de notificação ou de voz. Não são contados como desconhecidos: button, input_button, event, scene, notify, tts, stt, conversation, wake_word, ai_task, person. A opção Domains left out remove mais domínios (por exemplo device_tracker ou media_player para dispositivos frequentemente desligados) das contagens de indisponíveis e desconhecidas.

As reparações não estão na API REST: o DumbMonit abre a API WebSocket, envia repairs/list_issues e fecha-a. Um utilizador sem direitos de administrador pode listá-las. A opção Read the repairs desativa isto.

As regras incorporadas que se aplicam: Home Assistant in recovery mode, Home Assistant not running, Home Assistant entities went unavailable, Home Assistant battery low, Home Assistant update available, Home Assistant repair to address, mais Device unreachable.

Todo telefone e tablet com sessão iniciada na app companheira (a integração mobile_app) é publicado sob a família genérica partilhada por toda integração do DumbMonit que acompanha dispositivos cliente — dumbmonit_client_device_*, prefixada sem homeassistant, documentada na íntegra em Dispositivos cliente:

MétricaO quêEtiquetas
last_seen_timestamp_secondsÚltima atualização da entidade device_tracker do dispositivodevice, type (Mobile), os (vazio), user (a pessoa a que está ligado, se existir), kind
stale_secondsPositivo uma vez que um dispositivo passou device_stale_days (3 por predefinição) sem uma atualização; alimenta a regra Dispositivo obsoletodevice, type, os, user, kind, signal (sempre connection: o Home Assistant não tem nenhuma cópia de segurança a reportar)

Como um dispositivo é reconhecido: /api/states não diz qual integração criou uma entidade — isso precisa do registo de entidades, que a API REST não serve. O device_tracker da app companheira é o único que define um atributo battery_level; integrações de localização de terceiros (Life360, OwnTracks, a integração de demonstração usada em testes) definem no máximo battery. Uma integração de terceiros que por acaso copiasse esse mesmo nome de atributo seria confundida com a app companheira; inversamente, um dispositivo da app companheira com o reporte de bateria desligado fica em falta na tabela em vez de ser mostrado incorretamente. A conta do dispositivo, quando conhecida, vem de uma entidade person.* cujo atributo device_trackers o nomeia.

O painel acima dos gráficos lê o que a verificação guardou; abrir a página nunca consulta o Home Assistant. Diz primeiro o que está mal (modo de recuperação, reparações de severidade de erro, entidades indisponíveis), depois as baterias baixas pelo nível, as atualizações em espera com as suas versões, as entidades por domínio, e a tabela de dispositivos da app companheira com a sua última ligação.

Contra o Home Assistant 2026.9.4, com o token de longa duração de um utilizador sem direitos de administrador: configuração, estados de entidade da integração de demonstração e de sensores de modelo (níveis de bateria, um sensor binário de bateria, um sensor indisponível), entidades de atualização e a lista de reparações através da API WebSocket. Os atributos do device_tracker da app companheira (battery_level, source_type) foram verificados contra o código-fonte da integração mobile_app, não contra um telefone real.

Criar um utilizador dedicado e um token de longa duração no Home Assistant

Seção intitulada “Criar um utilizador dedicado e um token de longa duração no Home Assistant”
  1. No Home Assistant: Settings → People → Users → Add user (ative o modo Advanced no seu perfil se o separador Users estiver em falta). Dê o seguinte nome ao utilizador, uma senha longa e aleatória e deixe o interruptor Administrator desligado. Um utilizador comum pode ler toda entidade e a lista de reparações, e não pode alterar a configuração.

    dumbmonit
  2. Inicie sessão no Home Assistant uma vez como esse utilizador, abra o seu perfil (o nome no fundo da barra lateral) → Security → Long-lived access tokens → Create token. Dê-lhe o nome do DumbMonit e copie-o agora: só é mostrado uma vez.

  3. No DumbMonit, introduza o endereço do Home Assistant, por exemplo «homeassistant.local» (porta 8123) ou «https://ha.example.net» atrás de um proxy inverso, e cole o token. Baterias abaixo de 20% contam como baixas; a opção Low battery threshold altera isso.

  4. O DumbMonit só lê /api/config, /api/states e, através da API WebSocket, a lista de reparações. Nunca chama um serviço, nunca dispara um evento e nunca altera um estado.

CredencialCampos
Token de acesso de longa duraçãoUm token do utilizador dedicado, enviado como Authorization: Bearer.

Endereço: um nome de anfitrião ou IP (homeassistant.local), anfitrião:porta, ou um URL completo (https://ha.example.net, com um prefixo de caminho atrás de um proxy inverso); um /api final é aceite. Opções: protocolo (HTTP por predefinição), porta (8123), verificação de certificado, tempo limite do pedido (10 s), limiar de bateria baixa (20%), domínios deixados de fora (nenhum), reparações (lido) e obsolescência de dispositivo (device_stale_days, 3 dias por predefinição).