Seite 1 von 1

CuxD.Exec tut nichts

Verfasst: 09.01.2017, 17:46
von Gawan
Hallo,

ich habe gerade CuxD neu installiert und versuche jetzt wieder ein paar Skripte zum Laufen zu bringen.
Das CuxD Gerät erscheint korrekt in der Geräte-Liste, mehr hab ich vorerst nicht gemacht.

Eine meiner Skripte davon ruft mir einen Webservice auf und legt dort ein paar Daten ab.

Code: Alles auswählen

string    url       = "http://10.0.0.19:80/api/values";
string    postVars    = "param=Garagentor_Offen&user=10.0.0.21&value=1&p1=Homematic&p2=LAN&p3=HM&p4=x&p5=x";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d '" # postVars # "' " # url);
Ich mache das ganze mit CUxD.CMD_EXEC.
Leider scheint das plötzlich nicht mehr zu funktionieren. Ich bekomme zwar beim Testen des Skripts keine Fehlermeldung, es wird aber scheinbar nie ausgeführt, d.h. es kommen keine Daten an.

Habe ich irgendwas beim CuxD Setup vergessen das die ganze Sache "einschaltet" ?

Edit 1:
Ich hab jetzt ein wenig herumprobiert und folgende Fehlermeldung im Log gefunden:

Code: Alles auswählen

Jan  9 18:12:42 homematic-raspi daemon.warn cuxd[324]: setValue 'CUX2801001:1.CMD_EXEC=LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d 'param=Power_WZ' http://10.0.0.19:80/api/values' not found!

Edit 2:
Ich hab im Filesystem entdeckt, dass CURL in einem anderen Unterordner liegt und den Pfad angepasst:

Code: Alles auswählen

Jan  9 18:38:43 homematic-raspi daemon.warn cuxd[324]: setValue 'CUX2801001:1.CMD_EXEC=LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/extra/curl -s -d 'param=Power_WZ' http://10.0.0.19:80/api/values' not found!
Trotzdem noch diese Fehlermeldung


lG
Gawan

Re: CuxD.Exec tut nichts

Verfasst: 09.01.2017, 19:36
von grissli1
Und du hast auch alles richtig installiert? Also mit den 2 Reboots?

Viele Grüße
Chris

Re: CuxD.Exec tut nichts

Verfasst: 11.01.2017, 15:54
von uwe111
grissli1 hat geschrieben:Also mit den 2 Reboots?
Müsste er eigentlich, denn sonst wäre da keine Meldung im Syslog.
Gawan hat geschrieben:Trotzdem noch diese Fehlermeldung
Funktioniert die Befehlszeile, wenn Du Dich direkt auf der CCU per Putty anmeldest und sie aufrufst?

Viele Grüße

Uwe

Re: CuxD.Exec tut nichts

Verfasst: 12.01.2017, 11:37
von alchy
Probier mal:

Code: Alles auswählen

string url = "http://10.0.0.19:80/api/values";
string postVars = "param=Garagentor_Offen&user=10.0.0.21&value=1&p1=Homematic&p2=LAN&p3=HM&p4=x&p5=x";
dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k "#url #" -d "#postVars);
oder

Code: Alles auswählen

string url = "'http://10.0.0.19:80/api/values'";
string postVars = "'param=Garagentor_Offen&user=10.0.0.21&value=1&p1=Homematic&p2=LAN&p3=HM&p4=x&p5=x'";
dom.GetObject("CUxD.CUX2801001:2.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k "#url #" -d "#postVars);
oder eine Kombination aus beiden.

Alchy

Re: CuxD.Exec tut nichts

Verfasst: 12.01.2017, 13:13
von alchy
Als da wären z.B.

Code: Alles auswählen

string url = "'http://10.0.0.19:80/api/values'";
string postVars = "param='Garagentor_Offen'&user='10.0.0.21'&value='1'&p1='Homematic'&p2='LAN'&p3='HM&p4=x'&p5='x'";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:2.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k "#url #" -d "#postVars);
Und dabei ist mir noch etwas aufgefallen.
Sicher das das &p3=HM&p4=x&p5=x so da hin muss?

Am besten ist es aber immer noch den Curlbefehl auf der Kommandozeile auszuführen und die Rückgabe zu posten.
Oder aber noch viel besser das Script so abändern, das du gleich eine Rückgabe erhältst.

[EDIT]

Und das wäre dann ungefähr so mit meinem Favoritenversuch: :mrgreen:

Code: Alles auswählen

string url = "http://10.0.0.19:80/api/values";
string postVars = "param='Garagentor_Offen'&user='10.0.0.21'&value='1'&p1='Homematic'&p2='LAN'&p3='HM&p4'&p5='x'";
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_SETS").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k "#url #" -d "#postVars);
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine(srueck);
[/EDIT]

nun bist du dran. :mrgreen:

Alchy

Re: CuxD.Exec tut nichts

Verfasst: 15.01.2017, 17:37
von Gawan
Hallo,

sodala, ich hab da jetzt LANG herumprobiert und letzten Endes die CCU zurückgeschickt und eine neue bekommen.
Damit hat es nach den 2-3x Reset nach der CuxD-Installation auf Anhieb beklappt. :D

Folgenden Code führe ich aus:

Code: Alles auswählen

var power = dom.GetObject("BidCos-RF.LEQ0966880:2.POWER").Value();
WriteLine(power);

string    url       = "http://10.0.0.19:80/api/values";
string    postVars    = "param=Power_Buero&user=10.0.0.21&value="#power#"&p1=Homematic&p2=LAN&p3=HM&p4=x&p5=x";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d '" # postVars # "' " # url);

Ist es irgendwie möglich die Aktivitäten von CuxD kontrolliert (mit von mir definierten Werten) im Log mitzuprotokollieren ?
Mir gehen viele Aktionen ab die ich mit einem zeitgesteuerten Programm ausführen lasse und ich weiß nicht ob CuxD oder der Scheduler schuld ist.

lG
Gawan

Re: CuxD.Exec tut nichts

Verfasst: 16.01.2017, 14:47
von uwe111
Gawan hat geschrieben:Ist es irgendwie möglich die Aktivitäten von CuxD kontrolliert (mit von mir definierten Werten) im Log mitzuprotokollieren ?
Du kannst die Protokollierung für jedes Gerät auf der CCU (auch die CUxD-Geräte) kontrolliert unter den Geräteeinstellungen aktivieren/deaktivieren.

Viele Grüße

Uwe

Re: CuxD.Exec tut nichts

Verfasst: 16.01.2017, 23:39
von alchy
uwe111 hat geschrieben: Du kannst die Protokollierung für jedes Gerät auf der CCU (auch die CUxD-Geräte) kontrolliert unter den Geräteeinstellungen aktivieren/deaktivieren.
Das war zu einfach. :mrgreen:

Alchy