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.

Sie sehen gerade einen Platzhalterinhalt von Youtube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

14 Kommentare

  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.

      • Hallo,

        Ich weiß nicht was ich verkehrt mache, es sieht aber genau so aus wie bei Dir. Nur leider bekomme ich keine Nachricht.

        Des Weiteren würde ich dann gerne eine weitere Person das mitteilen, muss ich für die Person das Ganze genau so machen und ChatBot erstellen und Co, oder geht das einfacher?

        Beste Grüße Pascal

        • Hi Pascal,

          ich weis es klingt jetzt etwas doof aber ist deine CCU denn mit dem Internet verbunden? Wenn ja haben viele das Problem, dass der DNS Eintrag in der CCU veraltet ist, wenn dieser händisch eingetragen wurde. Hier würde ich Testweise einmal als DNS Server die 8.8.8.8 eintragen und schauen ob es funktioniert.

          Um eine weitere Person zu Benachrichtigen, einfach in dein Programm erneut einen Skriptblock einfügen und entsprechend die ID der Person eintragen.

          Grüße
          Patrick

  2. Hallo,
    deine Anleitung ist wirklich toll.
    Aber bei mir klappt es einfach nicht. Ich habe jetzt schon den 3. Bot erstellt, alles mögliche herumprobiert. Via Skript getest ob meine CCU3 eine Internetverbindung hat aber nein.
    Ich bekomme einfach keine Mitteilung via Telegram.

    Wenn du mir helfen magst, würde ich mich sehr freuen.

    Gruss John

    • Hi John,
      das ist auf die Ferne schwierig zu sagen. Wenn die Internetverbindung vorhanden ist, könnte es an falschen IDs oder an einem fehlerhaften Token liegen.

      Grüße
      Patrick

    • Der häufigste Fehler ist eine fehlerhafte Konfiguration der DNS Einstellungen in der CCU. Wenn die DNS-Einstellungen nicht passen, können keine Nachrichten versendet werden.

  3. Ein dickes, fettes Dankeschön für diese Anleitung. Das klappt mit meiner CCU3 super.

    Einen kleinen Tip habe ich noch für diejenigen, die die Nachricht an mehrere Leute verschicken wollen:

    Einfach in Telegram eine Gruppe erzeugen, den Bot und die entsprechenden Leute einladen und dann wie oben beschrieben vorgehen.

    Viele Grüße aus Berlin

      • Sehr gerne. 🙂

        Wenn Du möchtest kannst Du den Tip mit der Telegram-Gruppe gerne direkt in die Beschreibung aufnehmen. Das hat, wie ich finde, ein paar interessante Vorteile gegenüber mehreren Einzel-Chats mit Einzelpersonen:
        – die CCU sendet nur noch eine Nachricht (das vereinfacht die Programmierung der CCU)
        – man kann jederzeit Leute zur Telegram-Gruppe hinzufügen oder aus ihr entfernen, ohne auf der CCU Änderungen vornehmen zu müssen

        Natürlich sollte man die einzuladenden Personen vorher um Erlaubnis fragen.

        Man kann auch mehrere Chatgruppen anlegen, um unterschiedliche Informationen an unterschiedliche Personengruppen zu senden.

        So. Jetzt bin ich aber auch wieder stille.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein