System.exec durch CuxD ersetzen

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

Moderator: Co-Administratoren

afrenzel
Beiträge: 8
Registriert: 14.05.2012, 22:29

System.exec durch CuxD ersetzen

Beitrag von afrenzel » 29.05.2012, 22:08

Hallo,

ich habe diese Testprogramm eingebunden, um Statusmedungen über die CCU auf meine dreambox 800 zu schicken.

string stderr;
string stdout;
string url="http://192.168.99.112/web/message?text= ... timeout=10";
system.Exec("wget -q -O - "#url, &stdout, &stderr);

Funzt soweit gut, aber ich wollte jetzt den system.Exec durch den Aufruf mit CuxD (28,System), doch leider raffe ich das nicht, und werde weder in der doku noch im Board schlau :?

Installiert habe ich die CuxD und aktuelle Firmware.

Vielen Dank

Andreas
Zuletzt geändert von alchy am 06.10.2020, 20:34, insgesamt 1-mal geändert.
Grund: Titel geändert

ColleLupi
Beiträge: 228
Registriert: 10.12.2008, 09:26

Re: Sytem.exc durch CuxD ersetzen

Beitrag von ColleLupi » 30.05.2012, 00:07

Hi,
normal reicht
z.B. wget -q -O /dev/null 'http://192.168.1.93:50000/track=Alarmabbrechen.mp3
als Eintrag unter SYSTEM|CMD_SHORT in Geräte und es läuft.
Aber mit den neuesten Updates auch CuxD 0.567 werden die Einträge unter SYSTEM|CMD_SHORT von neuen Geräten nicht mehr gespeichert.
Nachtrag:
Füllt man SYSTEM|CMD_Long auch aus, gibt es eine Fehlermeldung: Homematicfehler-Das Profil kann nicht gespeichert werden

Warten wir auf Uwe...

Gruss
Stefan
375 Kanäle in 96 Geräten:
3x HM-LC-Sw1-Pl, 4x HM-LC-Sw1-FM, 2x HM-LC-Dim1L-Pl, 4x HM-LC-Dim1L-CV, 1x HMW-WSE-SM, 8x HM-CC-TC, 1x HM-RC-19, 8x HM-LC-Sw4-SM, 8x HM-CC-VD, 1x HMW-IO-4-FM, 1x HM-CCU-1, 1x HMW-IO-12-Sw7-DR, 5x HM-PB-2-WM, 2x HM-WDS30-T-O, 3x HM-Sec-MDIR, 1x HM-Sen-MDIR-SM, 4x HMW-IO-12-Sw14-DR, 1x HM-LC-Sw2-FM, 3x HM-Sec-SD, 1x HM-Sec-WDS, 4x HM-SCI-3-FM, 1x HM-LC-Sw4-PCB, 3x HMW-Sen-SC-12-DR, 2x HM-PB-4Dis-WM, 2x HM-Sen-EP, 4x HM-WS550STH-I, 1x HM-WDS40-TH-I, 1x HM-WDS10-TH-O, 6x HM-Sec-SC, 2x HM-WDS100-C6-O, 1x HM-WDC7000 und vieles mehr.

BxA
Beiträge: 167
Registriert: 15.03.2012, 17:34

Re: Sytem.exc durch CuxD ersetzen

Beitrag von BxA » 30.05.2012, 12:02

Der Aufruf muss lauten

Code: Alles auswählen

string url="http://192.168.99.112/web/message?text=Ich_bin_deine_Homematic&type=3&timeout=10";
dom.GetObject("CUXD-SYSTEM-GERÄT:1.CMD_EXEC").State(string);
CUXD-SYSTEM-GERÄT natürlich durch die Ensprechende Geräte-ID bei dir ersetzten.

Gruß,
Michael
Homematic System im Aufbau...
317 Kanäle in 45 Geräten:
2x HM-Sec-SC, 7x HM-CC-VD, 7x HM-CC-TC, 1x HM-EM-CCM, 14x HMW-IO-12-Sw7-DR, 1x HM-RC-Key3-B, 1x HM-Sec-Key, 8x HMW-LC-Bl1-DR, 1x HM-Sec-TiS, 1x HM-WDS100-C6-O, 1x HM-LC-Sw4-WM, 1x HM-CCU-1

afrenzel
Beiträge: 8
Registriert: 14.05.2012, 22:29

Re: Sytem.exc durch CuxD ersetzen

Beitrag von afrenzel » 31.05.2012, 20:35

Hallo,

er mag mich nicht. Ich habe im CUx ein Gerät eingerichtet. Danach in CCU das Gerät im Posteingang übernommen.
Das Skript angepasst, es geht aber nicht :(

string url="http://192.168.99.112/web/message?text= ... timeout=10";
dom.GetObject("CUX2801666:1.CMD_EXEC").State(string);

Bei der Überprüfung wird folgender Text angezeigt:
Error 1 at row 2 col 84 near ^);
Parse following code failed:
string url="http://192.168.99.112/web/message?text= ... timeout=10";
dom.GetObject("CUX2801666:1.CMD_EXEC").State(string);

Im Log steht folgendes:
May 31 20:27:46 (none) local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 2 col 84 near ^);^M [../Platform/DOM/iseESP.cpp (1067)]
May 31 20:27:46 (none) local0.err ReGaHss: Error: ParseProgram: SyntaxError= ); [../Platform/DOM/iseESP.cpp (348)]
May 31 20:27:46 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 145 0x91 [1] 0 0x00 [2] 14 0x0e [3] 0 0x00 [4] 0 0x00 [../Platform/DOM/iseESPexec.cpp (11622)]
May 31 20:27:50 (none) local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 2 col 84 near ^);^M [../Platform/DOM/iseESP.cpp (1067)]
May 31 20:27:50 (none) local0.err ReGaHss: Error: ParseProgram: SyntaxError= ); [../Platform/DOM/iseESP.cpp (348)]
May 31 20:27:50 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 145 0x91 [1] 0 0x00 [2] 14 0x0e [3] 0 0x00 [4] 0 0x00 [../Platform/DOM/iseESPexec.cpp (11622)]
May 31 20:28:05 (none) local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 2 col 84 near ^);^M [../Platform/DOM/iseESP.cpp (1067)]
May 31 20:28:05 (none) local0.err ReGaHss: Error: ParseProgram: SyntaxError= ); [../Platform/DOM/iseESP.cpp (348)]
May 31 20:28:53 (none) local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 2 col 84 near ^);^M [../Platform/DOM/iseESP.cpp (1067)]
May 31 20:28:53 (none) local0.err ReGaHss: Error: ParseProgram: SyntaxError= ); [../Platform/DOM/iseESP.cpp (348)]
May 31 20:30:01 (none) cron.notice crond[960]: USER root pid 11887 cmd /bin/arm7setclock
May 31 20:31:37 (none) syslog.info -- MARK --
May 31 20:33:29 (none) local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 2 col 84 near ^);^M [../Platform/DOM/iseESP.cpp (1067)]
May 31 20:33:29 (none) local0.err ReGaHss: Error: ParseProgram: SyntaxError= ); [../Platform/DOM/iseESP.cpp (348)]

Danke

Andreas

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

Re: Sytem.exc durch CuxD ersetzen

Beitrag von uwe111 » 31.05.2012, 21:22

Hallo Andreas,
afrenzel hat geschrieben:Hallo,
string url="http://192.168.99.112/web/message?text= ... timeout=10";
dom.GetObject("CUX2801666:1.CMD_EXEC").State(string);
Probier's doch mal so:

Code: Alles auswählen

string url="http://192.168.99.112/web/message?text=Ich_bin_deine_Homematic&type=3&timeout=10";
dom.GetObject("CUxD.CUX2801666:1.CMD_EXEC").State("wget -q -O - "#url);
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

afrenzel
Beiträge: 8
Registriert: 14.05.2012, 22:29

Re: Sytem.exc durch CuxD ersetzen

Beitrag von afrenzel » 31.05.2012, 21:35

Hallo Uwe,

jetzt gibt es bei der Überprüfung keine Fehler, aber funzen tut es leider nicht...

Gruß
Andreas

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

Re: Sytem.exc durch CuxD ersetzen

Beitrag von uwe111 » 31.05.2012, 21:42

Hallo Andreas,

funktioniert denn das folgende aus der CCU-Shell heraus?

Code: Alles auswählen

wget -q -O - http://192.168.99.112/web/message?text=Ich_bin_deine_Homematic&type=3&timeout=10
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

afrenzel
Beiträge: 8
Registriert: 14.05.2012, 22:29

Re: Sytem.exc durch CuxD ersetzen

Beitrag von afrenzel » 31.05.2012, 22:08

^Hallo,

du meinst mit der shell, direkt per telnet?
Dann bekomme ich keine Fehlermeldung aber auch keine MSG auf dem TV.

BusyBox v1.00 (2012.05.14-12:29+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # wget -q -O - http://192.168.99.112/web/message?text= ... _Homematic&
type=3&timeout=10
[2] + Done wget -q -O - http://192.168.99.112/web/message?
text=Ich_bin_deine_Homematic
~ # <?xml version="1.0" encoding="UTF-8"?>

<e2simplexmlresult>
<e2state>False</e2state>
<e2statetext>type None is not a number</e2statetext>
</e2simplexmlresult>

aber das xml scheint von dream zu kommen....

Wenn ich meine CCU durchstarte, dann bekomme ich jetzt auch eine Fehlermeldung...
CUx
Eine Komponente der HomeMatic Zentrale reagiert nicht mehr.

Hierfür kann es eine Reihe von Ursachen geben:

es besteht keine Netzwerk-Verbindung
die Stromversorung der HomeMatic Zentrale wurde unterbrochen
mindestens eine Komponente der HomeMatic Zentrale ist abgestürzt

Überprüfen Sie die Netzwerk-Verbindung und die Stromversorgung der HomeMatic Zentrale. Starten Sie ggf. die HomeMatic Zentrale neu.

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

Re: Sytem.exc durch CuxD ersetzen

Beitrag von uwe111 » 31.05.2012, 22:08

Hallo Stefan,
ColleLupi hat geschrieben: z.B. wget -q -O /dev/null 'http://192.168.1.93:50000/track=Alarmabbrechen.mp3
als Eintrag unter SYSTEM|CMD_SHORT in Geräte und es läuft.
Aber mit den neuesten Updates auch CuxD 0.567 werden die Einträge unter SYSTEM|CMD_SHORT von neuen Geräten nicht mehr gespeichert.
Nachtrag:
Füllt man SYSTEM|CMD_Long auch aus, gibt es eine Fehlermeldung: Homematicfehler-Das Profil kann nicht gespeichert werden
Das ist kein CUxD-Problem, sondern ein Problem der WebUI.
Leider werden bestimmte Zeichen aus den Eingabefeldern bei der Formularübergabe nur fehlerhaft als Parameter übergeben und erzeugen dann einen WebUI-Fehler.
Das betrifft in Deinem Fall das '='-Zeichen.
Hier musst Du Dir einen Workaround einfallen lassen um diese Zeichen im WebUI-Formularfeld zu vermeiden.
Du könntest z.B. versuchen, die Parameter über HM-Script Aufrufe zu setzten.

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

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

Re: Sytem.exc durch CuxD ersetzen

Beitrag von uwe111 » 31.05.2012, 22:12

Hallo Andreas,

ok, dann probiere es doch einmal mit ' um die URL herum. Also so:

Code: Alles auswählen

string url="'http://192.168.99.112/web/message?text=Ich_bin_deine_Homematic&type=3&timeout=10'";
dom.GetObject("CUxD.CUX2801666:1.CMD_EXEC").State("wget -q -O - "#url);
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

Antworten

Zurück zu „CUxD“