Seite 1 von 1

Befehl per HTTP über CuxD

Verfasst: 28.12.2018, 22:52
von Michl08
Hallo,
versuche gerade über HM einen Befehl über HTTP/wget zu senden:

Code: Alles auswählen

string url="http://192.168.1.100/motion.cgi?user=admin&pwd=lalalalala&MotionDetectionEnable=0&ConfigReboot=no";
string x = dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null " # url);
WriteLine(x);
Ergebnis ist (x=) False !

Ausgeführt wird damit auch nichts ! Wenn ich den http-Befehl (Ihr wisst was ich mein) manuell im Browser abschicke, wird er ausgeführt.

Es muss also was mit CuxD zu zun haben. Habe ich da was falsch gemacht?
Habe mich eigentlich an viele Forenbeiträge gehalten.

Danke vorab, viele Grüße
Michl

Nachtrag: Bild wenn ich manuell über Browser mache...

Re: Befehl per HTTP über CuxD

Verfasst: 28.12.2018, 23:12
von uwe111
Hallo Michl,
Michl08 hat geschrieben:
28.12.2018, 22:52
Es muss also was mit CuxD zu tun haben.
Nein!
Michl08 hat geschrieben:
28.12.2018, 22:52
Habe ich da was falsch gemacht?
Ja!
Michl08 hat geschrieben:
28.12.2018, 22:52
Habe mich eigentlich an viele Forenbeiträge gehalten.
An welchen Beitrag denn genau?

Was ich auf den ersten Blick sehe ist, dass Du die Anführungszeichen um die URL vergessen hast.
Das kann so nicht funktionieren.

Viele Grüße

Uwe

Re: Befehl per HTTP über CuxD

Verfasst: 29.12.2018, 00:37
von Michl08
uwe111 hat geschrieben:
28.12.2018, 23:12
Was ich auf den ersten Blick sehe ist, dass Du die Anführungszeichen um die URL vergessen hast.
Das kann so nicht funktionieren.
Viele Grüße
Uwe
Hallo und danke für deine Antwort.
Die Anführungsstriche ...siehe Bild Anlage... habe ich doch gesetzt.

Beim testen im Browser habe ich auch nur das zwischen den ".." kopiert und im Broser mit C&P eingefügt und da gings dann.

Vielleicht schon spät, aber kann Dir sonst mit den "" nicht folgen ... :shock: :D

Vielen Dank vorab, Gruß
Michl

Nachtrag:
Diesen Beitrag bzgl. Anweisung an Kamera ...http/.. http://forums.dlink.com/index.php?topic=64782.0
und diversen Beiträgen hier im Forum bzgl. dem Beitrag vom GURU: https://homematic-guru.de/quicktipp-hom ... c-ersetzen

EDIT:
Jetzt weis ich was du meinst !! >> ' << fehlt :roll: ... ja das habe ich übersehen. man man :? :shock: Vielen Dank !!

Re: Befehl per HTTP über CuxD

Verfasst: 29.12.2018, 10:11
von Michl08
So hier neuer Versuch: über Browser funktioniert er ohne mucken über MH geht nichts...

Ausgabe false und es wird auch nicht gesetzt...

Code: Alles auswählen

string url="'http://admin:lalalala@192.168.1.100/motion.cgi?&MotionDetectionEnable=1&ConfigReboot=no'";
string x = dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null " # url);
WriteLine(x);
Woran könnte es noch liegen?

EDIT: Mir ist gerade aufgefallen, dass wenn ich das erste mal über Browser den http Befehl ausführe, kommt ... siehe Anlage (Bild) wo ich mit OK bestätigen muss... Ich glaub das verhindert die Ausführung über Script-HM.

Kann ich so eine "Bestätigung" über Script einbauen oder "umgehen" ?

Bin kein Spezialist, versuche mich nur fleißig ranzutasten... Vielen Dank vorab für Hilfe...

Gurß Michl

Re: Befehl per HTTP über CuxD

Verfasst: 29.12.2018, 13:09
von Michl08
OK, im CUxD Log steht Exit 4...
Ist das nicht ein Netzwerkfehler?

zumindest nach https://www.gnu.org/software/wget/manua ... tatus.html

Der HTTP Befehl ist im Schript der gleiche wie wenn ich manuell im Browser mache... OK, verstehe es nicht...

Vielleicht hat einer eine Erklärung dafür oder hat einer eine alternative dazu?

Viele Grüße
Michl

Re: Befehl per HTTP über CuxD

Verfasst: 29.12.2018, 23:33
von alchy
Befehl auf der Bash ausführen, dabei quiet Parameter entfernen , damit was zurückgegeben wird.
Oder statt direkt exec zu verwenden den Befehl an CMD_SETS usw. abschicken.


Alchy

Re: Befehl per HTTP über CuxD

Verfasst: 30.12.2018, 12:17
von Michl08
So... nun habe ich es doch hinbekommen. Dank Anleitung Debian und WGET ... funktioniert.

Code: Alles auswählen

! Kamera Wohnzimmer 1 xxx
string url="'http://192.168.XXX.XXX/motion.cgi?&MotionDetectionEnable=1&ConfigReboot=no'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget --user <BENUTZERNAME> --password <DAS PASSWORT> -q -O - " # url);
Nun x-fach getestet, läuft.

Ich verwende D-Link Kameras DSC-932 und -933. Wenn's einer brauchen, viel Spaß...