Qui dit maison connectée, dit connectivité et contrôle à distance. Nos systèmes domotiques n’y échappent pas et, même s’ils proposent aujourd’hui tous des applications mobiles capables de nous transmettre des notifications, intégrer un bot Telegram à Home Assistant peut apporter certains plus non négligeables.
Nous verrons que cette convergence entre messagerie instantanée et domotique offre certains avantages, notamment celui de pouvoir converser avec Home Assistant. Ou presque. En effet, nous allons aussi bien pouvoir recevoir des notifications qu’envoyer des commandes, et même répondre à des questions que nous aurons préalablement prédéfinies. Vous avez dit génial ?
Créer un bot Telegram pour Home Assistant
Avant toute chose, il vous faut évidemment un compte Telegram. Pour ce faire, il vous suffit de télécharger l’application pour Android ou iOS et de vous inscrire. Nous passerons sur la procédure qui ne présente aucune difficulté pour des utilisateurs de Home Assistant.
Comme l’indique l’intitulé de ce tutoriel, nous allons ensuite créer un bot qui agira comme interface entre notre client Telegram et Home Assistant.
Pour ce faire, c’est plutôt simple :
- Ouvrez l’application ou le client web de Telegram depuis un navigateur ;
- Dans le champ de recherche, tapez @botfather et ouvrez une conversation ;
- Cliquez sur Start (ou démarrer en français) et BotFather vous propose une liste des commandes possibles ;
- Pour créer un nouveau bot, cliquez sur /newbot, tout simplement, puis choisissez-lui un nom ;
- Il ne vous reste plus qu’à lui choisir un nom d’utilisateur terminant obligatoirement par bot ;
- Telegram vous explique ensuite un certain nombre de choses, mais le plus important reste de copier le token de l’API, que nous nommerons <MON_TOKEN> plus bas, et de le conserver précieusement dans un fichier sécurisé (un wallet par exemple) ;
- Il ne vous reste plus qu’à activer votre bot. Dans le champ de recherche, tapez @NomDeMonBot (ici @LesAlexiensBot) et ouvrez-le.
- Cliquez sur le bouton Start (ou Démarrer) pour l’activer et démarrez la discussion, avec un « Bonjour ! » par exemple ;
- Pour récupérer votre
chat_id
, ouvrez l’adresse suivante dans un navigateur web en remplaçant <MON_TOKEN> par VOTRE TOKEN (cf. étape 6) :
https://api.telegram.org/bot<MON_TOKEN>/getUpdates
- Copiez votre CHAT_ID, ici en rouge, et conservez-le précieusement, il vous servira à recevoir les messages du bot. Si le Chat ID ne s’affiche pas, renvoyez un message quelconque à votre bot et rafraîchissez la page ;
Utiliser un bot Telegram sous Home Assistant
Maintenant que vous avez tout, il ne vous reste plus qu’à intégrer Telegram à Home Assistant. Pour ce faire, il vous faut éditer l’incontournable fichier configuration.yaml
et copier les lignes suivantes en remplaçant les champs par vos informations personnelles :
#Telegram_Bot telegram_bot: - platform: polling api_key: VOTRE_TOKEN allowed_chat_ids: - CHAT_ID # Notifications Telegram notify: - platform: telegram name: NOM_BOT chat_id: CHAT_ID
Vous devriez avoir quelque chose comme la capture ci-dessous. Si tel est le cas, il ne vous reste plus qu’à enregistrer votre fichier configuration.yaml
puis redémarrer Home Assistant. N’oubliez pas ce dernier point.
Envoyer des messages
Il ne reste plus qu’à tester le bot Telegram en lui envoyant un message depuis Home Assistant. Pour ce faire, allez dans Outils de développement > Services et recherchez le service « Telegram bot: Send message ».
Sélectionnez le service pour faire un message de test qui vous permettra de vérifier le bon fonctionnement du bot.
- Entrez un message de test ;
- Cliquez sur Appeler le service.
Si vous avez bien suivi toutes les étapes, vous devriez immédiatement recevoir ce message de test sur Telegram.
Les services du bot Telegram
En ce qui nous concerne, nous utilisons principalement les quatre services ci-dessous. Ils permettent de très simplement recevoir des informations telles que nos relevés de température dans la maison, notre bulletin météo Home Assistant, des captures de nos caméras à intervalles réguliers, des vidéos en cas de personne détectée par nos caméras, ou encore les coordonnées géographiques de nos smartphones.
send_message
: envoyer un message texte ;send_photo
: envoyer une photo (ex.: capture d’une caméra) ;send_video
: envoyer une vidéo (ex.: détection de mouvement enregistrée par une caméra) ;send_location
: vous permet d’envoyer vos coordonnées géographiques.
Ces autres services sont également disponibles :
send_animation
send_voice
send_sticker
send_document
edit_message
edit_caption
edit_replymarkup
answer_callback_query
delete_message
leave_chat
Ça reste quand même très compliqué et pas du tout user-friendly à l’utilisation (je ne parle pas de l’installation du service en lui même avec le token etc).
Ceci dit, le tuto fonctionne, merci
Effectivement, on a vu plus « user friendly », d’où l’idée de faire quelques tutos sur le sujet. Je réfléchis aux suivants, car même j’en suis resté à un usage plutôt basique pour l’instant, il y a pas mal de choses possibles à faire avec.
Bonne journée 🙂
Tout fonctionne très bien. Très bon tuto!
Merci 😉
Merci pour le retour ! 🙂
Quid de la sécurité ? ne serait ce pas mieux sur Signal ?
Tout dépend de la façon dont vous avez sécurisé votre compte et votre instance Home Assistant. Perso, je n’utilise Telegram que pour ça, avec des informations pas vraiment sensibles. Maintenant, si vous êtes agent secret ou que votre vie nécessite une confidentialité poussée à l’extrême, évitez carrément Home Assistant et même plus globalement la domotique… Mais surtout Gmail. 😁
Bonne journée 🙂
Le code à copier dans le yaml n’est pas bon, il y a des balises HTML qui n’ont rien à faire là…
Je n’en vois pas… Effectivement, il ne doit pas y en avoir, c’est donc peut-être un bug lié à l’affichage du site. Pouvez-vous me dire avec quel système et quel navigateur ? Merci d’avance.