Nachrichten zum Telegram Bot senden

V1.7 20.2.2024

Voraussetzungen

  • Ein PC mit Internetverbindung
  • Ein Raspberry Pi mit Internetverbindung
  • Ein Telegram-Account
  • Ein Telegram-Bot (erstellt mit @BotFather)
  • Ihr Bot-Token und die Chat-ID des Empfängers
  • Am Raspberry ist Python 3 und das Modul requests installiert

leere oder fertige gelötete Platine, modifiziertes RAK18001, Raspi OS Image anfragen

Telegram Bot erstellen

  • Öffnen sie Telegram und suchen den @BotFather und starten sie den Chat mit @BotFather
  • Erstellen sie einen neuen Bot indem sie /newbot in den Chat schreiben und den Anweisungen folgen

    Name des neuen BotChatGruppe zB. RakNode
    Name des neuen Bots zB. RakNode_bot (der Name muss mit _bot enden)
  • Nun wird der Bot erstellt und man erhält einen Token (eine Zahlenkolonne und eine Zeichenfolge die mit einem : getrennt sind)
  • Speichern sie das Token ab! Es wird für die Kommunikation mit Telegram benötigt

Chat-ID ermitteln

  • Schreiben sie ihrem neuen Bot eine Nachricht. Den Telegram Bot Link finden sie in der letzten Nachricht von @BotFather. Auf den Bot_link klicken und dann auf Start.
  • Am Besten sie fügen den Bot in einen eigenen Ordner um ihn leichter zu finden. Dazu klicken sie mit der rechten Maustaste den Bot in der Chatliste an und fügen sie ihn zu einem Ordner hinzu, oder erstellen sie einen neuen Ordner.
  • Schreiben sie jetzt eine Nachricht zB. „Test“
  • Rufen in einem Browser die folgende URL auf (ersetzen sie BOT_TOKEN durch ihr Token):

https://api.telegram.org/botBOT_TOKEN/getUpdates

Das sollten sie als Antwort erhalten: antwort{„ok“:true,“result“:[]}
Dann bedeutet das: Ihr Bot ist vorhanden, aber er liest keine Nachrichten.

Gruppennachrichten erlauben

  • Gehen sie zu @BotFather, gib /mybots ein, wählen sie ihren soeben erstellten Bot und dann „Bot Settings“ und „Group Privacy“.
  • Klicke sie auf „Turn Off“
  • Schicken sie dem Bot erneut eine Nachricht und rufen die URL noch einmal auf
  • https://api.telegram.org/botBOT_TOKEN/getUpdates

    Nun sollte folgende Antwort erscheinen:

    {„ok“:true,“result“:[{„update_id“:…………,
    „message“:{„message_id“:x,“from“:{„id“IHRE_CHAT_ID usw.]}
  • Suchen sie in der Antwort nach {„id“: IHRE_CHAT_ID}. Das ist ihre Chat-ID.
  • Speichern sie die Chat ID ab! Sie wird für die Kommunikation mit Telegram benötigt.

Python-Skript erstellen am Raspberry

Über Putty in den Raspi einloggen (Anleitung siehe hier)

Im Terminalfenster eintippen

Nach abgeschlossener Installation folgendes eingeben

Wenn diese Installation abgeschlossen ist, diese Anweisung eintippen

Folgenden Text einfügen und BOT_TOKEN sowie IHRE_CHAT_ID ersetzen. Verwenden sie die Cursorsteuertasten um den Cursor an die entsprechende Stelle zu setzen.

Speichern sie mit Strg+X, dann Y, und bestätigen sie mit Enter.

Nun führen sie folgenden Befehl aus

Danch diesen Befehl

Wählen sie ggf. Option 1

Fügen Sie folgenden Text ein am Ende der Datei ein (mit Cursorsteuertasten nach unten scrollen).
Entfernen sie ggf. die vorhandene Zeile die mit @reboot beginnt und ersetzen sie diese durch:
Achtung: Voraussetzung ist die komplette Installation nach dieser Anleitung: Installation und Einrichtung

Speichern sie mit Strg+X, dann Y, und bestätigen sie mit Enter.

Nun wird nach dem erfolgreichen Neustart des Raspi die IP Adresse an Telegram geschickt, dann die IP Adresse via UDP an das Smartphone geschickt, dann der Timer gestartet der den Raspi nach 30 Minuten automatisch herunterfährt und abschaltet.

Nun rebooten und die Nachricht in Telegram empfangen 🙂

Der Raspberry startet nun neu und sendet seine IP Adresse an den Telegram Bot. Prüfen sie in Telegram nach ob die IP Adresse übereinstimmt.

So sollte die empfangene Nachricht aussehen

Für Nodes die permanenten Internetzugang haben (zB. einen mobilen LTE Router mit Akku), können die Scripte ~/Desktop/scripte/ausschalten.py und /home/pi/shutdown_timer.sh (Anleitung hier) durch folgende Scripte ersetzt werden:

~/Desktop/scripte/ausschalten.py
BOT_TOKEN und DEINE_CHAT_ID ersetzen

/home/pi/shutdown_timer.sh
BOT_TOKEN und DEINE_CHAT_ID ersetzen

leere oder fertige gelötete Platine, modifiziertes RAK18001, Raspi OS Image anfragen