Zur besten Antwort gewählt
Feb 10, 2018 - 04:49
string url="'
http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Hallo
Ich versuche von der CCU an den AOI Gateway einen http Aufruf zu senden um die Statusänderung einer Systemvariablen zu melden.
Eine periodische Abfrage der Variable über Intervall dauert bis zu 10 Sekunden (=kürzestes Intervall im Neo automation manager), das ist mir zu langsam.
Aus einem Browser heraus vom PC funktioniert der Aufruf einwandfrei und wird vom Neo Automation manager erkannt aber aus dem CCU2 Skript funktioniert es nicht.
Hier das Script dass ich laut einer Anleitung aus der Mediola answerbase erstellt habe:
string stderr;
string stdout;
string url="http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Der Testlauf des Skripts zeigt keine Fehlermeldung.
Was mache ich falsch ?
Muss auf der CCU noch irgend was freigeschaltet werden (beide Gateways sind im gleichen Netz und ansonsten funktioniert die Kommunikation mit NEO zwischen beiden Systemen einwandfre.
Kann man das Skript irgendwie debuggen oder Logfiles anzeigen um zu sehen ob es eine Fehlermeldung gibt?
Bin Neuling auf der CUU, habe da noch gesehen, dass es eine SW CUx-Daemon gibt und auch damit probiert, aber auch dort funktioniert's nicht, da gibt es allerdings eine Fehlermeldung im Logfile, mit der ich nichts anfangen kann.
Anbei das cuxd Skript und die Fehlermeldung (Skript 2 x mit leicht unterschiedlicher Syntax für die Übergabe von #url)
Skript 1:
string url= "http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
cuxd SysLog 1:
Feb 10 08:09:05 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string url= "http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password"; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url); [iseESPexec.cpp:12487]
Skript 2:
string url= "http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null " # url);
cuxd SysLog 2:
Feb 10 07:49:12 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string url= "http://192.168.0.4:80/tm/http?ccutrigger=1&password"; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null " # url); [iseESPexec.cpp:12487]
Danke
Gerhard
Haben Sie die gleiche Frage? Dieser Frage folgen
Feb 10, 2018 - 04:49
string url="'
http://192.168.0.4:80/tm/http?ccutrigger=1&auth=password'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);
Feb 10, 2018 - 09:41
Von
http://192.168.0.4/tm/http?ccutrigger=1&auth=password
versuche die url so, ohne port 80
string stderr;
string stdout;
string url="http://192.168.0.4/tm/http?ccutrigger=1&auth=password";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Von
Danke für die Hilfe, funktioniert leider nicht. Weder mit System.Exec noch mit dom.GetObject.
CUxD bringt weiterhin Fehlermeldung, auch wenn ich die Syntax von URL mit "' anpasse und den Port weglasse.
Aufruf aus Browser funktioniert mit und ohne Port-Angabe.
Den AiOV5+ habe ich auf 192.168.0.4 und die CCU2 auf 192.168.0.5, eine Firewall Problem kann's ja wohl nicht sein (sofern der AOI überhaupt eine hat). Wer die CCU nochmal mit einer anderen IP un reboot testen.
Von
string url="http://192.168.0.4/tm/http?ccutrigger=1&auth=password";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'");
Von
sonst hast du ein problem mit der ccu
dieses befehl funktioniert 100%
https://homematic-forum.de/forum/viewtopic.php?f=35&t=29623&p=266597#p266597
Von
gleicher Fehler
Feb 10 13:17:42 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string url="http://192.168.0.4/tm/http?ccutrigger=1&auth=password"; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null '"#url#"'"); [iseESPexec.cpp:12487]
Von
Ist das ccu2 oder raspimatic
Von
eine CCU2, aktuelle Firmware, diese Woche gekauft, bisher funktioniert alles, ben nur nicht dieser http aufruf
Von
habe noch im CUxD Handbuch nachgelesen und rausgefunden dass ich da noch ein Gerät CuxD:CUX2801001:1 anlegen muss.
Nachdem ich das gemacht habe, erzeugt das Skript CUxD Dom.GetObject........ keinen Fehler mehr, aber beim AOI kommt trotzdem kein http request an.
Von
Versuch doch so wie Albatros gesagt hat
Von
Du must ein systemexec gerät (28) in cuxd weboberfläche erstellen dann kommt er bei ccu2 in angelernte geräte an dort nur noch ok klicken
Die seriennummer wird automatisch erstellt
Von
Alles so gemacht, das Gerät erscheint im CCU neue Geräte Postkarten, habe es dann mot OK übernommen und in den Geräteeinstllungen noch Syslog aktiviert, weitere Einstellung an dem Gerät habe ich nicht gemacht.
Nachdem Ausführen des Skripts erscheint der Befehl dann ohne Fehlermeldung im Syslog aber am AOI passiert nichts.
Von
Und ist die seriennummer CUxD.CUX2801001:1
Gleich wie im script
Machst du es aus einem programm heraus oder script testen?
Versuche es aus einem programm heraus.
Ansonsten gibt es ein addon für ccu...erweterter script parser...installieren und scripte testen
Von
Seriennummer passt - hier das Logfile nun ohne Fehler:
Feb 10 17:02:34 homematic-ccu2 daemon.debug cuxd[3183]: CUX2801001:1 wget -q -O - http://192.168.0.4:80/tm/http?ccutrigger=1&auth=passwort
mache es momentan mit dem script testen, werd gleich noch deine beiden Vorschläge mit Programm und erweitertem Parser ausprobieren
Von
Und welche version des sriptes hast du genommen?
Von
Versuche das
string url="'http://192.168.1.49:50000/track=Chicken_Power.mp3'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O /dev/null " # url);
dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State("1");
Die url natürlich an deine anpassen
Von
funktioniert auch nicht (im Programm getestet), habe vorher sicherheitshalber beide Gateways neu gebootet. Werd mir noch den Parser installieren und mal drüber schlafen, vielleicht übersehen ich sonst was. Jedenfalls ganz herzlichen Dank für Deine Hilfe.
Von
Habe noch den Skript parser installiert, auch damit klappt es leider nicht,
Habe dann noch das XML_API installiert und versucht über diese API eine Systemvariable auf der CCU selbst zu setzen um jegliche Verbindungsprobleme zum AOI auszuschliessen.
Bei Aufruf der API über den Browser (d.h. von extern) wird die Variable gesetzt.
Bei Aufruf der API über eine Skript auf der CCU (d.h. intern) wird die Variable nicht geändert.
Hier das Skript:
string url= "http://192.168.0.5/config/xmlapi/statechange.cgi?ise_id=2820&new_value=1";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - " # url);
dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State("1");
und die Ausgabe im Parser
{
"sessionId": "",
"httpUserAgent": "",
"url": "http:\/\/192.168.0.5\/config\/xmlapi\/statechange.cgi?ise_id=2820&new_value=1",
"STDOUT": ""
}
Von
Und mit system.exec ?
Von
geht’s auch nicht:
Skript:
string stderr;
string stdout;
string url= "http://192.168.0.5/config/xmlapi/statechange.cgi?ise_id=2820&new_value=1";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Ausgabe:
{
"stderr": "",
"sessionId": "",
"httpUserAgent": "",
"url": "http:\/\/192.168.0.5\/config\/xmlapi\/statechange.cgi?ise_id=2820&new_value=1",
"stdout": "",
"STDOUT": ""
}
Variable nach Ausführung Skript immer noch false:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<systemVariables>
<systemVariable name="Alarm_scharf" variable="0" value="false" value_list="" value_text="" ise_id="2820" min="" max="" unit="" type="2" subtype="2" timestamp="1518287990" value_name_0="ist falsch" value_name_1="ist wahr"/>
</systemVariables>
Variable wenn HTTP Befehl über Browser eingegeben wird wechselt auf true:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<systemVariables>
<systemVariable name="Alarm_scharf" variable="1" value="true" value_list="" value_text="" ise_id="2820" min="" max="" unit="" type="2" subtype="2" timestamp="1518288185" value_name_0="ist falsch" value_name_1="ist wahr"/>
</systemVariables>
Von
Mach mal ältere firmware auf die ccu
Deinstalliere zuerst cuxd
Nach dem du neue ältere firmware geflasht hast versuche system.exec befehl
Von
Später kannst du cuxd installieren auch vielleicht 1 version älter
Von
OK, werd das mal machen, besten Dank und schönes Wochenende
Von
Auch so :)
Von
versuche es noch so:
im script parser
var url ="http://192.168.0.4/tm/http?ccutrigger=1&auth=password";
var cURL="LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(cURL#" -s -m 5 '"#url#"'");
Von
Habe gestern noch CCU zurückgesetzt und alles neu installiert. Hat nicht gefruchtet. Hatte schon aufgegeben bis dein letzter Vorschlag kam. Der funktioniert :-))). Ganz herzlichen Dank für die Hilfe. liebe Grüsse Gerhard
Von
Super :)
Jetzt noch ganz oben unter der antwort den like butto klicken :)
Gruss!
Neuen Kommentar hinzufügen