Telegramm Skript

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Hofi90
Beiträge: 29
Registriert: 24.08.2016, 16:01
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Telegramm Skript

Beitrag von Hofi90 » 06.01.2020, 14:17

Hallo,
nape1 hat geschrieben:
06.01.2020, 12:24
Ich denke mal du wirst auch den Fehler exit127 haben.
Richtig, den habe ich. Nach kurzer Forensuche bin ich hier anscheinend nicht der einzigste... Na toll :roll:

@blackhole:
CCU Version: 2.49.18
CUxD Version: 2.3.3

Es klappt übrigens weder mit nur "curl" noch mit "/usr/bin/curl"

Das Skript in der Form war unter Firmware 2.47.15 lauffähig (klar, da gabs ja dieses Update bezüglich curl noch nicht), daher gehe ich davon aus, dass am Skript selber prinzipiell nichts falsch ist.

Danke schonmal für eure Mühe!

Grüße

Andreas

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Telegramm Skript

Beitrag von blackhole » 06.01.2020, 14:54

Hofi90 hat geschrieben:
06.01.2020, 14:17
@blackhole:
CCU Version: 2.49.18
CUxD Version: 2.3.3
Ich packe das mal hier einfach rein:
blackhole hat geschrieben:
06.01.2020, 12:49
nape1: Firmware x.xx.xx + CUxD x.x.x --> "nur curl" klappt
Hofi90: Firmware 2.49.18 + CUxD 2.3.3 --> "nur curl" klappt nicht (vermutlich LD_LIBRARY_PATH-Problematik)

Falls das identisch sein sollte, wovon ich erst einmal nicht ausgehe, bleibt fast nur noch ein Problem in der Versions-/Update-Historie von CUxD bei einer Installation als Ursache übrig. Vergleichbare, korrekte Skript-Aufrufe natürlich immer vorrausgesetzt - ich habe das hier nicht im einzelnen kontrolliert.

Hofi90 hat geschrieben:
06.01.2020, 14:17
Es klappt übrigens weder mit nur "curl" noch mit "/usr/bin/curl"
Und wie sieht es mit "LD_LIBRARY_PATH=/usr/local/lib /usr/bin/curl" aus?
Oder richtigerweise: Wie sieht es mit: "LD_LIBRARY_PATH=/usr/lib /usr/bin/curl" aus?

Zur Erklärung: Die zugehörige Library liegt in /usr/lib der Pfad zeigt aber auf das (nicht vorhandene) Verzeichnis /usr/local/lib - so zumindest bei einer CCU3. Das ist übrigens ein Bug in der Firmware, der mal behoben werden müsste.

Hofi90
Beiträge: 29
Registriert: 24.08.2016, 16:01
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Telegramm Skript

Beitrag von Hofi90 » 06.01.2020, 16:04

blackhole hat geschrieben:
06.01.2020, 14:54
Oder richtigerweise: Wie sieht es mit: "LD_LIBRARY_PATH=/usr/lib /usr/bin/curl" aus?
damit funktioniert es! :shock:

Mein Skript lautet nun:

Code: Alles auswählen

! Telegram Push Foto Huehner
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O '/tmp/huehner.jpg' 'http://192.168.1.81:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=Admin&pwd=XXX'");

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/lib /usr/bin/curl -s -k 'https://api.telegram.org/botXXX/sendPhoto' -F chat_id=XXX -F photo='@/tmp/huehner.jpg' -F caption='Hallo Andreas, so schauts gerade bei den Maedels aus. Gruesse Homematic'");

Kann ich den Verweis denn irgendwie anpassen, dass er auf das richtige Verzeichnis zeigt? Oder wie kann ich es sonst vermeiden, in meinen Scripten jetzt überall "LD_LIBRARY..." ergänzen zu müssen?

Danke..

Grüße

Andreas

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Telegramm Skript

Beitrag von blackhole » 06.01.2020, 17:59

Hofi90 hat geschrieben:
06.01.2020, 16:04
damit funktioniert es!

Sehr schön, dann habe ich ja richtig orakelt. Sei so gut und teste jetzt bitte noch die Variante ohne Pfad zu curl:

Code: Alles auswählen

LD_LIBRARY_PATH=/usr/lib curl

Hofi90 hat geschrieben:
06.01.2020, 16:04
Kann ich den Verweis denn irgendwie anpassen, dass er auf das richtige Verzeichnis zeigt? Oder wie kann ich es sonst vermeiden, in meinen Scripten jetzt überall "LD_LIBRARY..." ergänzen zu müssen?
Also der Firmware-Bug ist diesbezüglich irrelevant. Das muss in CUxD angepasst werden. Da gibt's irgendwo eine Datei in der man das anpassen kann. Ich nutze selbst aber seit Jahren kein CUxD mehr und bin raus aus der Nummer. Ich meine aber das kürzlich im Forum oder auf Github noch gelesen zu haben.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Telegramm Skript

Beitrag von alchy » 06.01.2020, 18:21

Wie vorgestern und gestern schon gepostet:

Code: Alles auswählen

which curl
und

Code: Alles auswählen

echo $LD_LIBRARY_PATH
sollte die Einstellungen zeigen
und dann wäre noch profile.d

Code: Alles auswählen

string stdout;string stderr;
system.Exec("cat /etc/profile.d/usr-local-path.sh",&stdout,&stderr);
WriteLine(stdout);
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Telegramm Skript

Beitrag von blackhole » 06.01.2020, 19:03

alchy hat geschrieben:
06.01.2020, 18:21
Wie vorgestern und gestern schon gepostet:
...

Code: Alles auswählen

echo $LD_LIBRARY_PATH
...
sollte die Einstellungen zeigen
Und diese Einstellung ist ebenfalls falsch, wie oben schon erklärt und hier bestätigt. Bringt also nichts. Die Library liegt in /usr/lib - egal was da engezeigt wird.

blackhole hat geschrieben:
06.01.2020, 14:54
Die zugehörige Library liegt in /usr/lib der Pfad zeigt aber auf das (nicht vorhandene) Verzeichnis /usr/local/lib - so zumindest bei einer CCU3. Das ist übrigens ein Bug in der Firmware, der mal behoben werden müsste.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Telegramm Skript

Beitrag von alchy » 06.01.2020, 19:17

Ich habe geschrieben das der Befehl die Einstellungen ZEIGT
Was also ist daran verkehrt ? :roll:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Telegramm Skript

Beitrag von alchy » 06.01.2020, 19:52

Und wer das Ganze umbiegen will (auf einer CCU3) und sich es traut, der passt die im Script genannte Datei

/etc/profile.d/usr-local-path.sh

auf richtig an und startet die CCU neu. Theoretisch sollte das funktionieren.

Code: Alles auswählen

mount -o remount,rw /
vorher nicht vergessen um den Schreibschutz aufzuheben.
Leider schafft es ja kein CCU2 User mal mit zu arbeiten. Ich habe nur eine CCU 3 und hole meine CCU2 deswegen nicht raus.

Alchy
Zuletzt geändert von alchy am 06.01.2020, 21:23, insgesamt 1-mal geändert.
Grund: CCU3 Hinweis eingefügt, da CCU2 wohl die Datei nicht hat

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Hofi90
Beiträge: 29
Registriert: 24.08.2016, 16:01
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Telegramm Skript

Beitrag von Hofi90 » 06.01.2020, 20:00

blackhole hat geschrieben:
06.01.2020, 17:59
Sei so gut und teste jetzt bitte noch die Variante ohne Pfad zu curl:

Code: Alles auswählen

LD_LIBRARY_PATH=/usr/lib curl
Funktioniert nicht. Nur wenn ich den Pfad zu curl mitgebe, funktioniert es.

Code: Alles auswählen

which curl
Ausgabe: /usr/bin/curl

Code: Alles auswählen

echo $LD_LIBRARY_PATH
keine Ausgabe

Code: Alles auswählen

string stdout;string stderr;
system.Exec("cat /etc/profile.d/usr-local-path.sh",&stdout,&stderr);
WriteLine(stdout);
Das habe ich bei "Skript testen" eingegeben, hoffe, das war richtig. Aber auch hier erfolgt keinerlei Ausgabe.

Hoffe, das hilft euch weiter...

Danke

Grüße

Andreas

Hofi90
Beiträge: 29
Registriert: 24.08.2016, 16:01
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Telegramm Skript

Beitrag von Hofi90 » 06.01.2020, 20:11

blackhole hat geschrieben:
06.01.2020, 17:59
Also der Firmware-Bug ist diesbezüglich irrelevant. Das muss in CUxD angepasst werden. Da gibt's irgendwo eine Datei in der man das anpassen kann. Ich nutze selbst aber seit Jahren kein CUxD mehr und bin raus aus der Nummer. Ich meine aber das kürzlich im Forum oder auf Github noch gelesen zu haben.
Ok, ich mach' mich mal auf die Suche... aber wie kann das sein, dass dieses Problem dann nicht bei jedem auftritt? Irgendwas muss doch dann an meinem Setting anders sein als z.B. beim Thread-Opener...

alchy hat geschrieben:
06.01.2020, 19:52
Und wer das Ganze umbiegen will und sich es traut, der passt die im Script genannte Datei
/etc/profile.d/usr-local-path.sh
auf richtig an und startet die CCU neu. Theoretisch sollte das funktionieren.
Puh... das trau' ich mir, glaub' ich, nicht wirklich zu... so tief in den Eingeweiden der Produktiv-CCU (hab' leider keine Testumgebung) zu arbeiten (noch dazu ohne Linux Kenntnisse) kann blöd ausgehen...
alchy hat geschrieben:
06.01.2020, 19:52
Leider schafft es ja kein CCU2 User mal mit zu arbeiten. Ich habe nur eine CCU 3 und hole meine CCU2 deswegen nicht raus.
Sorry, ich geb' mein Bestes... und deine CCU2 brauchst deshalb nicht reaktivieren, man sieht ja, dass dein Wissen auch ohne CCU2 ausreicht, weiterzuhelfen... ^^

Grüße

Andreas

Antworten

Zurück zu „HomeMatic allgemein“