Monitoramento do status do Home Assistant com o Healthchecks via ping

Existem várias formas de verificação da operacionalidade do Home Assistant, como por exemplo utilizando dispositivos Zigbee com mqtt, mas através do Healthchecks não há custos, a automação é simples e eficiente.

O Healthchecks monitora servidores, backups, tarefas, etc., para que sejam cumpridas no prazo, monitorando em segundo plano através de ping em uma URL.

Quando detecta que não foi feito o ping no tempo determinado envia um alerta.

Esse monitoramento do Healthchecks pode ser muito bem aproveitado para monitorar o Home Assistant. E de graça!

Para começar precisamos inscrever no site: https://healthchecks.io/

Clique em “Sign Up”, preencha com seu e-mail para receber um link, clique na opção de enviar, verifique o seu e-mail, clique no link “Sign In”recebido e no link de “Continue”.

Você será direcionado para uma página em que poderá adicionar o seu Check.

Você já tem o seu link de check.

Copie esse link e cole em um navegador.

Você terá o retorno “OK”, indicando que foi verificado um ping naquele link.

E se retornar em sua conta do Healthchecks verificará o tempo em que foi realizado o último ping.

Essa informação que está à frente de “My first Check” é o seu Check ID e será necessário para configuração no Home Assistant, bem como uso no Node-Red e outros.

image

Vamos anotar algumas informações que vamos precisar mais à frente.

Vá em “Settings” e clique em “Create” na API Key.

Anote, pois ele será mascarado e precisará dele.

Já vamos fazer algumas configurações aqui para utilizarmos em automações.

Clique na opção “Integrations” e verá as várias integrações que podem ser utilizadas para informar o resultado do ping, como Telegram, WhatsApp, SMS, e-mail, etc.

Nesse post vou adicionar somente o Telegram, mas a lógica é parecida para os demais.

Clique em “Add Integration” no Telegram.

Um guia indicará as formas de fazer a configuração no Telegram, sendo que pode ser utilizado o Bot do Healthcheks em Grupos, mensagem direta ou em Canais.

Em meu caso convidei o Bot para um grupo que já tenho criado para o Home Assistant. A maioria dos usuários do Home Assistant já tem um.

Volte para a página inicial de “Checks”.

Se quiser, clique sobre o nome “My First Check” e o renomeie.

Clique sob “Period Grace”, no período informado, e altere conforme a imagem e salve.

A lógica aí é a seguinte:

O Período (Period) é o tempo em que serão aguardados os pings. Se ultrapassar o Healthchecks já detectará anormalidade.

O Período de graça (Grace Time) é o tempo a partir do qual sendo verificado um atraso deve esperar para enviar um alerta.

No caso configurado o alerta será enviado em 3 minuitos.

Agora copie novamente o link de check e cole no Browser e retorne para a página do Healthchecks.

Notará que no início há a indicação do status por um ícone verde, indicando que está tudo bem. Ainda dentro do período de 2 minutos configurado.

Quando ultrapassar os 2 minutos (e antes de 3 minutos) o ícone será laranja, indicando atenção, pois o ping está atrasado.

E quando ultrapassar os 3 minutos o ícone será vermelho, indicando que o período de graça foi ultrapassado, e portanto indicando que o seu sistema está inativo.

E continuará assim até receber novo ping, voltando então para verde e uma nova contagem de tempo.

Essas diversas indicações estão documentadas no site.

Se você já fez a configuração indicada para o Telegram notará que já está recebendo mensagens de acordo com o status do check.

image

Porém, esse cheque está sendo realizado manualmente quando copiamos o link de check no Browser, mas queremos que isso seja automático, e verificando o status do nosso Home Asistant, então vamos às configurações.

Para uso no Node-Red nem precisaríamos dessa configuração, pois é possível utilizar diretamente o link de check. Mas, também pode ser utilizado o sensor que será criado no Home Assistant.

Mas, como já queremos o “trem” funcionando vamos criar a automação no Node-Red antes de criarmos o sensor no Home Assistant.

01 inject
01 http request

Configure como nas imagens abaixo.

No inject configuramos 2 minutos porque é o período que configuramos no Healthchecks.
Na URL cole o seu Check Id (link de ping).

Agora, a cada 2 minutos será feito automaticamente um ping na sua URL de check. Se o Home Assistant ficar indisponível esse ping não ocorrerá e o Healthchecks reconhecerá e esperará o período de graça configurado e se for ultrapassado enviará uma notificação, nesse caso no Telegram, indicando a falha, então poderá ser verificado o que ocorreu e restaurar.

Faça alguns testes alterando o tempo do nó Inject ou injetando testes em períodos distintos.

Agora vamos à Integração no Home Assistant e criação do sensor.

A Integração é feita no HACS.

Ir em “HACS” e “Integrações”.

Clicar em “Explorar e baixar repositórios” e pesquisar por “healthchecksio”.

Clicar sobre “healthchecksio”.

Clicar em “Baixar”

Clicar novamente em “Baixar”.

Reiniciar o Home Assistant.

Clique em “Configurações” e em “Dispositivos & Serviços”.

Clique em “Adicionar integração”.

Pesquise por “healthchecksio” e clique sobre a integração

Aguarde conforme instrução e em seguida preencha com sua API Key obtida no site Healtchecks.

Obs.: Não confundir com a API Key (rea-only).

E com o Check ID obtido no site Healtchecks.

Em seguida clique em “Enviar”.

E você terá uma mensagem de sucesso, então clique em “Terminar”.

E você já tem a integração com um sensor.

image

image

Com o sensor, no Home Assistant ou no Node-Red podemos criar automações, se quisermos adicionar mais funções.

Também, na página do Healthchecks poderão ser verificadas outras muitas informações e criados outros checks.

O teste de ping que foi criado anteriormente no Node-Red pode ser substituído por um criado no Home Assistant.

Adicionalmente, em posse do status, caso o equipamento de instalação do Home Assistant ou o sistema precise ser reinicializado poderão ser utilizados dispositivos, como por exemplo, tomada inteligente, ou configurações para isso.

Espero que seja útil.

Abraços a todos!

9 curtidas

Muito bom ja consegui terminar o meu, porem queria fazer um tambem direto no home assistant, mas nao sei nem por onde comecar

parabens, bacana. Eu uso o healtchecks mas rodo a minha propria instancia. O pessoal do linuxserver.io mantem uma imagem docker do healthchecks e com possibilidade de usar o apprise (um lib que tem suporte a um montão de tipos diferentes de notificação). Eu uso pra monitorar meus backups!

vc quer que o HA mande os pings pro healtchcheck? Se for isso, é simples, porque basta o HA fazer uma requisição pra URL de teste e pronto. Vc pode fazer isso com um shell_script ou muito possivelmente com a integração “REST” .

Diretamente no HA você pode criar uma Automação. E poderá fazer um ping para a url do Healthchecks.
Para a automação utilize como gatilho o sensor que criou para o Healtchecks (exemplo: binary_sensor.home_assistant_via_ping_healthchecks), sendo que o dispositivo será o “Healthchecks.io”, com gatilho desse sensor como “desconectado”, com a duração que desejar (exemplo: 2 minutos), e na Ação defina para enviar uma Notificação, que você poderá definir para receber no seu Telegram ou Smarthphone.
Quando o check ficar “off” você receberá uma notificação.
No caso de utilziar o Node-Red não precisá criar a automação, mas apenas seguir o tutorial até o indicado para o Node-Red.
Obs.: Utilizo somente o Node-red, então estou informando uma possibilidade no HA para o seu caso, mas que não utilizo.

Estranho este jeito de monitorar. Eu uso o UptimeRobot para monitorar se meu HA está respondendo por HTTPS. Se não responder, recebo um aviso no Telegram. O HA não precisa pingar nada. O problema que tenho aqui geralmente é no modem, que pára de aceitar conexões externas, mas continua permitindo navegação de dentro para fora (então o ping do HA não pararia).

Além disso, como o UptimeRobot não consegue acionar webhooks do HA na versão gratuita, eu subi uma instância do Uptime Kuma no OCS. No HA o webhook reseta um timer de 10 min. Se o timer chegar a zero (dez minutos sem acesso externo), eu reinicio o modem usando um comando MQTT para um Sonoff Basic “tasmotizado”. Forçando o reinício do modem ele volta a funcionar corretamente.

É quase trocar 6 por “meia duzia” com a desvantagem que no plano gratuito do UptimeRobot ficará limitado a intervalos iguais ou maiores que 5 minutos (o que considero alto), além de outras limitações.
Seja Healthchecks, UptimeRobot, UptimeKuma, etc, todos funcionam praticamente iguais.
Porém, por várias razões, principalmente pela integração, recursos gratuitos e outros, considero que o Healthchecks sobrepõe aos demais.
Os adicionais em Mqtt já não dependem da solicitação ao cron job e após a deteção de falha podem ser implementadas da mesma forma.

1 curtida