Hausautomation Telegram

Hausautomation verschickt Statusmeldung per Telegram

Meine Hausautomation verschickt Statusmeldungen per Telegram. Natürlich erfolgt dies digital auf ein Smartphone. Telegram ist ein kostenloser, Cloud-basierter Instant-Messaging-Dienst zur Nutzung auf Smartphones, Tablets und PCs. Benutzer von Telegram können Textnachrichten, Fotos, Videos und Dokumente austauschen. Die Nachrichten werden bei diesem Messaging-Dienst verschlüsselt und können einfach per API Aufruf versendet werden. Hierbei handelt es sich um eine Programmierschnittstelle, genauer Schnittstelle zur Anwendungsprogrammierung. Häufig nur kurz API genannt (englisch application programming interface). Somit lässt sich per API die Telegram Funktionen in die Hausautomation mit der Homematic Zentrale CCU2 einbinden. In dem folgenden Blog möchte ich Euch dies vorstellen.

Einrichten der Telegram App

Die Applikation Telegram ist auf jeder Plattform nutzbar, also für Andorid, iOS aber auch für den PC.

Das Einrichten der App erfolgt auf dem Smartphone. Dazu sind folgende Schritte notwendig:

  • Zuerst die App Telegram auf dem Smartphone installieren. Wenn dies erfolgt ist …
  • Klickt oben rechts auf das Lupensymbol und sucht nach dem Kontakt BotFather. Hierüber kann der Bot zum empfangen der Nachrichten eingerichtet werden
  • Starte eine Konversation mit BotFather mit /start. Du erhältst als Antwort eine Übersicht der Befehle
  • Lege einen neuen Bot an mit /newbot. Hier die Bilder zur Einrichtung
  • BotFather fragt Dich nach den neuen Namen deines Bots. Einfach mit einem Namen antworten. Nicht jeder Bot Name ist noch frei. Lass Dir einen neuen Namen einfallen. 
  • Nun wird noch nach einem Benutzernamen gefragt. Ist der Benutzername / Username richti
  • antwortet der bot mit dem API Key, bzw. API token ( <API_KEY> abgekürzt)
  • Mit dem Befehl /mybots erhalten wir eine Übersicht des Bots. Mit Edit Botppic kann ein Foto als Symbolbild hochgeladen werden.
  • Jetzt wird noch eine <CHAT_ID> benötigt, dazu vorzugsweise am Rechner über web.telegram.org einloggen und nach dem Bot suchen. Dafür wird der Benutzername des Bots verwendet. Wenn der Bot gefunden ist, müsst ihr mit einer Konversation starten indem ihr dem Bot irgendetwas schreibt. Im Browser findet ihr jetzt einen URL Eintag mit dem folgenden Format: https://web.telegram.org/#/im?p=u<CHAT_ID>_1309xxxxxxxxx73813 . Zwischen dem „u“ und dem „_“ müsst ihr diese Zahlenkolonne bitte notieren.
  • Sollte es sich bei dem Bot um einen Gruppen Chat handeln, so sieht die Browser URL wie folgt aus:  https://web.telegram.org/#/im?p=g<CHAT_ID> .  Merke Dir bitte die Zahlen nach dem „g“. Das ist Deine <CHAT_ID>.
  • Die <CHAT_ID> erhaltet ihr auch, wenn der folgende Aufruf in dem URL Feld des Browsers eingebt: https://api.telegram.org/bot<API_KEY>/getUpdates  In dem angezeigten Ergebnis wird die Chat-ID angezeigt.

Homematic CCU2 vorbereiten

Um die Benachrichtigungsoption mit der Homematic CCU2 zu ermöglichen, muss dort die zusätzliche Software CUx Daemon installiert werden. Bitte die Version für die CCU-2 herunterladen und über die Web GUI der Homematic unter Zusatzsoftware installieren. Die CUx wird benötigt um die Funktion „CUxD.CUX2801001:1.CMD_EXEC“ nutzen zu können. Hierüber können weitere Systeme an die Homematic CCU2 angelernt werden.

Ist die Software erfolgreich installiert, erscheint unter dem Menü „Systemsteuerung“ ein neuer Button mit dem Namen „CUx-Daemon“. Beim Drücken des Button erscheint ein neues Fenster zu CUx-Deamon und gelangt über die Funktion „Geräte“ oben rechts, auf die Seite um neue Geräte einzurichten. Auf der linken Seite läßt sich das  Gerät „(28) System“ im Pull-down Menü auswählen. Wähle die Funktion „EXEC“ für das Gerät aus.

Im Geräte-Posteingang der CCU2 erscheint das Gerät.  Der Kanal 1 dient nun für die Telegram Push Funktion.

CCU2 Script zum senden von Statusmeldungen

Wir haben nun alle Voraussetzungen geschaffen um uns mit dem Versenden der Statusmeldungen per Telegram zu befassen. Hierzu benötigen wir nun ein kleines Script das wir unter Programme in der CCU2 anlegen.

Wir fügen das folgende Scipt ein. Hierbei müssen wir den <API_KEY> und die <CHAT_ID> von unserer Telegram App eintragen.

Hier das Script zum Kopieren. Bitte den<API_Key> und <CHAT_ID> einfügen:

! TELEGRAM-FRAMEWORK

object o = dom.GetObject („Telegram“);
string sr = o.Value();

string s_cmd = „wget –no-check-certificate –quiet -O /dev/null \“https://api.telegram.org/bot<API_KEY>/sendMessage?chat_id=<CHAT_ID>&text=“ # sr.ToUTF8().UriEncode() # „\““;

dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State (s_cmd);
o.State („“);

object o = dom.GetObject („Push“);
o.State (false);

! Ende des Scripts

Dieses Script liest die System-variable PUSH und Telegram aus. In der CCU2 ist es notwendig diese unter Einstellungen => Systemvariable anzulegen. Die Variable Telegram enthält die Nachricht und die Variable PUSH wird als Logikwert angelegt. Das Script wird ausgelöst wenn die Variable den Wert WAHR enthält. Somit ist es notwendig, über ein weiteres Script die System-variable Telegram mit einem Text zu versehen. Wie ich dies realisiere findest Du in einem weiteren Blog.


Du befindest Dich auf meinem Blog: Hausautomation verschickt Statusmeldung per Telegram

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert