So sendet deine CCU dir Telegram Nachrichten auf’s Smartphone

Im heutigen Beitrag zeige ich euch, wie ihr CCU Nachrichten über Telegram senden könnt. Anhand eines Beispiels werden wir Schritt für Schritt die Einrichtung durchführen. Angefangen von der Einrichtung des Chatbots, über die Konfiguration des Skripts, bis hin zum finalen Programm in der CCU.

Einrichtung des Chatbots

Zuerst müsst ihr den Telegram Chatbot erstellen. Dazu öffnet ihr die Telegram App auf eurem Smartphone oder die Desktopversion auf dem Rechner. Nachdem das Chatfenster geöffnet wurde, müsst ihr über die Suchfunktion nach „BotFather“ suchen. ACHTUNG: In eurer Suche werden mehre Einträge angezeigt werden, jedoch ist ausschließlich der Kontakt mit dem blauen Hacken der richtige.

Insofern ihr noch nie einen Bot erstellt habt, müsst ihr den Chat mit einem klick auf „Start“ beginnen. Anschließend werden euch automatisch die möglichen Funktionen angezeigt. Mit einem Klick auf /newbot, alternativ könntet ihr den Befehl auch als Nachricht eintippen und absenden, werdet ihr nachdem Namen eures Bots gefragt. Der Name ist im Nachgang jederzeit veränderbar, also müsst ihr den Bot bei Schreibfehlern nicht löschen. Nachdem ihr den Namen per Nachricht abgesendet habt, werdet ihr aufgefordert einen Usernamen einzugeben. Dieser ist wiederum nicht mehr veränderbar und muss auf dem Wort Bot ende. Anhand dieses Namens könnt ihr später euren Bot eindeutig identifizieren.

Es kann vorkommen, dass euer Username bereits belegt ist, entsprechend müsst ihr einen neuen auswählen, solange bis ein freier Name dabei ist. Abschließend erhaltet ihr eine Betsätigung, dass der Bot angelegt wurde und dem Bot-Token. Das Token solltet ihr auf keinen Fall an dritte weiter geben, da mithilfe dieses Tokens alles mit dem Bot gemacht werden kann. Sollte es dennoch vorkommen, dass das Token in falsche Hände geraten ist, könnt ihr euch ein neues generieren lassen.

Vorbereitung des Skripts

Im Anschluss müssen wir das Skript vorbereiten. Dazu benötigen wir das zuvor erhaltene Token des Bots, die eigene ChatID und den Text der eigentlichen Nachricht.

Die ChatID wird mithilfe des folgenden Links ermittelt:

https://api.telegram.org/bot<Token des Bots>/getUpdates

Dabei müsst ihr den Token des Bots in den Link einfügen. Nachdem ihr die Seite in einem Browser eurer Wahl geöffnet habt, muss eine Nachricht von eurem Gerät in den Chatbot gesendet werden. Nach einem erneuten Laden des Links wird euch die neunstellige ChatID angezeigt. Dieser Schritt ist beliebig oft zu wiederholen, um die ChatIDs der Personen zu ermitteln, welche die Nachrichten über den Bot erhalten sollen.

Nachdem wir alle benötigten Informationen zusammen haben, müsst ihr diese nur noch in das folgende Skripte einbauen. Dabei ist zu beachten, das die Skripte von CCU/CCU2 und CCU3 sich unterscheiden.

Skript für die CCU3

string msg = "Deine Nachricht";
string TOKEN = "Token des Bots";
string CHATID = "Deine ChatID";
string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&text='"#MESSAGE);

Skript für die CCU und CCU2

string MESSAGE = "Deine Nachricht";
string TOKEN = "Token des Bots";
string CHATID = "Deine ChatID";
string lErsetzen = "Ü;Ä;Ö;ü;ä;ö;ß;°; 2 ; 3 ; ;";
string lErsetzenDurch = "%C3%9C;%C3%84;%C3%96;%C3%BC;%C3%A4;%C3%B6;%C3%9F;%C2%B0;%C2%B2;%C2%B3;%20;";
string lTextNeu = MESSAGE;
integer lPos = 0;
integer lIndex = 0;
string lSplit = "";
boolean lLoop = true;
foreach (lSplit, lErsetzen.Split(";"))
{
  lLoop = true;
  while (lLoop)
  {
    lPos = lTextNeu.Find(lSplit);
    if (lPos == -1)
    {
      lLoop = false;
    }
    else
    {
      lTextNeu = lTextNeu.Substr(0,lPos) #
      lErsetzenDurch.StrValueByIndex(";",lIndex) #
      lTextNeu.Substr(lPos + lSplit.Length() , ((lTextNeu.Length() - lPos) - lSplit.Length()) );
    }
  }
  lIndex = lIndex + 1;
}
string stdout;string stderr;
system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot"#TOKEN#"/sendMessage?chat_id="#CHATID#"&text="#lTextNeu, &stdout, &stderr);

Die oben aufgeführten Skripte habe ich im ELV Forum gefunden und entsprechend angepasst.

Erstellen des Programms

Nachdem ihr das Skript entsprechend angepasst habt, müsst ihr nun ein Programm erstellen. Dabei geht ihr in der CCU wie gewohnt auf „Programme und Verknüpfungen“ –> „Programme & Zentralverknüpfungen“ und erstellt über den Button „Neu“ ein neues Programm. Anschließend müsst ihr in der Wenn-Bedingung einen Auslöser festlegen. In meinem Fall war dies der verdeckte Fenster- und Türsensor. Dabei wollte ich benachrichtig werden, wenn der Status vom geschlossen sich ändert.

In der Dann-Aktivität wählt ihr jetzt Skript aus und klickt auf die drei Punkte, neben dem ersten Dropdownfeld. Das zuvor vorbereitet Skript inkl. eurer Nachricht kopiert ihr einfach in die geöffnete Maske und speichert dieses. Danach sollte euer Programm ähnlich zum folgenden Screenshot sein:

Programm Telegram Nachrichten

Sollen mehrere Personen Nachrichten über den Chatbot erhalten, müsst ihr für jede Person ein extra Skript einfügen.

Sobald ihr das Programm gespeichert habt und euer Trigger ausgelöst wird, erhaltet ihr die CCU Nachrichten über Telegram. Natürlich könnt ihr das Skript auch in etlichen weiteren Anwendungsfällen verwenden.

Video

Die beschriebenen Konfigurationsschritte könnt ihr natürlich auch im folgenden Video anschauen.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

2 comments

  1. Vielen Dank für das Tutorial. Hat wunderbar funktioniert. Mich würde nur noch interessieren wie ich in die Nachrichten auch Emojis packen kann.

    • Hi Flo,

      meines Wissens funktionieren die Emojis leider nicht wenn man das Skript direkt in der CCU verwendet. Ich habe es zwar selbst noch nie getestet, aber angeblich sollen Emojis mithilfe des ioBrokers und Blockly oder Javascript funktionieren. Sobald ich das Thema einmal getestet habe, kann ich dir gerne bescheid geben.

Schreibe einen Kommentar

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