In Verbindung mit meiner HomeMatic nutze ich den Push-Dienst Telegram, um mich zeitnah über Statusänderungen informieren zu lassen. Telegram hat den Vorteil, dass es nahezu für alle Betriebssysteme entsprechende Clients gibt. Dabei funktioniert Telegram im Wesentlichen wie z.B. WhatsApp, bietet aber zusätzlich so genannte Bots. Bots sind quasi virtuelle Teilnehmer, die über API-Keys angesteuert werden können, um Push-Nachrichten abzusenden. Dabei kann Telegram nicht nur mit Texten, sondern auch mit angehängten Dateien, wie z.B. Bildern, Tönen und Videos, umgehen.
Das Einrichten eines Bots gestaltet sich recht einfach.
Sofern man noch keinen Telegram-Account hat, läd man sich die Telegram-App oder das Telegram-Programm für sein OS herunter, gibt eine Telefonnummer an, an die die SMS mit dem Freischaltcode geschickt werden soll und schaltet sich einen Account frei.
In der InApp-Suche gibt man dann einfach BotFather ein und startet anschließend mit
einen Chat mit ihm.
Über
richtet man dann den Bot ein. Dazu fragt der Botfather nach einem Namen für den Bot (z.B. "DoorPi") und anschließend nach einem Usernamen, der immer auf "bot" oder "Bot" enden muss (z.B. "MeinDoorPiBot"). Das war's. Nun ist der Bot eingerichtet und man erhält vom BotFather eine Nachricht mit dem API-Schlüssel des Bots und mit einem Link (z.B. "telegram.me/MeinDoorPiBot").
Damit der Bot Einem eine Nachricht schicken kann, muss man noch die chat_id des Empfängers, also von sich selbst, herausfinden. Dazu geht man zunächst in der App auf den vom BotFather gesenden Link, gibt entweder "/start" ein oder drückt unten auf den Start-Button und sendet eine kleine Nachricht an ihn (z.B. "Hallo Bot"). Im Anschluss startet man einen Browser und gibt folgendes ein:
Achtung, die "<>" dienen lediglich der optischen Abgrenzung und sind folglich wegzulassen. Unter Linux wäre die Eingabe übrigens
Nun sucht man in dem angezeigten String nach der ID des Chats. Diese steht in der Regel hinter "chat"; {"id":
Soweit zu den Vorbereitungen.
Um sich nun zum Beispiel von DoorPi eine Push-Nachricht schicken zu lassen, wenn dieser neu startet, erstellt man sich z.B. in dem Verzeichnis "/usr/local/etc/DoorPi/scripts" ein kleines Shell-Skript, nennen wir es mal "Startmeldung.sh", mit folgendem Inhalt:
curl -s -k "https://api.telegram.org/bot<API-Schlüssel des Bots>/sendMessage" -d text="DoorPi gestartet" -d chat_id=<chatid>
wobei "<API-Schlüssel des Bots>" der obige API-Key des Bots und "<chatid>" die ID des Chats sind.
Beispiel:
curl -s -k "https://api.telegram.org/bot12345678:SLSDJRtuDRTx39dSRe43455sSDFsiasdfS/sendMessage" -d text="DoorPi gestartet" -d chat_id=987654321
Dem Shell-Skript abschließend noch mit
die entsprechenden Rechte zum Ausführen zuweisen.
Um das Shellskript beim Start von DoorPi auszuführen, wird in der doorpi.ini folgender Eintrag ergänzt:
Das war's. Viel Spaß beim Ausprobieren.
Gruß,
Thorsten