CuxD.Exec tut nichts

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Gawan
Beiträge: 488
Registriert: 11.12.2014, 23:40
Hat sich bedankt: 6 Mal
Danksagung erhalten: 2 Mal

CuxD.Exec tut nichts

Beitrag von Gawan » 09.01.2017, 17:46

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
Zuletzt geändert von alchy am 10.01.2017, 18:27, insgesamt 1-mal geändert.
Grund: Code in Codetags posten :-(

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: CuxD.Exec tut nichts

Beitrag von grissli1 » 09.01.2017, 19:36

Und du hast auch alles richtig installiert? Also mit den 2 Reboots?

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: CuxD.Exec tut nichts

Beitrag von uwe111 » 11.01.2017, 15:54

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
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

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

Re: CuxD.Exec tut nichts

Beitrag von alchy » 12.01.2017, 11:37

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

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: CuxD.Exec tut nichts

Beitrag von alchy » 12.01.2017, 13:13

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
Zuletzt geändert von alchy am 12.01.2017, 13:22, insgesamt 1-mal geändert.
Grund: EDIT

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.

Gawan
Beiträge: 488
Registriert: 11.12.2014, 23:40
Hat sich bedankt: 6 Mal
Danksagung erhalten: 2 Mal

Re: CuxD.Exec tut nichts

Beitrag von Gawan » 15.01.2017, 17:37

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

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: CuxD.Exec tut nichts

Beitrag von uwe111 » 16.01.2017, 14:47

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
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

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

Re: CuxD.Exec tut nichts

Beitrag von alchy » 16.01.2017, 23:39

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

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.

Antworten

Zurück zu „CUxD“