Conflit Telegram avec 2 poste distants Home Assistant

Bonjour à tous

J’ai installé Home assistant dans une maison de famille distante de 500 km alors que j’ai déjà un Home Assistant à mon domicile.
J’ai configuré Telegram de la même façon sur les 2 Home Assistant.

# Configuration Telegram
telegram_bot:
  - platform: polling
    api_key: !secret telegram_token
    allowed_chat_ids: !secret id_telegram_maison

# Configuration notification
notify:
  - name: telegram_maison
    platform: telegram
    chat_id: !secret id_telegram_maison

Depuis, un message apparait dans les logs :

ERROR (MainThread) [homeassistant.components.telegram_bot.polling] Conflict: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running

J’ai compris que le conflit vient du fait que j’utilise la même configuration.
Comment dois je procéder ?
Créer un nouveau Bot et un nouvel chat_id ?
Créer simplement un nouveau Bot ?
Créer simplement un nouvel chat_id ?
Je n’utilise Telegram que pour recevoir les messages de Home Assistant
Mon but est de recevoir les messages envoyés par les 2 Home Assistant sur mon seul téléphone.
Je vous remercie par avance

System Information

version core-2024.11.3
installation_type Home Assistant OS

python_version | 3.12.4
os_name | Linux
os_version | 6.6.54-haos
arch | x86_64
timezone | Europe/Paris
config_dir | /config

Bonjour @Sim61fr,

En effet l’API de Telegram n’autorise qu’un seul client, donc qu’une seule instance de HA par bot Telegram.

Pour régler le problème, tu peux créer un second bot pour ta maison de famille.
Après création et paramétrage du bot, rien ne t’empêche de créer un groupe dans Telegram avec tes 2 bots et renseigner ce groupe dans HA si tu ne souhaites avoir qu’un seul fil de discussion pour les 2 maisons. Tu aurais donc 2 bots distincts + un chat ID de groupe commum dans cet exemple.

Donc pour résumer :

  • 2 Bots Telegram
  • 1 chat par bot ou 1 chat de groupe pour les 2

Bonsoir,

Le sujet m’interpelle puisque même si tout fonctionne j’ai des messages d’erreur dans un cas.

J’utilise Telegram depuis Home Assistant pour envoyer message et snapshot caméra:

Cas Home Assistant
configuration.yaml :

telegram_bot:
  - platform: polling
    api_key: !secret telegram_token_ha
    allowed_chat_ids:
      - !secret id_telegram_ha
      
notify:
  - name: Telegram HA
    platform: telegram
    chat_id: !secret id_telegram_ha

secret.yaml:

#BobAutomatisation
telegram_token_ha: '5xxxxxxxxx:AAHIY0NsseV-VXjAR5y_mhT6IoD0DZfR5tw'
id_telegram_ha: 5xxxxxxxx6

Là tout se passe très bien, je reçois texte, infos capteurs, photos sur mon Bot BobAutomatisation

Cas Node Red

Node Red

Bo-Name : BobMassimo_bot
Token : 5xxxxxxxxx:AAHhoa26rmDc1gaHP8Le_dT7xHUH4lz4G8A
Users : Brunoxxxxxxxxx
Chat IDs : 5xxxxxxxx6
Polling Interval: 300

Token différent, Chat IDs identique à celui de HA.

Mais j’ai aussi un flux assez conséquent dans Node Red que j’avais fait avant les automatisations HA:

  1. Envoi de photos
    image

image
@krull… oui souvenir d’Italie :shushing_face:

Détail du bot en cliquant sur le crayon / pas de ChatsIds… :
image

  1. Partie action, Allumer Eteindre des lumières
    image

image

  1. Envoi de messages
    image

image

Et le message d’erreur Node Red:

26/11/2024 13:27:56noeud: 73fb3779fd8121ec
msg : string[112]
"ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"

Cependant tout fonctionne bien.

Est-ce la conf des différents noeuds qui pose souci, le fait d’avoir qu’un seul Chat IDs ?
Je recois bien tout ce que j’attends sur deux « fil de discution » distinct.

Si vous avez une idée je pourrais supprimer quelques messages dans les logs de Node red.

Merci
Bob

Bonjour @Bob,

J’utilisais également Node-Red en même temps que HA pour gérer 2 bots Telegram distincts, mais depuis j’ai tout rapatrié sur HA.
Je n’utilise donc plus de bot côté Node-Red mais de mémoire j’utilisais des chats ID en commun entre Node-Red et HA => pas d’erreur.

Est-ce que tu as bien qu’un seul bot dans le menu de configuration à droite ?

Config
(pour info c’est à cet endroit là, moi je ne l’ai plus donc il n’apparaît plus)

Merci pour ta réponse.
J’ai créé un nouveau bot tout en gardant le même chat_id.
Je n’ai plus d’erreur.

Merci

1 « J'aime »

Bonjour,
j’ai en effet deux bot (ID et Token identiques pour les 2)
image

Un pour l’envoi des photos (6) :
image

Un autre pour les noeuds notify / switch (3).

Je ne vois pas pourquoi il fait une distinction entre les noeuds !

Bob

Bonjour @Bob,

Et bien je pense que le problème vient de là, je n’utilise pas assez Node-Red pour te dire comment régler ça :confused:… mais ça doit sans doute être assez simple à régler pour des connaisseurs.

Quand tu vas dans ta palette de nœuds, tu n’en aurais pas 2 qui gèrent ton bot Telegram ? Et qui ferait donc conflit entre eux ?
Dans ce menu là :

Ou peut-être est-ce simplement un problème de configuration au sein même des nœuds directement mais je ne saurai t’aider davantage.

Merci @Integra

Si je désactive:

Je n’ai plus les Warning:

28 Nov 18:28:26 - [warn] [telegrambot-config:73fb3779fd8121ec] ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
28 Nov 18:28:26 - [warn] [telegrambot-config:73fb3779fd8121ec] Unknown error. Trying again.
Unhandled rejection Error: ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
    at /config/node_modules/node-telegram-bot-api/src/telegram.js:316:15
    at tryCatcher (/config/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/config/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/config/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/config/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/config/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/config/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/config/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/config/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/config/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:476:21)
Unhandled rejection Error: ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
    at /config/node_modules/node-telegram-bot-api/src/telegram.js:316:15
    at tryCatcher (/config/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/config/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/config/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/config/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/config/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/config/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/config/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/config/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/config/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (node:internal/timers:476:21)

Si il faut un Token par type de nœud, j’avoue avoir un peu la flemme de le faire alors que tout fonctionne comme ça.

Si quelqu’un à résolu, je prends, sinon je verrai ça plus tard :wink:
Bob