Im Rahmen der Entwicklung unseres SmartHome-Systems
kam gelegentlich der Wunsch auf, über gewisse Vorgänge eine Benachrichtung auf
das Handy zu erhalten. Da wir für die Steuerung und Überwachung unserer
Garagetore bereits einen Würfel von
Homee in Betrieb haben, wurde das dort vorhandene
Konzept der Push-Benachrichtigung in Homeegrammen benutzt. Leider musste die
Erfahrung gemacht werden, dass diese Push-Benachrichtigungen via E-Mail zwar
gut funktionieren, die Push-Benachrichtungen aufs Handy jedoch ärgerlicherweise
oft nicht ankommen. :-(
Nun wurde eine andere Methode gefunden, um von einem Linux-System (in unserem
Fall einem Set von Raspberry Pis) Nachrichten auf das Mobiltelephon zu
verschicken.
Einrichten der Benachrichtigung auf ein Handy mittels Telegram
Hier folgt eine Schritt-für-Schritt-Anleitung:
- Auf dem Handy die App 'Telegram' installieren - Telegram-App starten - Lupe -> BotFather eingeben - BotFather - Botfatherbot wählen - STARTEN klicken - /newbot eingeben - Name wählen: (z.B.) XY-Smarthome - Username wählen: (z.B.) XYSmarthomeBot --> BOT_TOKEN: 12345:AbCdEfGhIjKlMn --> Diesen Token notieren ! BOT_TOKEN="12345:AbCdEfGhIjKlMn" - Telegram-App und Lupe: suchen nach XYSmarthomeBot - STARTEN - Nachricht (z.B. Test) senden - Web-Browser öffnen mit diesem Link: https://api.telegram.org/botBOT_TOKEN/getUpdates --> Ev. nochmals Nachricht (z.B. Test) senden und bei obiger URL reload klicken --> chat-id suchen: z.B. 1234567890 Also: CHAT_ID="1234567890" Nun kann eine Mitteilung wie folgt vom Linux-System an das Handy geschickt werden: Mitteilung: MESSAGE="Diese Mitteilung an das Handy schicken" curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" -d "chat_id=$CHAT_ID" -d "text=$MESSAGE"Nun bauen wir ein Script namens send_telegram.sh, welches wir anschliessend unter dem Namen send_telegram in das Directory /usr/local/bin kopieren und die Berechtigungen anpassen.
Kopieren zu /usr/local/bin und Anpassen der Berechtigungen:#!/bin/bash # send_telegram.sh 15Feb2025/uk # if [ $# -eq 0 ]; then echo "Kein Argument gefunden..." echo 'Usage: send_telegram "Zu verschickende Mitteilung"' exit 1 fi # MESSAGE="$1" # BOT_TOKEN="12345:AbCdEfGhIjKlMn" CHAT_ID="123456789" # curl --fail --silent --show-error --no-sessionid -X POST \ "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \ -d "chat_id=$CHAT_ID" \ -d "text=$MESSAGE" \ > /dev/null #
Nun können wir im Linux-System von jedem Verzeichnis aus eine Benachrichtigung an das Handy wie folgt verschicken:
send_telegram "Hello World!"
Bis jetzt funktioniert dies sehr zuverlässig und zudem extrem schnell! :-)