Homematic 13: Automatisiert Push-Nachrichten über die Homematic CCU2 versenden

Wer Homematic beispielsweise als Alarmanlage verwendet, wird bestimmt schon auf die Idee gekommen sein, sich Nachrichten an das Handy schicken zu lassen. Ich werde in diesem Tutorial erklären, wie kostenlos und ohne Zusatzsoftware auf der CCU2 eine Push-Nachricht über den Anbieter Telegram an ein Smartphone verschickt werden kann.

Homematic - CCU2

Hinweis: Von diesem Artikel existiert eine neue Version. Die neue Version setzt CUxD und Pushover ein, was zu Stabilitätsverbesserungen und mehr Features führt. Ich empfehle daher, den neuen Artikel zu lesen. Wer lieber auf Telegram setzt, darf gerne weiterlesen, es funktioniert natürlich immer noch.

-> Zum überarbeiteten Artikel <-

Der Lösungsansatz

Der eigentliche Nachrichtenversand erfolgt über die Messaging App Telegram. Die App ist kostenlos und für alle gängigen Smartphones verfügbar. Telegram bietet eine API an, über die Nachrichten verschickt werden können. Nach dem Anmelden eines Sogenannten Bots an der API, können über den Aufruf einer „Webseite“ Nachrichten verschickt werden. Dabei wird eine verschlüsselte Seite aufgerufen und als Parameter der ein API Key (nächstes Kapitel), die Chat-ID und der Text selber als Variable übergeben.
Die CCU2 ist in der Lage mit Hilfe eines Scripts über System.Exec eine beliebige Webseite aufzurufen. Damit lässt sich also ein CCU2 Programm anlegen, welches beispielsweise beim Auslösen von Alarmtriggern eine Nachricht verschickt.

Einrichten des Telegram Bots

Um auf die Api zugreifen zu können, wird ein API Key benötigt. Dazu sind folgende Schritte notwendig:

  1. Installation von Telegram auf dem Smartphone
  2. Klickt oben rechts auf das Lupensymbol und sucht nach dem Kontakt BotFather – Ja, lustig ;)
  3. Startet eine Konversation mit BotFather, ihr solltet direkt eine Übersicht mit Befehlen bekommen
  4. mit /newbot wird ein neuer Bot angelegt
  5. Anschließend wird nach einem Namen für den Bot gefragt, einfach antworten.
  6. Nun wird noch nach einem Benutzernamen gefragt, wieder einfach antworten
  7. Nun antwortet der bot mit dem API Key, bzw. API token (weiterhin als <API_KEY> abgekürzt)
  8. 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 aus Schritt 6 verwendet. Habt ihr ihn gefunden, startet ihr eine Konversation indem ihr dem Bot irgendetwas schreibt (ganz wichtig).
  9. Nun muss die Seite https://api.telegram.org/bot<API_KEY>/getUpdates aufgerufen werden. Dazu unbedingt das selbe Browserfenster bzw. -tab benutzen, in dem im vorherigen Schritt der Chat mit dem Bot gestartet wurde. Die URL bitte per Hand kopieren und <API_KEY> durch euren Key aus Schritt 7 ersetzen. Aus der Antwort lässt sich in der letzten Zeile eine „id“ entnehmen. Das ist unsere gesuchte <CHAT_ID>. Das Ergebnis müsste in etwa so aussehen:Homematic-Push-ChatId-anonymized
  10. Jetzt lässt sich die fertige URL basteln. Bitte in der folgenden URL euren <API_KEY> und eure <CHAT_ID> ersetzen:
    https://api.telegram.org/bot<API_KEY>/sendMessage?chat_id=<CHAT_ID>&text=<Eure_Nachricht>
  11. Nach dem Aufruf der Seite solltet ihr eine Pushnachricht auf das Handy bekommen und die Nachricht <Eure_Nachricht> sollte angekommen sein. Im Browser sollte die Antwort so aussehen:
    {"ok":true,"result"[...]

    Bitte beachtet, dass SSL (=https://) zwingend ist. Dadurch wird der API Key und eure Nachricht beim Transport verschlüsselt.

    Falls es probleme gibt, vergleicht eure URL noch einmal mit diesem Beispiel:

    https://api.telegram.org/bot557138945:AAfdjdfuTDkQ9cirHCUQMNF/sendMessage?chat_id=5872168&text=HalloTechnikkram

Konfiguration des CCU2 Programms

Die Anwendungsmöglichkeiten sind sehr vielfältig. Ich werde ein einfaches Beispiel vorgeben, bei dem eine Nachricht gesendet wird, wenn eine Tür geöffnet wird. Ohne weitere Bedingungen wäre das natürlich ziemlich nervig, es könnte als Beispielsweise vorher abgefragt werden, ob die Alarmanlage scharf ist. Alternativ könnte auch morgens, wenn man das Haus verlässt, eine Nachricht geschickt werden wenn der Außentemperatursensoreine Glatteisgefahr feststellt.

Hier kommt eure Phantasie ins Spiel ;)

Zurück zum Beispiel:

  1. Anlegen eines neuen Programmes über Programme und Verknüpfungen -> Programmerstellung & Zentralenverknüpfungen -> Neu
  2. Triggerbedingung hinzufügen
  3. Als Aktivität wird Script gewählt und anschließend daneben auf Script erstellen geklickt
  4. Als Script wird folgendes eingegeben, natürlich wieder <API_KEY>, <CHAT_ID> und <EURE_NACHRICHT> ersetzen.

    string stderr;
    string stdout;
    string url="\"https://api.telegram.org/bot/sendMessage?chat_id=&text=\"";
    system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);
  5. Das fertige Programm sollte dann in etwa so aussehen:PushViaTelegramProgram
  6. Ein Klick auf Fehlerprüfung sollte „Kein Fehler“ zurückgeben
  7. Zwei Klicks auf OK Speichern das Programm und es kann getestet werden.

Ich hoffe, bei euch funktioniert es einwandfrei. Grundsätzlich gibt es auch andere Push Dienste die verwendet werden können. Telegram hat aber den Vorteil, dass nicht eine zusätzliche App zum Einsatz kommt, die sonst keinen Nutzen hat. Ich denke das macht am meisten Sinn. Wer bessere Ideen hat, darf natürlich einen Kommentar hinterlassen.

Nachtrag vom 4.7.2016:

Umlaute müssen nach folgenden Regeln codiert werden. Ansonsten funktioniert es leider nicht:

Ä wird ersetzt durch %C3%84
ä  wird ersetzt durch %C3%A4
Ö wird ersetzt durch %C3%96
ö wird ersetzt durch %C3%B6
Ü wird ersetzt durch %C3%9C
ü wird ersetzt durch %C3%BC

Beispiel:

string url=“\“https://api.telegram.org/bot/sendMessage?chat_id=&text=T%C3%BCr ge%C3%B6ffnet\““;

Daraus ergibt sich dann „Tür geöffnet“

147 Kommentare
  1. Thomas Stutz
    Thomas Stutz sagte:

    Hallo,

    ich bin blutiger Anfänger, was Scripte angeht, aber ich würde das auch gerne zum laufen bekommen. Wenn ich über den Browser gehe, dann funktioniert das auch. Allerdings in der CCU bekomme ich das nicht hin. Folgendes Script habe ich, ist dort ein Fehler drin?

    string stderr;
    string stdout;
    string url=“\“api.telegram.org/bot187####_A/sendMessage?chat_id=126###&text=Funktioniert\““;
    system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

    Über Hilfe würde ich mich sehr freuen.

    Antworten
  2. joe
    joe sagte:

    Wenn die Zeichenketten
    , und
    exakt so im Script stehen würden , wüsste bestimmt jeder was genau an diesem url webblablageflicke genau zu ersetzen ist.
    Leider hat ja niemand diese http//\?Steinzeit?=/webtechnologie mal geordnet sondern immer nur was hinzugeflickt , so das wir es leider alle so ertragen müssen wie es nun mal ist.
    Ich probier jetzt blind herum wie es in der webtechnik zwischenzeitlich fast Standart (wollt ich schon immer mal selbst falsch schreiben) ist. Immerhin hat mich der Artikel auf die richtige Spur gebracht – Danke dafür.

    Antworten
  3. tinbert
    tinbert sagte:

    Danke, Philipp, für die Anleitung.
    Damit ging es bei mir einige Zeit gut, aber als ich gestern Telegram (auf dem iPhone) geöffnet habe, waren alle Einstellungen weg und ich musste den Bot neu aufsetzen. Leider ist mir es nicht mehr gelungen, eine Nachricht abzuschicken, weder von der Homematic nocht im Web. Im Webbrowser bekomme ich immer ein „not authorized“. Hat sich evtl. an Telegrams API was geändert? Oder läuft das bei dir/euch nach wie vor problemlos? Dann muss ich zum gefühlt zwölften Mal alles kontrollieren ;-)

    Antworten
    • tinbert
      tinbert sagte:

      Schnelles Update: im Browser ging das doch noch, ich musste (wie du schon geschrieben hast), denselben Tab benutzen, offensichtlich, damit die Authentifizierung funktioniert.
      Auf der Homematic wird aber wohl genauso eine Authentifizierung nötig sein, oder?

      Antworten
    • tinbert
      tinbert sagte:

      Bitte lösche doch einfach meine Beiträge. Warum auch immer, vielleicht fehlte einfach die Geduld, es geht wieder alles.
      Sorry – Robert

      Antworten
    • Werner
      Werner sagte:

      die Char-ID bezieht sich auf die Teilnehmer eines Chats. Man muss nur weitere Teilnehmer hinzufügen, damit die Nachricht entsprechend an alle Teilnehmer gesendet wird.

      Antworten
      • Frank
        Frank sagte:

        Moinsens Werner,

        und wie würde das versenden an ein zweites Handy genau aussehen? Hast du dazu ein Beispiel-Code? Welches Trennzeichen nimmt man im Script für die Char-ID?

        Schönen Gruß
        Frank

        Antworten
  4. Siggi
    Siggi sagte:

    Hallo Philipp,
    tolle Anleitung, hat fast (ich hatte einen Kopierfehler) sofort auf meiner RaspberryMatic funktioniert !!!
    Eine Frage / Bitte hätte ich noch:
    Ich würde „system.Exec“ gern durch den entsprechenden CUxD Befehl ersetzen. Kannst das Tutorial dahin gehend ergänzen ?

    Liebe Grüße, Siggi

    Antworten
      • Siggi
        Siggi sagte:

        Habe ich … aber das hilft mir als blutigen Anfänger der Skript-Schreibung nicht wirklich weiter … ;-(
        Und ich wollte bei Telegram bleiben da ich es als WhatsApp Ersatz nutze. Bislang funktioniert alles nach deiner Anleitung … damit: „Never change a running system“

        Antworten
  5. Mathias
    Mathias sagte:

    Hi Philipp,
    Ich habe schon oft versucht, Pushnachrichten per Telegram zu verschicken.
    Leider ist das aus irgendwelchen Gründen laufend gescheitert.
    Irgentwann hatte ich die faxen dicke, habe den Messenger wieder deninstalliert.
    Nun arbeite ich seit 2 jahren mit Pushover und bin voll zufrieden damit. Seit März 2018 versendet der auch Bilder meiner Überwachungskameras.
    Der preisliche Aspekt. naja, ich denke, EUR 4,99 je angemeldetes Gerät kann man auch verschmerzen. 7500 Nachrichten pro API sind jedes Monat sind frei. (ich habe 4 API’s, macht 30000 Nachrichten im Monat for free).
    Nun gibt es einen neuen Dienst. Der nennt sich Pushsaver.
    Da aber keine Preise ersichtlich sind, scheint mir die Geschicte doch mehr als nur suspekt.
    Gruß,
    Mathias

    Antworten
  6. Tobi
    Tobi sagte:

    Hallo zusammen,

    ich habe diese Lösung seit Februar verwendet und alles hat super funktioniert (danke nochmal für die tolle Anleitung :-)).
    Ich habe damit eine kleine Alarmanlage im Keller ausgestattet um Nachrichten zu bekommen wenn sich die Tür öffnet.
    Am 18. Juni habe ich die letzte Nachricht bekommen. Seither funktioniert es leider nicht mehr, ohne dass ich etwas geändert habe. Die CCU2 habe ich auch schon mehrfach vom Strom genommen. Ich greife auch über VPN auf die CCU2 zu. Am Internet scheint es also nicht zu liegen.

    Wenn ich die URL in den Browser eingebe bekomme ich eine Fehlermeldung
    {„ok“:false,“error_code“:404,“description“:“Not Found“}
    Ich bin kein Technikass, deswegen bin ich leider etwas ratlos und hoffe hier Hilfe zu finden :-)

    Danke schonmal im Voraus!
    Gruß Tobi

    Antworten
    • Philipp
      Philipp sagte:

      Komisch, sieht für mich so aus, als würde dein API key nicht mehr existieren. Sicher dass du alles kopiert hast? Ich würde empfehlen einen neuen Key zu erstellen, den link musst du dann natürlich anpassen. Solange du von telegram im Browser diese Fehlermeldung bekommst, liegt es aber definitiv nicht an der CCU.

      Antworten
      • Tobi
        Tobi sagte:

        Wow, danke für die rasante Antwort. Scheinbar hat sich der alte Bot tatsächlich verabschiedet ohne Bescheid zu sagen :-)

        Neue API erstellt, Link angepasst, geht wieder.

        Vielen, vielen Dank!

        Gruß Tobi

        Antworten
        • Philipp
          Philipp sagte:

          Gerne doch! Danke auch für das Feedback. Mit dem Problem warst du jetzt der erste. Vielleicht sollte man sich bei Alarmanwenfungen wöchentlich ein „Hallo, ich lebe noch“ schicken lassen. Ansonsten bekommt man das nicht mit, wenn der sich verabschiedet :(

          Antworten
  7. Gunnar
    Gunnar sagte:

    Hallo,

    habe auch das Problem, dass ich keine Nachricht aus der CCU bekomme. Alles wie hier Beschreibung angelegt. (Nachricht über Browser funktioniert)

    Habe dann ein CUxD angelegt, und ein entsprechendes Script gefunden.

    string message = „Test- Nachricht“;
    string chatid = „XXX“;
    string botAPI = „XXX“;
    dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State(„extra/curl -s -k https://api.telegram.org/bot„#botAPI#“/sendMessage -d text='“#message#“‚ -d chat_id=“#chatid);

    Leider funktioniert es damit auch nicht..
    Bin für jede Hilfestellung dankbar.

    Antworten
    • Marcel
      Marcel sagte:

      Hallo Gunnar,

      hast du im CUxD auch einen Schalter vom Gerätetyp (28) System angelegt.
      Dieser muss mit der Funktion Exec angelegt werden.

      Den brauchst du auf jeden Fall.

      Des Weiteren werden keine Nachrichte über diesen Script gesendet, wenn sich Umlaute in der Nachricht befinden.

      Bei der Fehlersuche bin ich damals fast verzweifelt.

      Antworten
      • Gunnar
        Gunnar sagte:

        Hallo Marcel,

        danke für die Hinweise.. hatte ich aber berücksichtigt..

        Könnte jemand mal das Script auf seiner CCU testen, ob eine Nachricht abgesendet wird. Vielleicht liegt der Fehler an einer anderen Stelle in der CCU.
        Hat diesbezüglich vielleicht jemand noch eine Idee?

        Antworten
        • Gunnar
          Gunnar sagte:

          Hallo,
          habe den Fehler gefunden…
          die CCU hatte keine Internetverbindung, obwohl die CCU- Oberfläche erreichbar war.
          Habe zum überprüfen, ob die CCU mit dem Internet verbunden ist, folgendes Script unter ‚Script testen‘ eingegeben: (Als Ergebnis bekommt die Info, ob man verbunden ist, oder nicht.)
          —————
          string stderr;
          string stdout;
          integer Auslese;
          system.Exec(„ping -c 1 http://www.google.de„,&stdout, &stderr);
          Auslese = stdout.Find(„ms“);
          if ( Auslese == -1 )
          {
          WriteLine(„CCU ist NICHT mit der Welt verbunden“);
          }
          if ( Auslese > 0)
          {
          WriteLine(‚CCU ist mit der Welt verbunden‘);
          }
          ———————————-
          Nachdem ich unter Netzwerkeinstellungen in der CCU den Haken bei ‚Folgende IP-Adresse verwenden‘ entfernt habe, wurde auch die Telegram- Nachricht versendet.

          Vielleicht hilft diese Info auch anderen, die bis jetzt keine Telegram- Nachrichten aus ihrer CCU bekommen.

          Antworten
          • Philipp
            Philipp sagte:

            Hi Gunnar,
            danke dass du deine Lösung geteilt hast! Auf die Idee bin ich echt nicht gekommen, aber deine Lösung bringt ein neues Problem mit sich. Daher noch ein paar Hintergrundinformationen:

            Du hattest deiner CCU vorher eine feste IP Adresse zugeteilt, was gut war solange du in irgendeiner Form auf die IP Adresse zugreifen willst (per App, Port Forwarding, Reverse Proxy, ..). Wenn du das Häckchen entfernst, vergibt der Router (=DHCP Server) der CCU eine IP. Das passiert etwa alle 5 Minuten. Somit besteht alle 5 Minuten das Risiko, dass du die Verbindung zur CCU verlierst. Das könntest du verhindern, indem du den Router anweist, der CCU immer die gleiche IP Adresse zuzuteilen (so mache ich das).

            Der Weg mit der festen IP in der CCU funktioniert auch, allerdings muss zusätzlich ein korrektes Gateway (der Router) und mindestens ein DNS Server (vom Provider oder anderen öffentlichen, z.B. 8.8.8.8 für den von Google) in der CCU eingetragen werden. Wenn diese Einstellungen nicht stimmen, kann sie zwar vollständig mit lokalen Netz kommunizieren, aber sie „findet“ das Internet nicht.

            Diese Problematik trifft übrigens auf jedes (!) Netzwerkgerät zu. Da die Geräte aber standardmäßig DHCP aktiviert haben, bekommen sie alle nötigen Einstellungen vom DHCP Server (Router) mitgeteilt. Das funktioniert in der Regel Problemlos, da keiner eine Verbindung zu seinem z.b. Smartphone aufbaut.

            Ich empfehle dir, die Einstellungen nochmal zu überarbeiten. Sonst funktioniert z.B. auch die Lightify Anbindung nicht zuverlässig.

            Viele Grüße
            Philipp

  8. Kevin
    Kevin sagte:

    Hallo Philipp, hab dir vor geraumer zeit geschrieben…..
    leider bis jetzt keine Rückmeldung bekommen.

    Die Problematik ist nach wie vor dieselbe, wenn ich den Link zusammenbastle wie beschrieben mit meinem API Key und Chat id und das ganze im Broserfenster teste bekomme ich die nachricht auf handy.

    Wenn ich deinen Script copy paste in meiner ccu2 eingebe und api key sowie chat id wie beschrieben auf meine Angaben anpasse skript testen klicke bekomme ich „keine Fehler“.

    dann Starte ich die CCU2 neu, löse einen Brandmelder mittels rauch aus, und die Meldung kommt nicht.

    Ich bin echt ratlos.

    Kannst du mir bitte weiterhelfen?

    Gruss Kevin

    Antworten
      • Tom
        Tom sagte:

        Hallo Philipp,
        scheint super zu funktionieren, ich bekomme jedoch vom BotFather meine ID nicht.
        Er antwortet immer brav mit {„ok“:true,“result“:[]}
        Hat sich etwas bei Telegram geändert?
        Gruß
        Tom

        Antworten
  9. Helge
    Helge sagte:

    Hallo,
    ich bekomme leider nur folgendes zurück {„ok“:true,“result“:[]}

    Den Browser habe ich schon neu gestartet und im gleichen Tab habe ich es auch getestet. Gibt es noch eine Idee

    Antworten
  10. philipp
    philipp sagte:

    Hallo
    ich habe auch das problem, dass ich die Nachrichten nicht von der CCU bekomme.
    den link habe ich getestet der funkt. nur die CCU gibt ihn nicht aus.
    Kann es am Provider liegen oder an einer Firewalleinstellung oder so, fernzugriff mit der homedroid app funkt.
    wie kann man testen ob die CCU den Befehl ausgibt.
    mit dank im voraus…..

    Antworten
    • C.
      C. sagte:

      Hallo
      das selbe Problem habe ich auch weder über system.Exec noch über CuXD bekomme ich die Push-Nachricht raus!
      Irgendeine Idee?

      Antworten
  11. Kevin
    Kevin sagte:

    Kevin
    24. März 2017
    Hallo Philipp,
    ich krieg den Skript bei meiner ccu2 leider nicht zum laufen :-(
    hab copy paste deinen Skript bei mir in der ccu eingefügt, und dan bot id chat id und message durch meine angaben ersetzt.

    Wenn ich jedoch bei einem Rauchmelder in der betreffenden Gruppe eine Auslösung provoziere krieg ich keine Meldung auf mein handy.

    wenn ich den erstellten link wie du beschrieben hast im Browserfenster einfüge und enter drücke kommt die Meldung

    Antworten
    • Philipp
      Philipp sagte:

      Was passiert wenn du das Skript in dem Editor testest? Läuft das ohne Fehler durch? Falls ja, starte die ccu Mal neu. Hat gelegentlich schon geholfen.

      Antworten
      • Kevin
        Kevin sagte:

        Hallo Philipp,
        Das hab ich alles bereits versucht, leider ohne sichtlichen Erfolg.

        Beim Test des skript bekomme ich die Meldung keine Fehler

        Antworten
  12. Ostseereiter
    Ostseereiter sagte:

    Hallo ich bekomme folgende Fehlermeldung wenn ich auf Script testen gehe.
    Error 1 at row 3 col 171 near ^wget –no-check-certificate -q -O – „#url, &stdout, &stderr);
    Parse following code failed:
    string stderr;
    string stdout;
    string url=“\“https://api.telegram.org/bot3511661814:AAEKu51111BNN-u27-D9tCVv1orsAPSLB5Fts/sendMessage?chat_id=333737946&text=Andy ist zu haus““;
    system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

    Was kann das sein.

    Antworten
          • Ostseereiter
            Ostseereiter sagte:

            Eigentlich nichts es funktionierte einfach. Nun habe ich schon mehrere Anwesenheit Scripte angelegt.Was mir aufgefallen ist:Ich habe bei einen Funkhansender bei langen Tastendruck ein Script angelegt der 2 mal funktionierte und dann nicht mehr. Jetzt habe ich noch ein Script bei Kurzen Tastendruck angelegt dieser funktioniert ohne Probleme.

  13. Niv
    Niv sagte:

    hallo philipp, ganz tolle sache und super umsetzung und anleitung – nach „userfehler“ hat alles auf anhieb gekalppt – großes lob!!
    falls ich dich auf paypal finde würd ich dir gerne ein bier (oder saft, oder was auchimmer;) ) spendieren – also gib mir bescheid.

    Antworten
  14. Kevin
    Kevin sagte:

    Hallo Philipp,
    ich krieg den Skript bei meiner ccu2 leider nicht zum laufen :-(
    hab copy paste deinen Skript bei mir in der ccu eingefügt, und dan bot id chat id und message durch meine angaben ersetzt.

    Wenn ich jedoch bei einem Rauchmelder in der betreffenden Gruppe eine Auslösung provoziere krieg ich keine Meldung auf mein handy.

    wenn ich den erstellten link wie du beschrieben hast im Browserfenster einfüge und enter drücke kommt die Meldung

    Antworten
  15. Michael
    Michael sagte:

    Hallo Philipp,
    vielen Dank für die tolle Anleitung. Funktioniert super.
    Kannst du mir vielleicht sagen, ob es möglich ist, ein Emoji, wie z.B. ein Warnsymbol über das Skript zusätzlich zum Text zu verschicken?
    Ich bekomms einfach nicht hin.
    Gruß
    Michael

    Antworten
      • Michael
        Michael sagte:

        Habs mit den Shortcodes schon versucht. Funktioniert leider nicht. Zeigt mir in der Nachricht dann auch den Shortcode 1:1 an, aber nicht das Emoji.

        Antworten
        • Gnomi
          Gnomi sagte:

          Hi, hat es denn nun mit den Emoj irgendwie geklappt? Ich kann im Test-Scrip Fenster der CCU EMOJ in der Stringbeschreibung hineinpasten und es klappt. Aber wenn das Script abgespeichert wird, kommen nur „%xxxx“ und das wird genau so ausgegeben. Also wie kann man nun einen String definiren, der dann mit Telegram so incl. Emoj angezeigt wird?
          string message = „??EMOJ?? der Probetext…“;
          ……
          dom.GetObject(„CUxD.CUX2801001:1.CMD_EXEC“).State(„extra/curl -s -k https://api.telegram.org/bot„#botAPI#“/sendMessage -d text='“#message#“‚ -d chat_id=“#chatid);

          Antworten
      • Frank
        Frank sagte:

        Moinsens Philipp,

        ich würde mich in die Diskussion auch nochmal einreihen und gerne wissen wollen, wie man emoji versenden kann, das bekomme ich irgenwie nicht hin.
        Obwohl, ganz richtig ist das nicht, denn das versenden eines emoji habe ich schon hinbekommen. Dazu füge ich den entsprechenden UTF-8 Code des emoji (z. B. von einem Smilie -> %F0%9F%98%81) hinter „…&text=“ in meinem Versandscript ein:

        ….chat_id=XXXXX&parse_mode=Markdown&text= %F0%9F%98%81 „# TEXT DER NACHRICHT # „\““;

        Da ich mir mehrere Meldungen per Telegram schicken lasse, möchte ich nun in Abhängigkeit der Nachricht (Bewegung erkannt, Batterie Leer, Servicemeldungen, …) auch unterschiedliche emoji´s senden. So wie ich das zur Zeit hin bekomme, wird immer nur das Smilie gesendet. Daher würde ich gerne den UTF-8 Code vom Smilie in eine Variable schreiben und die dann im Versandscript benutzen, so in dieser Art:

        string emoji = „%F0%9F%98%81“;

        ….chat_id=XXXXX&parse_mode=Markdown&text= emoji „# TEXT DER NACHRICHT # „\““;

        Das bekomme ich aber nicht hin. Es wird mir in Telegram statt das emoji nur der UTF-Text (%F0%9F%98%81) angezeigt.

        Hast du eventuell hier einen Ansatz wie man das hinbekommen könnte?

        Schönen Gruß

        Frank

        Antworten
  16. Fabrice
    Fabrice sagte:

    Hallo, danke für die super Anleitung – bei mir funktioniert alles soweit wie du es beschrieben hast – allerdings bekomme ich beim Programmtest (und auch sonst) auf der CCU keine Pushmitteilungen. Dein Script habe ich kopiert und einfügt, dabei meine API/ID eingefügt. Gehe ich auf der CCU auf „Script überprüfen“ kommt die Meldung: keine Fehler. Beim direkten Ausführen des Programms über die CCU kommt aber keine Nachricht über Telegram, wenn ich das Skript über „Skript testen“ einkopiere und starte, passiert gar nichts, so als wäre der OK Button wirkungslos.
    Das Programm lautet: wenn Bewegungsmelder Eingang bei Bewegung erkannt auslösen auf Änderung dann Skript sofort.

    Hast Du eine Idee was da nicht passen könnte?

    LG Fabrice

    Antworten
    • Marku
      Marku sagte:

      Hallo zuammen, der Fehler stellt sich bei mir leider genauso dar. Habe es auch heute verucht einzurichten, gekoppelt an die Haustür zu Testzwecken (bei Änderung offen). Gruß, Markus

      Antworten
    • Markus
      Markus sagte:

      Hallo zuammen, der Fehler stellt sich bei mir leider genauso dar. Habe es auch heute verucht einzurichten, gekoppelt an die Haustür zu Testzwecken (bei Änderung offen). Gruß, Markus

      Antworten
    • Markus
      Markus sagte:

      Hallo Fabrice, bin leider noch nicht weiter. Werde das ganze Prozedere heute nochmal durchgehen. Da es bei vielen anderen funktioniert wird es ein individueller Fehler meinerseits sein.

      Antworten
  17. Steffi
    Steffi sagte:

    Hallo Philipp,

    kannst du dir erklären, warum diese Funktion erst einwandfrei funktioniert hat und plötzlich ausgefallen ist? Heißt ich habe es genau so wie beschrieben in meiner CCu2 angelegt und alles funktionierte und Push Nachrichten wurden versendet und plötzlich kam keine Nachricht mehr ohne das ich irgendetwas verändert habe. Habe nun alles überprüft und noch einmal neu gemacht . Alles stimmt, aber es kommen trotzdem keine Nachrichten mehr! Kann es eventuell damit zusammen hängen das meine CCU2 kein Internetlicht mehr anzeigt? Ich bin langsam echt am verzweifeln… :/ Lg, Steffi

    Antworten
    • Philipp
      Philipp sagte:

      Hi Steffi,
      ja, wenn die CCU2 keine Verbindung zum Internet hat, funktioniert es natürlich nicht. Zieh einfach mal den Stecker, warte ein paar Sekunden und steck ihn wieder rein. Falls es dann immer noch nicht funktioniert, liegt es wohl irgendwo im Netzwerk (Stecker alle drin?).
      Gruß
      Philipp

      Antworten
  18. Guido
    Guido sagte:

    Hat 1A funktioniert und ist einfach nur genial. Vielen Dank für die detaillierte Anleitung. Ohne diese hätte ich das nicht hinbekommen.

    Antworten
  19. Frank Raddau
    Frank Raddau sagte:

    Hallo,
    habe auch die Einstellung vorgenommen, das ich z.B. bei Fenster offen eine Push Nachricht via Telegram bekomme.
    Wenn ich den link in einen Browser kopiere so wie er bei mir im Script steht, bekomme ich diese Nachricht. Ich benutze allerdings als CCU2 den Raspberry.

    Antworten
  20. Lars
    Lars sagte:

    Hey Philipp,

    danke für deine Anleitung.
    Nachdem die Links für API Key und CHAT_ID nur sehr zögerlich funktioniert haben. Läuft die Geschichte jetzt wirklich rund. 


    Für alle die auch Probleme haben den API Key bzw. die CHAT_ID zu bekommen, nicht den Kopf in den Sand stecken. Ich habe es mehrfach versucht, ohne etwas zu ändern. 
Nach dem 6 – 7 Versuch hat es dann funktioniert. 



    Eine Frage habe ich dann aber doch noch. 
Wie kann ich in die zu verschickenden Nachrichten einen Zeilenumbruch einfügen? 
Gibt es dafür eine Möglichkeit?

    Gruß

    Antworten
  21. Viktor
    Viktor sagte:

    Hallo Philip, nun habe ich Telegramm instaliert und @BotFather gefunden. Soweit alles gut. Nur, wenn ich versuche eine Chat zu starten, dann heist es bei mir „Du darfst in diesem Kanal nichts schreiben.“
    Ist der Dienst geschloßen oder was wäre sonnst die Ursache? Gibt es Alternativen?
    Mit anderen kann ich Chatten.

    Antworten
    • Philipp
      Philipp sagte:

      Hi Viktor, der Dienst funktioniert funktioniert noch. Ich konnte dem BotFather gerade testweise schreiben. Öffne Mal diesen Link auf deinem Handy mit Telegram: https://telegram.me/BotFather und versuch dann nochmal, ihm zu schreiben.

      Alternativ gäbe es z.b. noch Pushover. Da funktioniert die Einrichtung aber ganz anders und es kostet teilweise Geld. Darum habe ich für das Tutorial lieber Telegram verwendet.

      Antworten
      • Viktor
        Viktor sagte:

        Vielen Dank für die gute Anleitung ;)
        Jetzt chattet mein Haus mit mir ;);) Das mit einer Gruppe würde mich auch interesieren.

        Antworten
  22. Uwe
    Uwe sagte:

    Hallo Philipp,

    super Beschreibung klappt auf Anhieb! Ich habe den Bot noch mit in eine Gruppe aufgenommen und jetzt werden mehrere Personen gleichzeitig benachrichtigt!

    Top!

    Antworten
    • Sebastian
      Sebastian sagte:

      Hallo Uwe,
      wie hast Du das mit der gruppe realisiert? Bei mir kommen leider keine Nachrichten an, wenn ich den Bot in eine Gruppe stecke…

      Antworten
  23. Jochen
    Jochen sagte:

    Hi Philipp,
    Das Rausfinden des API Keys und der CHAT ID war dank Deiner Anleitung kein Problem. Der Link funktioniert auch einwandfrei, wenn man Ihn im Browser eingibt. Das Skript löst leider nicht aus. Ich habe das Skript auf fehler prüfen lassen alles OK! Ich finde den Fehler einfach nicht. Gibt es noch eine andere Möglichkeit, woran es liegen könnte?

    Antworten
    • Christian
      Christian sagte:

      Hallo,
      bei mir löst es auch nicht aus. Über die CCU2. Bei script Testen passiert nichts. Keine Reaktion! Vielleicht kannst du helfen Philipp?
      Grüße

      Antworten
  24. Dave
    Dave sagte:

    Grandios, es hat bei mir auf Anhieb funktioniert.
    VIELEN Dank!
    Ich würde gerne noch mal die Frage von PhllipG aufgreifen und sie erweitern.
    Ich möchte gerne eine Nachricht, falls ich vergesse die Fenster nach dem Lüften in der kalten Jahreszeit wieder rechtzeitig zu schließen.
    Ich kann zwar über WebUI als Skript die Nachricht um 10 min verzögert senden, aber wenn das Fenster wieder zu ist, diese Nachricht nicht „löschen“ / nicht auslösen lassen.
    Hast Du da evtl ein Tip
    Am besten noch mit Außentemperatur in Verbindung, dass es ab x Grad erst überhaupt meldet.
    Vielen Dank

    Antworten
  25. Micha
    Micha sagte:

    Wow, super Anleitung! Und was für tolle Möglichkeiten, das ist der Hammer! Bekomme die Nachrichten auch auf die AppleWatch und das macht das ganze noch komfortabler. Hab auch mal testweise eine URL eingegeben, Telegram wandelt die dann um in einen Hyperlink (geht bestimmt auch per Code). Damit kann man sich bspw. dann direkt zur Kamerasteuerung der IP Kamera navigieren und nachsehen, um was es sich bei einer gemeldeten Bewegung handelt.

    Also super Anleitung, ganz tolle Seite!

    Antworten
  26. Steffen
    Steffen sagte:

    Die Verwendung von system.exec() ist bekanntermaßen nicht sehr stabil und somit nicht empfehlenswert. Besser den Weg über den CUx-Daemon gehen.

    Antworten
  27. Frank
    Frank sagte:

    Hallo Philipp,
    danke für die Super-Anleitung.
    Bis gestern hat es bei mir auch funktioniert. Seit heute – ich würde schwören, ich habe nichts geändert – kommen vom Bot keine Nachrichten mehr an. Ich vermute, dass es nicht an Telegram liegt, da ich die Nachricht bekomme, wenn ich den Link einfach im Browser aufrufe. Hast du eine Idee?
    Gruß
    Frank

    Antworten
    • Philipp
      Philipp sagte:

      Hi, das klingt tatsächlich sehr nach der CCU. Hast du sie einfach Mal neu gestartet? Werden denn andere scripte noch ausgeführt? Wenn du viele scripte im Einsatz hast oder viel rumprobiert hast, kann es sein, dass du mehr als 200 Variablen zugewiesen hast. Damit kommt die CCU nicht klar :(

      Antworten
  28. Thomas
    Thomas sagte:

    Fantastische Anleitung, hat auf Anhieb geklappt. Ich bin ganz aus dem Häuschen dass mein Haus mir nun gratis Nachrichten schickt. Vielen Dank!

    Antworten
  29. Bernd
    Bernd sagte:

    Hallo Philipp

    Das Script habe ich direkt von dieser Seite in das Programm kopiert und der Script Editor meldet fröhlich „keine Fehler“.
    Das Programm läuft auch durch, nur die Meldung geht nicht raus.

    Putzige Sache, das.

    Antworten
  30. Bernd
    Bernd sagte:

    Moin Philipp
    Ich hätte da gerne mal ein Problem.
    Ich kann mit der von mir erstellten URL über einen Browser Benachrichtigungen auf mein Handy schicken. Das kodieren der Umlaute hat auch geklappt.
    Allerdings bekomme ich das Script auf der ccu2 nicht an den Start.
    Müssen an der Zentrale noch Einstellungen vorgenommen werden?
    Oder muss ich den Router besonders konfigurieren?

    Besten Dank im Voraus………

    Antworten
    • Philipp
      Philipp sagte:

      Hi, wenn es über den Browser funktioniert, hast du dir größte Schwierigkeit überwunden. Ich würde sagen die fehlt irgendwo eine Klammer oder so was. Schau dir mein Beispiel nochmal genau an. Außerdem gibt es in dem Script Editor eine Fehlerüberprüfung. Erst wenn diese „keine Fehler“ meldet, hast du eine Chance ;)

      Antworten
    • Philipp
      Philipp sagte:

      Sorry, Hälfte vergessen: an der CCU2 kannst du diesbezüglich nichts konfigurieren. Am Router auch nicht. Es bleibt also nur ein Fehler im Script.

      Antworten
  31. Ralf
    Ralf sagte:

    Hallo zusammen,
    nach einigem hin und her kann ich nun über den Browser Telegramm an mein Handy verschicken. Aber ich bekomme es trotz des guten Tutoriums einfach nicht hin, diese in meine CCU2 einzubauen.
    Default Script mit eigener Chat ID und API key. Ich nutze keine Umlaute und habe die URL schon mehrfach im Browser probiert und sie geht problemlos.
    Danke schon mal vorab für etwaige Tipps

    Antworten
  32. thomas
    thomas sagte:

    Hallo,
    kann man auch in eine Gruppe chatten, worin der _bot auch Mitglied ist? Wenn ja, wie bekommt man die ChatID der Gruppe raus?
    Besten Gruß

    Antworten
  33. Alex
    Alex sagte:

    Hallo Philipp,
    vielen Dank für die Anleitung. Nach einigem hin und her klappte es dann. ich bin auch an {„ok“:true,“result“:[]} ersteinmal sehr lange hängengeblieben. Ich habe es dann gefunden und schreibe es hier mal nieder um etwas Licht zu schaffen für Leute wie mich, die das erste mal mit einem bot arbeiten:
    Zwischen Schritt 8 und 9 muss noch etwas erfolgen. Unter 8 steht zwar, dass man dem bot eine Nachricht schreiben soll. Ich dachte bislang, dass ich in dem normalen Fenster, wo ich mit botfather schreibe eine Nachricht schreiben muss. Was fehlt ist also der Hinweis, dass ich zunächst in den von mir erstellten bot gelangen muss. Da ich eine Nacht darüber geschlafen habe meldete ich mich heute früh wieder unter web.telegam.org an. Danach wechselte ich in den Chat mit botfather und habe nochmals /mybots eingegeben. Dann kommt Choose a bot from the list below. Die Knöpfe die da stehen sind erstmal egal. Dann habe ich in die Kommandozeile @xxxxx_bot (wobei xxx für meinen bot steht, der oberhalb der erwähnten Knöpfe steht) und Enter gedrückt. Dadurch ändert sich die Farbe des eben eingegeben und wird unterstrichen. UND JETZT auf diese Zeile drücken (also @xxxxx_bot um beim Beispiel zu bleiben, was wie gesagt unterstrichen und andersfarbig ist). Und siehe da: es öffnet sich ein Chat mit dem bot. UND HIER jetzt irgendwas reinschreiben…und weiter mit Punkt 9 aus der Liste. Ich hoffe, diese Schritt für Schritt Zwischenanleitung hilft den anderen etwas.
    Beste Grüße, Alex

    Antworten
  34. Jan
    Jan sagte:

    Vielen Dank für diese tolle Anleitung! Funktioniert super.
    Für alle, bei denen anstelle der Chat ID nur {„ok“:true,“result“:[]} erscheint ein Tip:
    Telegram unterstützt nur ein aktives Browserfenster. Wenn ihr also zwei Telegram Fenster offen habt (z.B. weil ihr den API Key aus dem einen Fenster in das andere kopiert habt), klappt es nicht. So war es zumindest bei mir.
    Also nur ein Browserfenster gleichzeitig öffnen, dann sollte es klappen.

    Antworten
    • Philipp
      Philipp sagte:

      Cool, danke für den Hinweis. Mir ist es nie gelungen den Fehler nachzustellen, aber ein zweites Fenster hatte ich wahrscheinlich nie offen.
      Danke!

      Antworten
  35. T1J
    T1J sagte:

    Hi Zusammen,

    gute Sache hier. Ich hätte das aber lieber gerne via E-Mail über einen SMTP Server. Sprich als Push-Email.

    Geht das auch irgendwie? Falls ja, was genau muss ich hier tun, damit ich für gewisse Ereignisse E-Mails von der CCU geschickt bekomme. Dachte, dass geht von „Haus aus“ bei der CCU. Ist wohl aber nicht so.

    Antworten
      • T1J
        T1J sagte:

        Ok – danke für die Antwort. Mache mir halt Gedanken wegen Sicherheit. Da sehe ich die SMTP Variante als sicherer an, als die Telegram Variante.

        Von daher versuche ich es mit SMTP.

        Wobei das mit den Skripten und so schon ne komplizierte Sache ist für einen HM Einsteiger.

        Antworten
  36. Lothar Boes
    Lothar Boes sagte:

    Hallo Philipp,

    schade, bekomme beim Versuch die Chat_ID zu erhalten als Antwort:
    {„ok“:true,“result“:[]}

    Habe jetzt schon zig Versuche gestartet.. Unterhaltung über das Smartphone und dem PC mit dem botfather?!

    Woran kanns liegen?
    Vielen Dank
    Lothar

    Antworten
    • Philipp
      Philipp sagte:

      Hallo Lothar, du musst am PC dem bot eine Nachricht schicken und danach im gleichen (!) Browsertag die chatid abrufen. Bei mir funktioniert das ohne Probleme.

      Antworten
  37. Tobi
    Tobi sagte:

    Hi,

    vielen Dank für die tolle Anleitung. Habe nach einer Möglichkeit gesucht kostenfrei Pushnachrichten von der CCU zu bekommen ohne vielen Daten preis geben zu müssen und das ganze soll natürlich sicher und verschlüsselt sein :) Quasi die eierlegendewollmilchsau.
    Das ist sie. Danke

    Antworten
  38. Timo
    Timo sagte:

    Hallo!
    Ich versuche gerade mit der Anleitung die Chat id zu bekommen. Meinen Bot habe ich erstellt. Dann habe ich dem Bot eine Nachricht geschrieben.
    Mit „https://api.telegram.org/bot/getUpdates“ (mit meinem Api Key) erhalte ich immer nur „{„ok“:false,“error_code“:401,“description“:“Unauthorized“}“

    Was mache ich falsch?

    Antworten
    • Gal
      Gal sagte:

      Hi Phillip,

      ich bekomme auf diesem Wege auch keine ChatID. Ich bekomme immerhin nur ein
      {„ok“:true,“result“:[]}

      Nimmst du einen neuen BrowserReiter – oder den gleichen? Welchen Browser hast Du verwendet?

      Gruss,
      Gal

      Antworten
      • Philipp
        Philipp sagte:

        Hi,
        ich nehme den gleichen Tab/Fenster. Ganz wichtig ist, dass du dem Bot im Browser irgendwas schreibst, bevor du die andere URL reinkopierst.
        Ich verwende Chrome in der Version 53.0.2785.143. Habe es gerade nochmal probiert und es hat sofort funktioniert. Natürlich erst, nachdem ich dem Bot was geschrieben habe, dass ich das in der Vergangenheit schon mal getan habe hat nicht gereicht. Es muss in dieser Session passiert sein.
        Gruß
        Philipp

        Antworten
    • Philipp
      Philipp sagte:

      Das kommt wenn der API Key falsch ist (Unauthorized). Achte ganz penibel darauf, dass die Struktur dem folgenden Beispiel entspricht:
      https://api.telegram.org/bot557138945:AAfdjdfuTDkQ9cirHCUQMNF/getUpdates
      Das Wort „bot“ muss manuell eingegeben werden, dann der API Key (mit dem Doppelpunkt) und dann weiter mit „/sendMess…“. Es dürfen keine Leerzeichen enthalten sein! Am besten bastelt man sich den Link mit Notepad zusammen.
      Viel Erfolg!

      Antworten
        • Philipp
          Philipp sagte:

          Hallo Ralf,
          schließe alle Browserfenster und -tabs und gehe danach die Schritte nochmal sauber durch. Wichtig ist dabei, dass du alles im gleichen Tab und Browserfenster machst. Dann sollte es funktionieren.
          Gruß, Philipp

          Antworten
          • Ralf
            Ralf sagte:

            Nein ,es kommt nichts zurück auch nicht am anderen PC
            Muss noch was installiert oder aktiviert sein?

  39. PhilippG
    PhilippG sagte:

    Hi,

    danke für die super Anleitung.
    Die Push Nachrichten werden perfekt an das Handy weitergeleitet und heute Abend werde ich die Scripts in meine CCU2 einbinden.

    Eine Frage hätte ich noch, die du mir sicher schnell beantworten kannst.
    Gibt es eine Möglichkeit, dass ich einen Wert der CCU2 auslesen kann und dieser als übergeben wird ??

    z.B. wenn die Außentemperatur 19 Grad beträgt, dass dieser Wert als Nachricht mit übermittelt wird =??

    Danke

    MFG Gerber

    Antworten
    • Philipp
      Philipp sagte:

      Hi, klar geht das. Du änderst das Script wie folgt ab:

      string stderr;
      string stdout;
      var objTemp = dom.GetObject(„BidCos-RF.LEQ001234:1.TEMPERATURE“);
      var aussentemperatur = objTemp.State();
      string temp = aussentemperatur.ToString(1);
      string messageText=“Es sind “ # temp # “ grad“;
      string url=“\“https://api.telegram.org/bot111111115:AxxxxxxxxxxxxxxxxxxxxxA/sendMessage?chat_id=911143&text=“ # messageText #“\““;
      system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

      In Zeile 3 musst du die Seriennummer von deinem Außentemperatursensor ersetzen, das „:1″ bleibt.
      In Zeile 6 passt du den Nachrichtentext an. Die Raute verkettet zwei Zeichenketten (=texte) miteinander. In der Variable temp steht die Außentemperatur mit einer Nachkommastelle (mehr liefert der Sensor nicht).
      In Zeile 7 ersetzt du den Nachrichtentext in der URL durch die Variable MessageText (das hier: text=“ # messageText #“\““;). Das habe ich gemacht, damit das ganze etwas übersichtlicher ist.

      Am Ende unbedingt die Fehlerprüfung starten. falls sie fehlschlägt hast du vielleicht ein Anführungszeichen, eine Raute oder ein Semikolon vergessen. Da es bereits funktioniert hat, solltest du mit den kleinen Modifikationen hinkommen.
      Ich habe das Script gerade genau so bei mir getestet. Es hat funktioniert.

      Viel Erfolg!

      Antworten
      • PhilippG
        PhilippG sagte:

        Wow, vielen vielen Dank…

        Werde ich mich doch heute Abend gleich mal an die Arbeit machen ;-).

        Respekt für alles.

        MFG Gerber Philipp

        Antworten
      • Dave
        Dave sagte:

        Grandios, es hat bei mir auf Anhieb funktioniert.
        VIELEN Dank!
        Ich würde gerne noch mal die Frage von PhllipG aufgreifen und sie erweitern.
        Ich möchte gerne eine Nachricht, falls ich vergesse die Fenster nach dem Lüften in der kalten Jahreszeit wieder rechtzeitig zu schließen.
        Ich kann zwar über WebUI als Skript die Nachricht um 10 min verzögert senden, aber wenn das Fenster wieder zu ist, diese Nachricht nicht „löschen“ / nicht auslösen lassen.
        Hast Du da evtl ein Tip
        Am besten noch mit Außentemperatur in Verbindung, dass es ab x Grad erst überhaupt meldet.

        Antworten
      • Markus
        Markus sagte:

        Hallo,

        habe versucht das ganze um zu schreiben, so das ich die
        Raumtemperatur vom Thermostat bekomme.
        Leider ohne erfolg. Wollte das die CCU mir alle 2 Stunden
        die Aktuelle Raumtemperatur schickt. Hier das geänderte Skript:

        string stderr;
        string stdout;
        var objTemp = dom.GetObject(„BidCos-RF.MEQ1882420:1.TEMPERATURSENSOR“);
        var innentemperatur = objTemp.State();
        string temp = innentemperatur.ToString(1);
        string messageText=“Es sind “ # temp # “ grad“;
        string url=“\“https://api.telegram.org/botxxxxxxxxxx/sendMessage?chat_id=xxxxxxxxx&text=“ # messageText #“\““;
        system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

        und hier der ausgegebene Fehler:

        Error 1 at row 3 col 30 near ^„BidCos-RF.MEQ1882420:1.TEMPERATURSENSOR“);
        var innentemperatur = objTemp.St
        Parse following code failed:
        string stderr;
        string stdout;
        var objTemp = dom.GetObject(„BidCos-RF.MEQ1882420:1.TEMPERATURSENSOR“);
        var innentemperatur = objTemp.State();
        string temp = innentemperatur.ToString(1);
        string messageText=“Es sind “ # temp # “ grad“;
        string url=“\“https://api.telegram.org/botxxxxxxx/sendMessage?chat_id=xxxxxxxx&text=“ # messageText #“\““;
        system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

        Was hab ich falsch gemacht??

        Danke schonmal – Markus

        Antworten
        • Philipp
          Philipp sagte:

          Hallo Markus,

          du hast den falschen Kanal ausgewählt. Für einen Heizkörperthermostat musst du

          var objTemp = dom.GetObject(„BidCos-RF.LEQ0108532:4.ACTUAL_TEMPERATURE“);

          und für ein Wandthermostat

          var objTemp = dom.GetObject(„BidCos-RF.LEQ0109552:2.ACTUAL_TEMPERATURE“);

          verwenden. Du hast bei dir den Gerätenamen (Temperatursensor) verwendet. Das geht lieder nicht. Die Geräteauswahl erfolgt über die Seriennummer. Dann kommt gefolgt von einem Doppelpunkt die Kanalnummer und dann gefolgt von einem Punkt der entsprechende Wert. Im Falle der Heizkörper oder Wandthermostate ist der Kanal 4 oder 2 und die aktuelle Temperatur ist jeweils ACTUAL_TEMPERATURE.

          Damit sollte das klappen. Ich wollte das gerade ausprobieren aber meine CCU2 stürzt gerade permanent ab (wegen Problemen mit dem wired Modul, nicht wegen push nachrichten) :(

          Viel Erfolg!

          Antworten
  40. Nico
    Nico sagte:

    Moinsen,

    ich bekomme bei dem Schritt mit dem Kopieren meines API-Keys immer nur die Antwort: „{„ok“:true,“result“:[]}“, das ist alles… Was mache ich falsch?

    Antworten
    • Michael
      Michael sagte:

      Bei mir das gleiche Problem ! Hab es sowohl an einem Mac (Safari), als auch an einem PC (Internet Explorer) ausprobiert. Vielleicht ist der Bot im Urlaub ? Spaß beiseite: schade, dass es nicht klappt, hat jmd. eine Lösung ?

      Antworten
  41. Stefan
    Stefan sagte:

    Hallo Philipp! Mit deiner Anleitung habe sogar ich es geschafft! Und das will was heissen!
    Für mich ist das der bisher einfachste Weg zur kostenfreien Weiterleitung von Meldungen der CCU2.
    Vielen Dank!

    Stefan

    Antworten
  42. Andreas Barkowski
    Andreas Barkowski sagte:

    Hallo Philipp,

    die URL funktioniert einwandfrei, aber das Script funktioniert bei mir nicht. Es wird partout keine Meldung ausgegeben wenn die Tür geöffnet wird. Woran kann das liegen?

    Viele Grüße,
    Andreas

    Antworten
    • Philipp
      Philipp sagte:

      Hi,
      es gibt Probleme, wenn der Text Umlaute enthält. Ich gehe mal davon aus, dass du das Wort „Tür“ in der Nachricht verwendet hast.
      Ich habe gerade einen Nachtrag im Artikel hinzugefügt. Dort beschreibe ich was genau zu tun ist. Ich hoffe, das löst dein Problem. Wenn nicht, nochmal melden!

      Gruß
      Philipp

      Antworten
  43. Henning
    Henning sagte:

    Hallo, habe gerade erfolgreich Nachrichten mit der CCU versenden können, bin aber auf eine Falle gestoßen: Der Nachrichtentext darf keine umlaute enthalten, diese müssen entweder vermieden werden, oder speziell kodiert werden.

    Antworten
    • Philipp
      Philipp sagte:

      Hallo Henning,
      vielen Dank für dein Feedback!! Interessanterweise hat ein Freund mir das auch schon berichtet, es ließ sich aber dann nicht mehr reproduzieren. Habe es gerade nochmal ausprobiert und bin auf das selbe Problem gestoßen. Ich habe den Artikel um einen Nachtrag ergänzt, der auch beschreibt, wie die Umlaute genau kodiert werden müssen.

      Viele Grüße
      Philipp

      Antworten
        • Philipp
          Philipp sagte:

          Hi, ich muss leider zugeben, dass ich noch nie mit der CCU1 gearbeitet habe. Aber grundsätzlich sollte es funktionieren. Du rufst mit dem script einfach das Programm wget auf (welches eines DER Linux standard tools ist). Wenn es nicht zum Umfang der CCU1 gehört, kann auch nichts kaputt gehen, es würde einfach nicht funktionieren ;)

          Antworten
  44. Uwe
    Uwe sagte:

    Hi,
    danke erstmal für die Anleitung hat soweit auch gut geklappt. Eine Frage hätte ich dazu dann aber doch noch. Kann man in der App von mehreren Benutzern aus drauf zugreifen, oder muss ich für jeden Benutzer einen eigenen Bot anlegen?
    Wenn zB ich und meine Frau eine Beachrichtigung bekommen sollen.

    Antworten
    • Sebastian
      Sebastian sagte:

      Hallo Uwe, da jeder Benutzer, also Du und deine Frau eine eigene Chat-ID haben, geht es leider nicht. Du kannst aber ganz einfach die gleichen Schritte auch für das Handy deiner Frau machen und fügst dann im Skript einfach 2 Nachrichten ein. Eine für Dein Handy und eine 2 Nachricht mit dem Bot und der Chat-ID Deiner Frau.

      Antworten
  45. Stephan
    Stephan sagte:

    Hi Philip,

    eure Tutorials sind wirklich super und leicht vferständlich. Leiuder habe ich immer wieder Probleme mit den Skripten :-( Was genau beudetet es , wenn du schreibst „4.Als Script wird folgendes eingegeben, natürlich wieder , und ersetzen“ Das mit der ANchricht verstehe ich ja noch, aber was soll ich bei API_KEY und CHAT_ID einsetzen?

    Weiterhin würde mir ein Tutorial zur Einbindung eine IP Cam helfen. Bin bisher in den Foren nicht fündig geworden…zumindest nicht was MIR hilft :-( Habt ihr sowas parat?

    Lieben gruß und frohe Ostern!

    Stephan

    Antworten
    • Philipp
      Philipp sagte:

      Hallo Stephan,
      freut mich, dass Dir unsere Tutorials gefallen. Scheinbar war es doch nicht verständlich genug ;)

      Den API_KEY generierst du in den Schritten 1 bis 7 im Kapitel „Einrichten des Telegram Bots“. Die Schritte 8 und 9 Helfen bei der Ermittlung der CHAT_ID. Diese beiden Werte sind bei jedem Benutzer anders. Mit dem API_KEY identifizierst du dich gegenüber den Telegram Servern und weist deine Berechtigung nach. Ganz wichtig ist, dass Schritt 10 funktioniert! Wenn du keine Nachricht beim Aufruf der Webseite bekommst, brauchst du die CCU2 nicht anzufassen.

      Zu dem Script: Du legst ein neues Zentralenprogramm an. Als Auslöser (1. Punkt) sagst du zum Bespiel „Wenn Haustür geöffnet“. Im zweiten Schritt, könntest du ein Gerät Wählen (z.B. Licht) oder du wählst „Script“ aus der Liste. Anschließend erscheint rechts neben dem Auswahlliste ein Link mit dem Wort „Script“. Diesen Link klickst du an, darauf hin öffnet sich ein neues Fenster. In den oberen Teil kopierst du das Script aus meinem Tutorial.

      Zu der Kamera: Was genau willst du machen? Eine Kamera in die CCU2 direkt einzubinden macht wenig Sinn, da die CCU keine brauchbare Oberfläche hat. Wenn du auf erkannte Bewegungen der Kamera mit der CCU reagieren willst, ist das sehr aufwändig. Wenn es dir zum Beispiel um ein Tablet an der Wand geht, welches die Zugriff auf Homematic bietet, kann ich dir entsprechende Apps empfehlen. Es gibt Apps, die zeigen dir dein Homematic und unabhängig davon lässt sich das Bild einer Kamera einbauen. Ich wollte mir in nächster Zeit, genau für den Wand-Tablet Fall die Android App „HomeStatus Display“ anschauen. Die macht einen guten Eindruck und unterstützt auch IP Kameras. Vielleicht kommt auch bald ein Artikel dazu ;)

      Ich hoffe, ich konnte helfen!

      Viele Grüße
      Philipp

      Antworten
      • Stefan Huff
        Stefan Huff sagte:

        Hallo Philipp,

        ich habe einen HM Klingelsignalsensor, und dank deiner Hilfe funktioniert dieser mit der CCU2 über Telegram schon seit Wochen ganz einwandfrei! Danke!
        Jedoch soll das Klingelsignal, falls man gerade außer Haus oder im Garten ist, an mehrere Endgeräte geschickt werden.

        Als erstes holte ich den Bot in eine Gruppe, allerdings regt er sich dort nach Auslösen des Signals nicht.
        Über das Skript oder ein zweites Skript (mit eigenem Tokken und ChatID) konnte ich das bis jetzt auch nicht realisieren.
        Kannst du mir da helfen?

        Gruß Stefan

        Antworten
    • Philipp
      Philipp sagte:

      Hast du mal versucht den link von der telegram API in einem Browser zu öffnen? Kommt dann die Push Nachricht? Wenn nicht, ist der Link nicht richtig zusammengesetzt. Andernfalls liegt der Fehler auf CCU Seite.

      Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar zu Tobi Antworten abbrechen

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