[ARCHIVE] Les notifications via Telegram

licence

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.

BotFather Telegram

Lancer le BotFather Telegram

Une liste d’options vous sont proposées.

Cliquer sur /newbot.

Optons Bot Telegram

Bot Telegram nom du bot

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.

GetIDs Bot TelegramGet IDs Telegram

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.

Ajouter un groupe telegram

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.

Nom du groupe

Cliquer sur votre Groupe en haut puis Add Member.

Ajouter IdBot au groupes

Une fois ajouté vous pouvez voir votre ID.

Groupe TelegramGroupe Telegram

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

Besoin d'aide ? Cliquez ici !

Annexes

Sources

Suivi des modifications

  • 03/02/2021 : Passage en article officiel (:hacf_tuto: ) @Clemalex
  • 22/05/2020 : création @McFly
3 « J'aime »

8 messages ont été scindés en un nouveau sujet : Commentaires Article Notifications Telegram