Homematic Nachrichten per Telegram UPDATE

Update: bei mir war auch die Pfadangabe zum „curl“ Befehl das Problem. Mit Angabe des „pseudo“ absoluten Pfades zum Befehl wurde er nicht mehr gefunden. Siehe unten:

 es genügt, den curl Befehl direkt aufzurufen, also anstelle von : ….State(„extra/curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage…..

die Pfadangabe „extra/“ entfernen, je nach CCU Variante und Cuxd Version, also:  …… State(„curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage …..

Wer sich nicht sicher ist, wo das Commando liegt, am besten im cuxd oder über SSH nachsehen…

Update Ende.

In den Kommentaren zum Beitrag „Nachrichten pushen mit Telegram“ wurde mehrfach darauf hingewiesen, dass die Pushnachrichten nicht mehr gesendet werden. Zuerst dachte ich es gibt irgendwelche grundlegende Änderungen bei der Telegram Api. Aber dem war nicht so. Also habe ich noch einmal ein Skript zusammengebastelt. Um zu debuggen, habe ich einen gesamten String aus einzelnen Teilen zusammengebaut. Das ist zwar alles andere als schön, aber es lässt sich leichter nachvollziehen was funktioniert oder eben nicht. Auch den Pfad zum curl-Kommando habe ich vollständig angegeben. Mit dem folgenden Beispiel Skript funktioniert bei mir die Textausgabe wieder:

 string msg = "Hallo Telegram";  
 string chatid = "123456789";                     
 string botAPI = "987654321:AABBCCDDEEFFGGGHHIIJJKKLLMMNNOOPPQQ";   
 string request;  
 string command1 = "/usr/local/addons/cuxd/curl -s -k https://api.telegram.org/bot"; !#botAPI#   
 string command2 = "/sendMessage -F text="; !#msg#   
 string command3 = " -F chat_id="; !#chatid#  
 request = command1+botAPI+command2+msg+command3+chatid;  
 dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(request);  

 

Dann sollte alles wieder klappen….

6 Gedanken zu „Homematic Nachrichten per Telegram UPDATE“

  1. Hi, das Script rein mit Text zu senden funktioniert. Aber das Senden eines Bildes nicht. Das Bild wird im tmp angelegt, aber das Senden an Telegram geht nicht.

  2. Danke, das Senden von Text geht wieder. Leider nur das erste Wort, setzt man das Zeichen _ zwischen die Wörter wird alles gesendet. Weiterhin gehen keine Umlaute, taucht ein Umlaut im String auf funktioniert es nicht mehr. Ich denke es wurde doch etwas in Telegram geändert.

    1. Hi Thoralf,
      das Problem mit den Umlauten hatte ich auch. Du musst den Text vor dem Versenden UTF-8 kodieren:
      text = text.ToUTF8();
      Dies und ein paar weitere hilfreiche Funktionen stehen gut erklärt in der Script-Dokumentation von HomeMatic (einfach mal danach googlen).
      Viele Grüße
      Jörg

  3. Hallo,

    bei mir funktioniert das nicht… Im Log steht


    Apr 13 14:44:41 ccu2 local0.err ReGaHss: ERROR: ScriptRuntimeError: string msg = „HalloTelegram“; string chatid = „00000000“; string botAPI = „1000000000:Agfdlgkflgklfkglkglkgökgkgök“; string request; string command1 = „/usr/local/addons/cuxd/curl -s -k https://api.telegram.org/bot„; !#botAPI# string command2 = „/sendMessage -F text=“; !#msg# string command3 = “ -F chat_id=“; !#chatid# request = command1+botAPI+command2+msg+command3+chatid; dom.GetObject(„CU

    1. Hallo Sascha,
      ich hatte anfangs das gleiche Problem. Daraufhin habe ich mir ein virtuelles System-Gerät unter CUxD erstellt. Danach konnte ich der CURL-Befehl absetzen. Es funktioniert bei mir jedoch weiterhin nur ohne Umlaute im Text, aber damit kann ich leben.
      VG Jörg

  4. Hallo Jungs
    Super Anleitung danke für eure Hilfe, ich habe alles nach Anleitung gemacht konnte über den Browser auch Nachrichten verschicken. Leider sendet meine ccu3 keine Nachrichten gibt es eine Lössung ?
    CCU3 -Firmware: 3.51.6 CUxD Version 2.4.3 ?

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.