Notificaciones en Telegram desde Home Assistant

Notificaciones en Telegram desde Home Assistant… con Paciencia

Estamos de nuevo con temas de notificaciones, y es que ésta será la principal vía cómoda con la que nuestro sistema domótico nos puede informar de acontecimientos detectados o acciones realizadas. Adicionalmente nos servirá como registro de dichas notificaciones en Telegram desde Home Assistant.

Hemos elegido la plataforma de Telegram por estar bien soportada en Home Assistant y ser un sistema bastante robusto.

Veremos también estrategias de notificación por prioridades, distinguiendo entre mensajes meramente informativos y aquellos que van a requerir alguna acción por nuestra parte.

También estaremos en disposición de incluir a otros miembros de la familia que lo necesiten en estas alertas Telegram.


Paso 1. Creación de un Bot de Telegram

Nuestro sistema domótico hablará por Telegram como un Bot. Para ello tendremos primero que crearlo con el siguiente procedimiento:

  • Desde un cliente Telegram (si lo tenemos ya en el móvil perfecto, si no debes crear previamente una cuenta e instalar la aplicación) buscaremos en contactos a BotFather, con un check azul que nos indicará que es el oficial:
Notificaciones en Telegram desde Home Assistant
  • En el chat con BotFater teclearemos /newbot para indicar que queremos crear un nuevo bot.
  • Nos preguntará por el nombre del Bot que queremos crear. Os aconsejo algo corto que identifique vuestro sistema con Home Assistant. Por ejemplo HA_MiCalle:
  • Y un nombre de usuario que debe acabar en «bot». Por ejemplo HA_MiCalle_bot:
  • Anotar el Token que nos muestra. Nos hará falta más tarde:

Por ahora ya está. Más tarde podréis personalizarlo con alguna foto por ejemplo.


Paso 2. Obtener identificadores de chats

Antes de crear los grupos, iniciaremos un chat directamente con el bot y pondremos cualquier cosa para activarlo.

Ahora vamos a crear 2 grupos distintos e incluimos a nuestro bot en dichos grupos:

  • Grupo para mensajes informativos: Le llamaremos por ejemplo MiCasa
  • Grupo para mensajes urgentes: Le llamamos por ejemplo MiCasa_URGENTE

Crearemos los grupos anteriores (MiCasa y MiCasa_URGENTE) incluyendo a nuestro bot. Os aconsejo que por ahora para pruebas no se incluya a nadie más, pero más tarde es tan fácil como meter en el grupo a cualquiera que necesite leer esos mensajes de Home Assistant.

La idea como habréis podido imaginar es que MiCasa_URGENTE tenga un tono de notificación potente, mientras que el grupo MiCasa podemos tenerlo sin sonido.

Vamos a obtener los identificadores de chat que identificarán ambos grupos y que necesitaremos para poder diferenciar según el tipo de mensaje que generemos en Home Assistant.

En cada grupo, de forma temporal incluiremos a otro Bot existente llamado GetIDs Bot, y automáticamente nos dará la información que queremos. El identificador de un grupo siempre incluye un guión al principio de la numeración:


Paso 3. Parada para resumir y un café

Resumiendo, en este punto tendremos:

  • Un Bot creado
  • 2 grupos de Telegram con nuestro Bot como mienbro en cada uno de ellos.
  • Un Token
  • 2 Identificadores de grupo (Todos los identificadores de grupo comienzan con un guión)

Paso 4. Seguimos… Notificaciones a Telegram desde Home Assistant

En el fichero configuration.yaml debemos incluir el siguiente código:

telegram_bot:
  - platform: webhooks
    api_key: wicskdjfejr:-inventado-fRiWIW9CdqsZQhL2-qMP1BNlzHtGiO
    url: https://tuDominio.duckdns.org:80
    allowed_chat_ids: [-12345678,-98765432]
    # -12345678 = Grupo mensajes urgentes (con notificación), reemplaza con los tuyos
    # -98765432 = Grupo mensajes no urgentes (sin notificación), reemplaza con los tuyos

Este fragmento tendréis que modificarlo indicando vuestro token (api_key), vuestros identificadores de grupo y vuestro dominio en DuckDNS (ver en este post cómo se hace: https://www.pacienciadigital.com/instalacion-de-duckdns-en-home-assistant-acceso-remoto-desde-internet/ )

En este otro post se indica cómo editar el fichero desde el propio Home Assistant.

Tendremos que resetear Home Assistant para que tome la nueva configuración: En el menú Connfiguration, la opción Server Controls:

Siempre chequearemos primero que nuestro fichero configuration.yaml es correcto con la opción «CHECK CONFIGURATION» para luego resetear. Perderemos la conexión un momento mientras vuelve a arrancar.


Paso 5. Pruebas de alertas telegram

Vamos a configurar una automatización de ejemplo muy simple, pero que os dará una idea de cómo usar las notificaciones a Telegram desde Home Assistant.

Os paso unos pantallazos y luego comentamos la parte de creación del mensaje. El sistema de interface gráfica es muy intuitivo:

Y con esto tendremos un mensaje en el grupo de emergencia que especifiquemos en el campo target indicando el identificador correspondiente cuando se detecte movimiento en una zona determinada entre las horas y días que le hemos indicado.

Por suerte, para el caso de las automatizaciones, no será necesario reiniciar Home Assistant, simplemente tendremos que ir al menú Configuration y en la opción Server Controls podremos recargar AUTOMATIONS sin reiniciar.

Podemos probar la automatización recién creada con la opción RUN ACTIONS

Extra: Identificando al emisor en notificaciones de Telegram

Cuando se use el servicio de envío de mensajes a Telegram desde una automatización, y sobre todo cuando ya tengamos muchas de esas notificaciones, os será de mucha utilidad acceder a los atributos de la automatización y enviarlos en el propio mensaje.

Cuando configuremos una automatización, y de manera opcional, podremos identificar cada trigger (cada condición que puede hacer que se ejecute el automatismo) con un texto único que queramos (es el llamado trigger.id) . De esta manera podremos identificar en la notificación por cuál de los triggers ha saltado.

También usaremos el propio nombre de la automatización (será el atributo friendly_name)

La ventaja de tener un modelo genérico de mensaje de Telegram es que podréis usarlo tal cual en cualquier otra automatización.

Vamos a verlo de nuevo con un ejemplo: Vamos a crear un modo de alarma general, que nos envíe un mensaje (vía Telegram) identificando cuál de nuestros sensores la ha activado y por supuesto que ha sido por tener el modo alarma activado:

Lo llamaremos General. Modo alarma :

Modo alarma Home Assistant

En los Trigger ID pondremos algún texto no muy largo identificativo de cada iniciador:

Iniciadores automatización

Y por último en la acción pondremos nuestro mensaje de Telegram con el editor de yaml:

Os lo dejamos también en código listo para copiar y pegar en cualquiera de vuestras automatizaciones (recordad cambiar el target):

service: telegram_bot.send_message
data:
  title: '{{this.attributes.friendly_name}}'
  message: 'Origen: {{trigger.id}}'
  target: -12345678

Esto es lo que nos saldrá al recibir una notificación:


Deja un comentario