Hace tiempo que venía dándole vueltas a la posibilidad de controlar las webs que tengo para saber si están en pie o se han caído, algo que tenemos multitud de sitios con los que poder hacerlo de forma externo, pero creo que podía venir bien hacerlo con Home Assistant para recibir un mensaje por Telegram si está alguna caída.
En este caso, vamos a tener que recurrir a un comando de consola, curl, para muchos, será una herramienta conocida, pero para otros, totalmente desconocida. Se trata de una herramienta de la consola de Linux (aunque se encuentra en casi todos los sistemas operativos) que nos sirve para poder trabajar con las webs, sobretodo para diagnostico, pudiendo realizar operaciones completas.
En nuestro caso, tan solo realizaremos la petición de las cabeceras en busca del 200 OK, que es el código que devuelven las webs cuando todo va bien y ha devuelto la web correctamente, al menos, a nivel de servidor.
Sensor para controlar el estado de nuestra web
Como digo, este tutorial es rápido, ya que tan solo tendremos que añadir dentro del area de “binary_sensor:” en nuestro configuration.yaml lo siguiente:
- platform: command_line name: Web Domotica command: curl -o /dev/null -s -w "%{http_code}\n" https://domoticaencasa.es payload_on: 200
En el, lo que se realiza es la ejecución del comando curl para posteriormente, en consola parsear el resultado para obtener, en este caso el 200 (o el código de estado que devuelva la web), diciendo que el ON es cuando devuelve 200, para así, poder realizar una automatización en la que definamos el trigger como el paso de ON a OFF de este sensor para así lanzar las alarmas que fueran necesarias.
¿Habéis podido hacerlo?
IMPORTANTE: Con el fin de ayudaros de una forma más directa, he creado un grupo en Telegram de Home Assistant en Español donde podemos ayudarnos todos así como evitar que os quedéis atascados, si tenéis telegram podéis pulsar aquí para uniros y si no lo tenéis, os recomiendo que os lo instaléis ya que lo usaremos en el tutorial para notificarnos.
Hola, esto da problemas.
Cuando arranca HA hace la comprobacion y da el estado correcto, pero si la web cae con HA arrancado, da un problema de ejecucion del comando y no actualiza al nuevo estado.
Mi error es el siguiente: 2019-08-27 12:48:36 ERROR (SyncWorker_5) [homeassistant.components.command_line.sensor] Command failed: curl --max-time 15 -o /dev/null -s -w "%{http_code}\n" http://ZZZZ.COM