C’est bien d’avoir des automatisations qui vous signalent des alertes etc. mais si on ne peut pas les recevoir cela ne sert à rien.
Dans cet article nous allons voir comment se faire notifier des avertissements via Telegram.
Nous verrons aussi comment échanger avec Telegram.
Niveau requis
- Débutant / Intermédiaire / Avancé
Matériels nécessaires / Matériels utilisés / Prérequis
- HA (article rédigé sous la version 0.110)
- Avoir installé File Editor ou être capable d’accéder aux fichiers de configurations
Installation / Configuration.
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 @botfather
puis cliquer dessus.
Cliquer maintenant sur le bouton START
.
Une liste d’options vous sont proposées.
Cliquer sur /newbot
.
Création Bot Telegram et token.
Choisir un nom pour votre bot puis après un nom d’utilisateur pour votre bot.
Votre token apparaît, gardez le bien précieusement.
Vous avez maintenant votre Bot Telegram.
Récupérer votre ID de votre User.
Pour récupérer l’ID
de votre USER
, rechercher @getids bot
puis cliquer sur START
.
id user telegram
Création d’un groupe.
La création d’un groupe vous permettra d’envoyer des messages à tous les utilisateurs de ce groupe.
Cliquer sur le menu de Telegram puis News Group
Sélectionner les users devant appartenir au groupe en ajoutant aussi votre bot.
Sélection des user devant appartenir au groupe
Donnez lui un nom puis CREATE GROUP
.
Récupérer votre ID du groupe en invitant @getids bot
à votre groupe.
Cliquer sur votre Groupe en haut puis Add Member
.
Une fois ajouté vous pouvez voir votre ID.
configuration.yaml.
Dans configuration.yaml
, ajouter ceci.
telegram_bot:
- platform: polling
api_key: !secret telegram_token
allowed_chat_ids:
- !secret id_telegram_antho ## McFly
- !secret id_telegram_anthoclaire ##groupe
notify:
- name: Telegram Groupe
platform: telegram
chat_id: !secret id_telegram_anthoclaire ## Groupe
- name: Telegram McFly
platform: telegram
chat_id: !secret id_telegram_antho ## McFly
Dans secrets.yaml
Ajouter ceci.
telegram_token: 'votre token'
id_telegram_antho: votre id user
id_telegram_anthoclaire: 'votre id groupe'
Tester le bon fonctionnement.
Pour vérifier que tout fonctionne bien, rendez vous dans Outils de développement
, puis services
et remplir comme ceci :
- Service :
notify.telegram_groupe
(ou votre user) - Données de service :
message: votre message
Vous devriez voir sur votre application le message arriver.
Converser avec Telegram.
Une fonction intéressant avec Telegram c’est que l’on peut échanger avec lui.
Pour essayer d’être simple, il faut créer une automatisation de “lancement” avec plusieurs réponse puis créer une automatisation par réponse.
NOTA : Je vais vous partager un fichier type “packages.yaml” pour faciliter l’article, n’oubliez pas de relancer les automatisations après chaque modifications.
Nous allons donc créer un échange avec plusieurs choix. Cet échange sera lancer via le message /HA
envoyé a votre Bot.
Nous lui demanderons de répondre “Pong” lorsque l’on clique sur le bouton “Ping”, de demander la pièce pour laquelle nous souhaitons la température et un bouton pour revenir a zéro.
automation:
## Question de démarrage
- id: commande_multiple_telegram
alias: commande multiple telegram
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/HA' ## commande pour lancer la question
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: 'Que voulez-vous faire' ## Question
data:
keyboard:
- '/ping, /temperature' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
## Réponse au Ping
- id: reponse_ping
alias: reponse au ping par pong
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/ping' ## commande ping
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: 'pong' ## reponse pong
data:
keyboard:
- '/ping, /temperature' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
## Réponse a eteindre
- id: reponse_eteindre
alias: reponse a eteindre
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/eteindre' ## commande eteindre
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: 'A une prochaine' ## reponse eteindre
data:
keyboard: []
## Réponse a Temperature
- id: reponse_temperature
alias: temperature choix des pieces
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/temperature' ## commande temperature
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: 'Quel piece'
data:
keyboard:
- '/ext, /cuisine, /sdb' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
## Réponse a ext
- id: reponse_temperature_ext
alias: temperature ext
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/ext'
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: "la température du exterieur est de {{states('sensor.environnement_exterieur_temperature')}}"
data:
keyboard:
- '/cuisine, /sdb' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
## Réponse a cuisine
- id: reponse_temperature_cuisine
alias: temperature cuisine
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/cuisine'
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: "la température de la cuisine est de {{states('sensor.environnement_cuisine_temperature')}}"
data:
keyboard:
- '/ext, /sdb' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
## Réponse a sdb
- id: reponse_temperature_sdb
alias: temperature sdb
initial_state: true
trigger:
platform: event
event_type: telegram_command
event_data:
command: '/sdb'
action:
- service: notify.telegram_mcfly ## modifier par le votre
data:
message: "la température de la salle de bain est de {{states('sensor.environnement_salle_de_bain_temperature')}}"
data:
keyboard:
- '/ext, /cuisine' ## Choix 1ier ligne
- '/eteindre' ## Choix 2ieme ligne
Configuration, contrôle du serveur, recharger les automations.
Conclusion.
Nous venons de voir comment intégrer Telegram à votre domotique Home Assistant et nous pouvons même converser avec lui.
A vous maintenant de vous créer des notifications en fonction de vos désirs.
Une question, un problème
Annexes
Sources
- Home Assistant (Officiel) Notify, Telegram,
- Telegram Bot (EN),