NodeRED: Einrichten eines Telegram-Bots

Redmatic: Einrichten des Telegrambots

Wenn dein Smart Home Dich über verschiedene Ereignisse benachrichtigen soll, ist es eine Möglichkeit, die Nachricht an dein Smartphone per Messenger zu senden. Für NodeRED gibt es Nodes für verschiedene Messenger. Ich zeige Dir in diesem Artikel, wie Du den Node für Telegram einrichtest.

Der Telegram-Bot

Telegram gibt es für viele Plattformen und hat eine schöne Bot-Schnittstelle. Mit dieser lassen sich Nachrichten manipulieren, Buttons und auch interaktive Dialoge abbilden. Der Telegram-Bot ist ein spezielles Konto, welches keine eigene Telefonnummer zur Einrichtung benötigt. Er bildet die Schnittstelle zwischen NodeRED und den Telegram-Servern.

Erzeugen des Bot-Kontos

Als Voraussetzung für das Erzeugen eines Bot-Kontos benötigst du ein bereits lauffähiges Telegram-Konto.

  1. Suche und verbinde Dich in deiner Telegram-App mit dem Bot „BotFather„. Achte unbedingt auf die korrekte Schreibweise, da es einige Konten mit ähnlichem Namen gibt.
Telegram Bothfather suchen
Suche des BotFathers
  1. Erzeuge einen Bot, indem Du dem Bot „BotFather“ die Nachricht „/newbot“ sendest.
    Im Dialog vergibst Du dann noch eine Namen, wie er dir später angezeigt wird, und einen Nutzernamen. Letzterer muss auf „bot“ enden.
    Das erhaltene API-Token (im Bild unten verpixelt und grün umrahmt) benötigst du im nächsten Schritt für die Konfiguration des Telegram-Nodes. Bewahre dieses Token sicher auf, bspw. in KeePass. Damit kann dein Bot kontrolliert und missbraucht werden.
API-Token herausfinden
Ermitteln des API-Tokens
  1. Jetzt wird es ein wenig knifflig. Damit der Bot weiß, wohin er senden soll, verwendet er eine ChatId. Diese findet man heraus, indem man die Kommunikation des Bots verfolgt:
    1. Starte die Kommunikation mit dem Bot, indem Du auf den Link aus obiger Vollzugsmeldung klickst.
    2. Schreibe dem Bot irgendetwas, bspw „Hallo
    3. Rufe im Browser die Seite https://api.telegram.org/bot<HTTP API-Token>/getUpdates auf. Die Zeichenkette „<HTTP API-Token>“ ersetzt Du mit dem API-Token, welchen du im vorherigen Schritt erhalten hast.
    4. Du erhältst im Browser eine Zeichenkette (JSON-String), welche neben der eben geschickten Nachricht auch die Meta-Daten der Kommunikation enthält. Suche dort die Zeichenkette "id":, dahinter folgt die gesuchte ChatId, eine Zahl.
      anonymisierter Auszug:
{"ok":true,"result":[{"update_id":5_________5, "message":{"message_id":2,"from":{"id":1_________0,"is_bot":false,"first_name":"Andr\u00e9","username":"n/a","language_code":"de"},"chat":{"id":1_________0,"first_name":"Andr\u00e9","username":"n/a","type":"private"},"date":1_________7,"text":"Hi"}}]}

Installation und Einrichtung des Telegram-Nodes

  1. Installiere in NodeRED den Telegram-Node „node-red-contrib-telegrambot“ über „Manage palette“.
Installation und Einrichtung des Telegram-Nodes
  1. Konfiguriere dann den Bot. Platziere dazu den Node „Telegram sender“ und füge in den Einstellungen einen neuen Bot hinzu. Hier kommt das API-Token, welches Du oben erhalten hast, im Feld „Token“ zum Einsatz. Nach Vergabe eines Namens und dem Speichern ist der Telegram-Node bereits einsatzbereit.
Einrichten des Telegram-Nodes mit dem vorher ermittelten API-Token
  1. Möchtest Du ihn gleich testen, dann lege einen Inject-Node und einen Function-Node an und verbinde sie.
  2. Fülle den Function-Node mit folgender Zeile, in der Du die ChatId einträgst (ohne spitze Klammern), die Du im Absatz „Erzeugen des Bot-Kontos“ erhalten hast:
return { payload: { chatId: <die ermittelte ChatId>, type: 'message', content: 'mein text' } };
NodeRED: Test des Telegram-Nodes
Testen des Telegram-Nodes mit einem einfachen Function-Node


Nach dem Deploy kannst Du mit dem Betätigen des Triggers (Inject-Node) eine Nachricht absetzen.

Absetzen der eben erstellten Nachricht

4.4/5 - (7 votes) // Hilf durch deine Bewertung mit, diesen Blog zu verbessern!
Abonnieren
Benachrichtige mich bei
0 Kommentare
Älteste
Neueste Beliebteste
Inline Feedbacks
Alle Kommentare