Después de instalar Home Assistant en Docker puede ser interesante configurar la integración con Telegram para recibir notificaciones con los cambios que se producen en casa a través de las automatizaciones.
No confundir con la integración Telegram bot que permite enviar órdenes desde Telegram a Home Assistant para que ejecute diferentes acciones (por ejemplo, poner en marcha la calefacción).
Crear un bot en Telegram
Para poder realizar esta integración es necesario crear un bot de Telegram que será el encargado de interactuar con Home Assistant.
La forma más fácil de crear un bot es usar la aplicación @BotFather, el propio bot de Telegram que permite crearlos de forma sencilla usando el comando /newbot
:
El procedimiento para hacerlo es el siguiente:
- Abrir una conversación con BotFather accediendo a https://telegram.me/botfather
- Pulsar en el botón
Start
para comenzar y ver los comandos que hay disponibles - Enviar el comando
/newbot
- Indicar el nombre del bot, por ejemplo
Notificaciones HA
- Indicar el username del bot, por ejemplo
notifyhabot
A continuación BotFather devolverá un token similar al mostrado a continuación que permitirá utilizar la API HTTP de Telegram:
6324140421:BB024hadfsa_13421jñqleEEjasgGGMadfD
Nota: hay que guardar este token como cualquier otra contraseña, de manera segura, ya que es la llave que permite controlar el bot.
Este bot puede tener un perfil como el de cualquier usuario, incluyendo un imagen, una descripción, etc. Además, se podrá definir cómo se comportará al recibir determinados comandos.
Como los bots no pueden contactar con los usuarios, hay que enviarle un primer mensaje desde nuestro usuario de Telegram:
- Buscar el bot que acabamos de crear (en este ejemplo era https://telegram.me/notifyhabot)
- Enviarle un primer mensaje (p.ej
test
) desde nuestro usuario - Acceder a la API de Telegram indicando el token obtenido anteriormente usando una URL similar a la siguiente:
https://api.telegram.org/bot<API_TOKEN>/getUpdates
Si todo es correcto, se obtendrá una respuesta en formato *.json
que contiene, entre otras cosas, el chat_id de la conversación con nuestro usuario:
{
"ok": true,
"result": [
{
"update_id": 254199982,
"message": {
"message_id": 3,
"from": {
"id": 123456789,
"is_bot": false,
"first_name": "First",
"last_name": "Last",
"username": "firstlast",
"language_code": "es"
},
"chat": {
"id": 123456789,
"first_name": "First",
"last_name": "Last",
"username": "firstlast",
"type": "private"
},
"date": 1667147343,
"text": "test"
}
}
]
}
Asociar el bot a Home Assistant
A continuación se puede editar el fichero configuration.yaml
para conectar el bot con Home Assistant usando el token y el chat_id obtenidos anteriormente:
telegram_bot:
- platform: polling
api_key: "6324140421:BB024hadfsa_13421jñqleEEjasgGGMadfD"
allowed_chat_ids:
- 123456789
y añadir un elemento notificador que será el encargado de enviar las notificaciones al chat entre el usuario y el bot:
notify:
- platform: telegram
name: notifyhabot
chat_id: 123456789
Después de guardar los cambios en el fichero, se reinicia Home Assistant y todo estará preparado para utilizar este notificador en las automatizaciones.
Probar las notificaciones
La prueba que se realizará es una acción muy sencilla. Vamos a intentar que, cuando el precio de la luz sea menor que 0,27€/kWh, se envíe una notificación a nuestro Telegram.
Para ello se creará una automatización que use la integración Spain electricity hourly pricing (PVPC) que instalé hace unos días.
- Settings > Automation & Scenes
- Create Automation
- Start with an empty automation
- Add Trigger >
Numeric state
- Entity >
sensor.pvpc
- Below >
0.27
- Entity >
- Add Action >
Call service
- Service >
notify.notifyhabot
- Title >
Precio de la luz
- Message >
Por debajo de 0.27€/kWh
- Service >
- Save
- Name:
Aviso precio luz
Cuando el valor del sensor esté por debajo de 0,27 se recibirá un aviso en Telegram como el mostrado en la siguiente captura: