Sommaire
L’utilisation de notifications est primordiale pour un système domotique efficient.
Exemple de notifications :
- “Vous partez alors que la fenêtre du salon est restée ouverte”
- “Le taux de CO2 est trop fort, il faut aérer le salon”
- “Une consommation anormale d’eau a été détectée cette nuit”
- “La température du congélateur est trop élevée.”
- “Pas de consommation électrique de la pompe de la piscine. Vérifier son bon fonctionnement”
- ….
Home Assistant intègre un système de notification, mais qui a ses limites. Il est souvent préférable de le réserver aux notifications techniques, comme les demandes mises à jour.
Telegram est alors une solution de choix pour permettre à toute la famille de recevoir des notifications sur la maison.
Il est également très intéressant de pouvoir répondre à ces notifications pour déclencher une ou des actions via des boutons sous le message. L’exemple ci-dessous est la demande de fermeture du volet de la piscine quant l’air est plus froid que l’eau (cela permet de garder l’eau chaude et éviter l’évaporation).

Nous vous proposons ici un tutoriel complet pour implémenter simplement Telegram avec les automatisations de Home Assistant.
Les étapes suivantes seront détaillées :
- Créer un bot Telegram et obtenir un token et un ID de discussion,
- Connecter Telegram a Home Assistant via l’intégration Telegram Bot,
- Créer une notification que l’on utilisera de manière standard dans nos automatisations et nos scripts.
Installer un bot Telegram
Création du bot
Il va falloir vous créer un bot pour que ce soit lui qui vous envoie des messages.
Rendez-vous sur Telegram sur votre Navigateur ou via votre application mobile.
- Rechercher
@botfatherdans le champ de recherche des contacts puis cliquer dessus. - Lancer le BotFather Telegram et cliquer sur
Démarrer(ou start si en anglais).

- Une liste d’options vous sont proposées. Cliquer sur
/newbot - Choisir un nom pour votre bot et un nom d’utilisateur (HACF_bot dans l’exemple)).

Votre token apparaît, gardez le bien précieusement.
Vous avez maintenant votre Bot Telegram.
- Reste enfin à l’activer. Retrouver votre bot dans la recherche (@HACFx_bot par exemple), cliquer dessus, puis dans le fil de discussion, cliquer sur
Démarrer(ou /start). Sans cette dernière opération, votre bot ne sera pas actif.

L’étape suivante est de retrouver l’ID du fil de discussion ou envoyer les messages : soit seulement vous (voir 1.2) ou alors un groupe (voir 1.3).
Récupérer votre ID pour VOUS envoyer des messages
Cette partie permet de retrouver votre ID de discussion, si vous choisissez de n’envoyer des messages qu’à vous (et pas à un groupe de personnes).
Pour récupérer l’ID de votre USER, rechercher @getids bot dans le champ de recherche des contacts puis cliquer sur Démarrer.

Récupérer l’ID pour les envois à un GROUPE
La création d’un groupe vous permettra d’envoyer des messages aux utilisateurs de ce groupe. Vous pouvez par exemple créer un groupe appelé Maison, et y ajouter les membres de votre famille.
Voici comment en récupérer l’ID de discussion.
- Cliquer sur le menu de Telegram puis
Nouveau groupe
Donnez-lui un nom puis CREATE GROUP.
- Sélectionner les utilisateurs devant appartenir au groupe ainsi que votre bot.
Cliquer sur votre Groupe en haut puis Ajouter des membres. Important : n’oubliez pas d’ajouter votre bot (autrement, il ne pourra pas envoyer de messages dans le groupe).**

- Récupérer votre ID du groupe en invitant
@getids botà votre groupe. Une fois ajouté, vous pouvez voir votre ID qui s’affiche dans le fil de discussion.> Notez bien cet ID référençant le groupe qui recevra les messages.
Une fois l’ID noté, vous pouvez éjecter GetIds Bot du groupe en cliquant sur les 3 points en haut à droite, puis Gérer le groupe.

Configuration dans Home Assistant
Configuration du bot
Depuis la version HA core 2025.5, la configuration se fait directement dans l'UI.
Allez dans Paramètres > Appareils et services > Ajouter une intégration, puis sélectionnez Telegram puis Telegram bot.
Choisissez la plateforme : Broadcast, Polling et Webhooks.
- Broadcast : Si vous voulez juste envoyer des notifications/alertes (ex. capteurs domotique) sans commandes entrantes, et que HA n'est pas exposé.
- Polling : Pour envoi + réception de commandes (ex. "/allumer lumière" via chat), sans ouvrir HA à internet ; adapté à la plupart des setups domestiques.
- Webhooks : Pour réception la plus réactive (idéal multi-utilisateurs ou bots avancés), mais seulement si HA est accessible publiquement (HA Cloud, NGINX avec certif valide). Ajoutez
127.0.0.1aux trusted networks si via Cloud.

Je conseille de choisir Polling, qui permet un pilotage de Home Assistant sans exposition d'URL (webhook). Renseignez ensuite l'ID de votre BOT.
Vous avez ainsi créé le lien vers votre bot.

Configuration de discussion (Chat ID)
Maintenant, il faut maintenant référencer les ID de discussion (vous ou un groupe, comme présentée précédemment).
Aller dans les paramètres de l'intégration telegram_bot et cliquer sur "Ajouter l'ID de discussion autorité"

Renseignez votre ID de discussion (par exemple l'ID du groupe Maison).

Si vous cliquez sur le détail (maison dans mon cas), vous allez sous "notificateurs" voir la future entité vous permettant d'envoyer les notifications :

Ouvrir l'entité sous Notificateurs et renommer son nom et son ID. Dans mon cas, j'ai mis Telegram Maison. J'ai renommé l'ID de l'entité notification telegram_maison.

Test d'envoi d'un message
Il y a 2 méthodes pour envoyer un message via notre intégration :
- soit avec l'action standard notify.send_message : pour juste envoyer du message texte. Méthode la plus simple et facile pour l'envoi de simples textes.
- soit avec des actions de l'intégration telegram_bot, que nous verrons plus loin, permettant bien plus.
Pour tester notre bot, on va utiliser ici notify.send_message.
Rendez-vous dans Outils de développement, puis actions et saisir les informations suivantes :
- Action :
notify.send_message(ou votre user) - Cibles :
telegram_maison - Message :
votre message
Cliquez sur Effectuer une action. Vous devriez voir sur votre application Telegram le message arriver.

Voici un exemple de script en YAML avec la syntaxe :
sequence:
- action: action: notify.send_message
entity_id: notify.telegram_maison
data:
message: "Test de message"
Utilisation des actions de telegram_bot
Si notify.send_message est simple à utiliser, son utilisation est limitée à l'envoi de simples messages texte. L'utilisation de l'utilisation des actions de telegram_bot permettront de faire tout ce qu'il est possible de faire avec Telegram.
La syntaxe YAML est alors légèrement différente. La voici pour envoyer un message :
sequence:
- action: telegram_bot.send_message
data:
entity_id: notify.telegram_maison
message: "Test de message"
Avec telegram_bot, vous pourrez également envoyer des images (voir plus loin dans l'article), des fichiers, des films, et plus généralement faire tout ce qu'il est possible via Telegram comme détruire ou modifier des messages.
Nous ne détaillerons pas toutes les possibilités de telegram_bot, mais vous pouvez consulter la documentation ici :
Nous présentons dans la suite de l'article quelques exemples.
Utilisation de templates
Il ne faut pas hésiter à transmettre des données dans vos messages, par exemple ici la température de l’eau de l’air.
trigger: []
condition: []
action:
- notify.send_message
target:
entity_id: notify.telegram_maison
data:
message: >-
Merci de fermer le volet.
Température eau : {{states('sensor.fibaro_piscine_temperature_eau')}} °C
Température abri : {{states('sensor.fibaro_piscine_temperature_abri')}} °C Il est aussi possible de rajouter une image, typiquement issue d’une capture (“snap”) d’une de vos caméras. Par exemple ici l’intérieur du poulailler pour vérifier que nos poules sont bien couchées quand la porte se ferme (ma femme adore cette fonction 🙂 ).

trigger: []
condition: []
action:
service: notify.telegram_maison
data:
message: Coucou des poulettes : porte bien fermée
data:
photo:
- file: /media/poules/snap.jpgVous trouverez dans la doc plus d’informations sur la gestion des images : Setting up local media sources
Vous pouvez par exemple créer un sous-répertoire /poules dans config/www qui est par défaut un répertoire avec des accès ouverts.
Puis déclarer ce répertoire dans votre fichier de configuration config.yaml pour qu’il soit accessible sous le nom “poules” depuis le répertoire multimédia ainsi que votre code YAML.
homeassistant:
media_dirs:
poules: /config/www/poules/4. Rajout de boutons d’action après le message
Reprenons notre exemple du début de l’article :

Pour afficher les boutons, c’est très simple : il suffit de rajouter dans la section data du message la section inline_board avec libellé:/event à déclencher. Dans notre cas, les événements piscine_ferme et piscine_ignore_ferme seront déclenchés si respectivement un des boutons est pressé.
trigger: []
condition: []
action:
- service: notify.message_warning_groupe
data:
message: >-
Merci de fermer le volet....
data:
inline_keyboard:
- Ignore:/piscine_ignore_ferme, Ferme volet:/piscine_ferme5. Traitement des actions des boutons
Il faut créer deux automatisations qui se déclenchent pour chaque événement piscine_ferme ou piscine_ignore_ferme et exécute une action en conséquence.
Par exemple, voici l’automatisation pour traiter l’événement de demande de fermeture :
alias: 'Piscine : fermeture par telegram'
description: Traite la réponse de demande de fermeture du volet par telegram
trigger:
- platform: event
event_type: telegram_callback
event_data:
command: /piscine_ferme
action:
- service: cover.close_cover
target:
entity_id: cover.ipx800_volet_piscine
data: {}telegram_callback et donnée command: /piscine_ferme par exemple).Vous pouvez aussi vous mettre à l’écoute des événements de type telegram_callback et écouter l’événement déclenché par l’appui sur un bouton dans telegram.6. Confirmation que l’action a été bien effectuée
Une fois le bouton cliqué, il ne reste plus qu’à supprimer la barre de boutons, et confirmer à l’utilisateur que la demande d’action a été bien prise en compte.

Pour cela, on rajoute à l’automatisation précédente quelques lignes :
alias: 'Piscine : fermeture par telegram'
description: Traite la réponse de demande de fermeture du volet par telegram
trigger:
- platform: event
event_type: telegram_callback
event_data:
command: /piscine_ferme
action:
- service: cover.close_cover
target:
entity_id: cover.ipx800_volet_piscine
data: {}
- service: telegram_bot.edit_replymarkup
data:
message_id: '{{ trigger.event.data.message.message_id }}'
chat_id: '{{ trigger.event.data.chat_id }}'
inline_keyboard: null
- service: notify.message_warning_groupe
data:
message: Volet piscine fermé.
initial_state: true
mode: singlePour l’événement cancel, On répond juste ok et on demande la suppression de la ligne de boutons qui s’affichait dans Telegram.
alias: 'Piscine : ignorer demande fermeture telegram'
description: Enlève bouton et réactive l'alerte sur fermeture
trigger:
- platform: event
event_type: telegram_callback
event_data:
command: /piscine_ignore_ferme
action:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.piscine_flag_fermeture_volet_actif
data: {}
- service: telegram_bot.answer_callback_query
data:
callback_query_id: '{{ trigger.event.data.id }}'
message: Ok
- service: telegram_bot.edit_replymarkup
data:
message_id: '{{ trigger.event.data.message.message_id }}'
chat_id: '{{ trigger.event.data.chat_id }}'
inline_keyboard: null
mode: singlemodifier.Conclusion
Voilà, vous pouvez maintenant “dialoguer” avec votre maison via Telegram, en intégrant potentiellement des données et des photos.
N’hésitez pas à partager sur le forum les choses originales ou amusantes que vous auriez automatisées.
