Schlagwort-Archive: Homematic Telegram funktioniert nichth mehr

HomeMatic Bilder über Telegram pushen – UPDATE fix

Update 2: scheinbar klappt es bei einigen Usern noch immer nicht, oder nicht mehr, Bilder von IP-Kameras zu speichern und dann per Telegram Nachricht zu versenden. Bei mir hat es auf meiner ziemlich vollgestopften CCU2 immer funktioniert.

Jetzt, da ich ja aufgrund der Covid Ausgangsbeschränkungen, wie viele Österreicher immer zuhause sein muss, habe ich mir die Zeit genommen und mich ein wenig genauer mit der Thematik beschäftigt. Und da niemand lange um den „heißen Brei“ herum lesen möchte, komme ich gleich zur Sache: Dass es auf meiner CCU2 funktioniert hat, liegt daran, dass sie aufgrund des „mit Skripten und Programmen vollgestopften Zustandes“ in ihrer Abarbeitungsgeschwindigkeit ziemlich gebremst war. Darum funktionierte es auch in ein und demselben Skript, die Bilder von den IP Kameras abzuholen und im /tmp/ Ordner zu speichern und sie nur zwei Zeilen weiter im Skript per Telegram API zu versenden.

Die Bilder waren einfach noch nicht fertig im Filesystem gespeichert und die unvollständigen Dateien wurden schon gesendet.

Hier die einfache Lösung:

Das Skript in zwei separate Teile zerlegen und nach einander mit einer Verzögerung von ein bis zwei Sekunden abarbeiten lassen:

anklicken zum Vergrößern

Im ersten Skript werden jetzt lediglich die IP-Cams aufgerufen und die Bilder als Dateien gespeichert. Im zweiten Skript wird, wie schon zuvor die Telegram API aufgerufen. Jedoch wird das zweite Skript 1-2 Sekunden später gestartet. Dann sind schon alle Files gespeichert und kommen auch über Telegram an…

getestet auf CCU2, RaspiMatic (sollte auch auf der CCU3 klappen)

 

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….