Befehl per HTTP über CuxD

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

Moderator: Co-Administratoren

Antworten
Michl08
Beiträge: 12
Registriert: 24.12.2018, 16:22

Befehl per HTTP über CuxD

Beitrag von Michl08 » 28.12.2018, 22:52

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...
Dateianhänge
004.PNG
004.PNG (13.89 KiB) 1640 mal betrachtet
Zuletzt geändert von alchy am 28.12.2018, 23:04, insgesamt 1-mal geändert.
Grund: verschoben aus HomeMatic Allgemein

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

Re: Befehl per HTTP über CuxD

Beitrag von uwe111 » 28.12.2018, 23:12

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
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

Michl08
Beiträge: 12
Registriert: 24.12.2018, 16:22

Re: Befehl per HTTP über CuxD

Beitrag von Michl08 » 29.12.2018, 00:37

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 !!
Dateianhänge
005.PNG
005.PNG (10.52 KiB) 1614 mal betrachtet

Michl08
Beiträge: 12
Registriert: 24.12.2018, 16:22

Re: Befehl per HTTP über CuxD

Beitrag von Michl08 » 29.12.2018, 10:11

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
Dateianhänge
006.PNG
006.PNG (5.83 KiB) 1583 mal betrachtet

Michl08
Beiträge: 12
Registriert: 24.12.2018, 16:22

Re: Befehl per HTTP über CuxD

Beitrag von Michl08 » 29.12.2018, 13:09

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
Dateianhänge
007.PNG
007.PNG (3.32 KiB) 1560 mal betrachtet

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

Re: Befehl per HTTP über CuxD

Beitrag von alchy » 29.12.2018, 23:33

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

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.

Michl08
Beiträge: 12
Registriert: 24.12.2018, 16:22

Re: Befehl per HTTP über CuxD

Beitrag von Michl08 » 30.12.2018, 12:17

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ß...

Antworten

Zurück zu „CUxD“