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.
- 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.
- 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.
- 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:
- Starte die Kommunikation mit dem Bot, indem Du auf den Link aus obiger Vollzugsmeldung klickst.
- Schreibe dem Bot irgendetwas, bspw „Hallo„
- 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. - 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:
- Starte die Kommunikation mit dem Bot, indem Du auf den Link aus obiger Vollzugsmeldung klickst.
{"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
- Installiere in NodeRED den Telegram-Node „node-red-contrib-telegrambot“ über „Manage palette“.
- 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.
- Möchtest Du ihn gleich testen, dann lege einen Inject-Node und einen Function-Node an und verbinde sie.
- 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' } };
Nach dem Deploy kannst Du mit dem Betätigen des Triggers (Inject-Node) eine Nachricht absetzen.