Le système domotique Home Assistant dispose de plusieurs moyens pour vous envoyer des notifications. J’utilise plusieurs de ces méthodes, chacune ayant un avantage particulier de mon point de vue et c’est pour cela que j’utilise plusieurs de ces canaux de communications disponibles. Il y a bien entendu le service de notification push natif, celui que j’utilise le plus souvent pour me notifier des alertes et infos rapides.
Mais les notifications sont éphémères et il peut parfois être intéressant d’avoir un historique des messages envoyés par la domotique. C’est là qu’un système comme Telegram devient intéressant.
Telegram, un choix intéressant pour se faire notifier par Home Assistant
Par exemple, j’utilise plutôt Telegram pour me notifier d’un bilan énergétique journalier/hebdo/mensuel. Chaque soir la domotique m’envoie le résultat de production solaire de la journée et le statut des batteries.
Autre avantage de Telegram, on peut aussi joindre des images des caméras aux notifications, pratique pour se faire notifier sur l’état d’ouverture des garages par exemple et envoyer avec une photo de la caméra.
Il existe bien d’autres usages pratiques qui font de Telegram un canal plus intéressant que la simple notification. Voyons alors comment mettre en oeuvre Telegram sur Home Assistant pour vous permettre de faire de même (et plus encore).
Création d’un bot Telegram pour Home Asssitant
1. Ouvrir l’application Telegram et se rendre sur le champ “recherche” pour y rechercher @BotFather et démarrer une conversation avec ce Bot.
2. Dans la liste des options qu’il propose sélectionner l’option /newbot ou lui envoyer le texte /newbot
3. Donner un nom à votre bot en réponse à BotFather puis copier le contenu de la confirmation de création pour conserver précieusement le token que nous utiliserons plus loin dans la configuration de Home Assistant. Retournez sur l’accueil de Telegram puis recherchez votre nouveau bot, entrez en conversation avec lui via Démarrer pour l’initialiser.
5. Dernière opération nécessaire du côté de Telegram, il nous reste à récupérer votre ID pour vous permettre de vous envoyer des notification depuis HA. Pour cela, toujours depuis le champ de recherche, cherchez le bot @getids et démarrez une conversation avec lui.
6. Le bot vous retourne votre ID, là encore notez-le et conservez le précieusement car nous allons l’utiliser dans la configuration de HA.
Configuration de Telegram dans la domotique Home Assistant
Côté Home Assistant, entrez dans la configuration yaml, avec l’excellent Visual studio code, si vous ne n’avez pas encore mis en place sur votre système domotique, je vous invite chaudement à lire mon guide sur le sujet.
1. Ajoutez les lignes suivantes dans le fichier configuration.yaml en veillant bien à modifier le token sur la ligne api_key ainsi que l’ID par deux fois et donner un nom à votre notification.
# Bot Telegram
telegram_bot:
- platform: polling
api_key: "6688776655:AAAAAAAA_ZZZ-eee-53535442-QXXXXXXXXXXX"
allowed_chat_ids:
- 1234567890
# Notifier
notify:
- platform: telegram
name: "aurel"
chat_id: 1234567890
Mieux encore, ce que je vous recommande, c’est de basculer ce code sous un fichier package dédié pour une bonne organisation de la configuration. Vous pouvez dans un premier temps placer le code dans le fichier configuration.yaml, pour tester le bon fonctionnement et ensuite migrer le bloc sous un fichier package “bot_telegram.yaml”
2. Il faut ensuite redémarrer Home Assistant pour prendre en compte le nouveau code de la configuration via Outils de développement/Yaml.
Vous le savez, comme toujours on teste le code avant redémarrage avec vérifier la configuration.
Et s’il n’y a pas d’erreur, on redémarre Home Assistant.
3. Une fois HA redémarré, il ne reste plus qu’à tester le tout, pour cela toujours sous Outils développement, mais dans le menu services.
4. On bascule en mode YAML, et on vient coller le bloc ci-dessous dans l’espace de code. On change “aurel” par le nom que vous avez donné à votre notifier et on appelle le service.
service: notify.aurel
data:
message: "Yop! test de notif telegram Home Assistant pour toi."
5. Si tout s’est bien passé, vous avez reçu la notification sur votre smartphone. Le tour est joué, votre home assistant sait maintenant vous envoyer des messages via Telegram.
Notifications Telegram dans les automatisations Home Assistant
Comme l’ensemble des composants de la domotique Home Assistant, les notifications Telegram passent par les automatisations pour déclencher l’envoi de l’information. Et dans la mise en forme d’une automatisation de notification Telegram, on peut apporter quelques artifices très intéressants pour rendre les notifications Telegram utiles et dynamiques. Voici mes petites astuces qui vont révolutionner vos notifications.
Comment Ajouter l’image d’une caméra dans les notifications ?
Là encore plusieurs approches. Il existe une fonction stockage des snapshot pour laquelle il faut au prealable créer un espace de stockage dans le système et ouvrir l’accès via le fichier de configuration. Mais j’ai trouvé plus simple, sans besoin de stocker l’image en local pour la transmettre ensuite. J’utilise l’url de capture de mes caméras.
http://192.168.1.11/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=9999&user=domo&password=blog
Puisqu’il faut passer les identifiants en paramètres, j’ai créé un utilisateur restreint sur les caméras utilisées uniquement pour cette fonction. Ce sont des Reolink, il faudra donc identifier l’URL de snapshot selon la marque de votre caméra au préalable et adapter l’URL.
Code automatisation
alias: Telegram - Technique - Garage Aurel - Alerte porte
description: ""
trigger:
- platform: time
at: "20:00:00"
enabled: true
condition:
- condition: state
entity_id: cover.smart_garage_door_2207186632414161070148e1e99a717e_garage
state: open
action:
- service: notify.aurel
data:
message: Attention le garage d'Aurel est resté ouvert !
data:
photo:
- url: >-
http://192.168.1.11/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=9999&user=domo&password=blog
Comment ajouter des boutons action aux notifications Telegram pour Home Assistant ?
Même automatisation mais enrichie de boutons pour proposer en cas de garage resté ouvert de le fermer simplement. De fait, si un des garages est détecté ouvert le soir, non seulement je reçois une notification Telegram avec une photo, mais en plus le système me propose des boutons pour, d’une simple pression, soit ignorer l’alerte (car volontaire), soit agir et fermer la porte directement depuis la notification.
Pour arriver à ce résultat, il faut ajouter le paramètre inline_keyboard dans le bloc de notification et y spécifier les callback, ici Ignore:/ignore_ferme et Fermer:/garagea_ferme pour permettre de fermer le garage qui est ouvert.
inline_keyboard:
- Ignore:/ignore_ferme, Fermer:/garagea_ferme
title: 🚨 ATTENTION
Retrouvez l’ensemble des codes automatisations HA au téléchargement pour la notification des garages, s’ils sont fermés, si un est ouvert avec affichage du bouton, ainsi que celle pour agir en fonction du bouton. Vous n’avez alors qu’à copier-coller, modifier les noms des entités par les vôtres et utiliser les mêmes notifications que moi dans votre domotique sans vous casser la tête.
Les paramètres callback seront à ajouter dans une autre automatisation, pour que Home Assistant effectue l’action demandée à réception de ce callback en déclencheur.
Il ne reste plus ensuite qu’à passer les ordres à effectuer, dans le cas présent, je demande à Home Assistant de fermer la porte et de me renvoyer une confirmation et une photo pour confirmation. Cela se passe via une seconde automatisation (code dispo dans le pack).
Mise en forme des notifications Telegram
Dernier point pour compléter notre guide sur l’utilisation de Telegram avec la domotique Home Assistant, parlons de la mise en forme.
En ajoutant les données dynamiques telles que les valeurs d’un ou plusieurs capteurs et en y ajoutant des astérisques autour des mots à faire ressortir en gras ainsi que quelques émoticônes, vous arrivez à construire des notifications riches, claires et dynamiques comme vous pouvez le constater avec mon bilan de production solaire journalier ci-dessus.
Enfin, en associant cela à une automatisation elle aussi dynamique, vous pourrez adapter le message en fonction des données de vos capteurs.
Dans le cas de mon bilan de production solaire journalier, je reçois chaque soir un message différent en fonction des différentes données de production.
Retrouvez le code complet de mon automatisation bilan solaire à télécharger et à copier/coller dans votre système domotique pour disposer vous aussi très simplement de ce type de notification. Dans l’exemple ci-dessous, je vous présente un bilan de production solaire, mais vous pouvez l’adapter à de multiples situations. Consommation d’eau, de gaz et bien sûr un bilan de consommation électrique pour suivre au mieux la consommation et les économies réalisées au quotidien.
Le pack à télécharger comprend l’ensemble des codes pour les automatisations de notifications Telegram présentées ici. Cela vous permet de simplifier la mise en oeuvre de ce guide sur votre système domotique et apporte un petit soutien au blog au passage. Pour rappel, j’ai fait le choix de ne pas polluer votre expérience de lecture avec des pubs qui apparaissent de partout et viennent pourrir votre lecture comme on le voit de plus en plus sur internet. Je ne supporte pas cela moi-même alors pourquoi vous l’imposer…
Conclusion
Voilà, vous disposez à présent de tout le nécessaire pour mettre en place des notifications Telegram sur votre système domotique Home Assistant. Si elles ne remplacent pas les notifications natives à HA qui restent très utiles et pratiques pour nombreux cas, elle sont complémentaires et apportent quelques points très intéressants pour rester informé de manière utile et intelligente.
Vous avez ici deux cas d’usages exemple que j’utilise au quotidien, mais les possibilités de déclinaisons sont multiples. Comme toujours en domotique, votre imagination fait le reste.
Merci, je testerai à l’occasion. Pour le moment je suis sur ntfy en auto hébergé c’est plutôt efficace.
Bonjour,
Je bloque au bot Getids, je mets Start et il ne me répond pas avec mes ids, mais “Hello, you can contact us using this bot.”