Ich besitze keinerlei Sonos und kann über die Funktion der url Aufrufe also nichts sagen.
Was ich aber bemerke ist, das schon die erste Zeile deines Scriptes vom Interpreter verworfen werden muss.
Code: Alles auswählen
string url = "wget --no-check-certificate --quiet -O /dev/null \"http://192.***.***.**/addons/sonos2/sonos2.cgi?zone=kueche&action=pause"";
Probier es doch einfach aus. Das alleine sollte schon einen Fehler im
>> Fehlerprotokoll << erzeugen.
tigger30926 hat geschrieben: ↑20.01.2019, 22:39
Alchy hast du eine Idee wie ich das besser machen kann ?
Besser? Du meinst erst mal so, das es überhaupt funktioniert?
Es hat sich *IMHO* bewährt eine aufzurufende url per Scriptvariable zur Verfügung zu stellen. außerhalb der eigentlichen Routine.
Warum?
Wegen dem unkomplizierten Benutzen der eigentlichen Routine ohne das jeder User da drin "rum murksen" muss, er z.B. " innerhalb des Aufrufs maskiert usw.
Der User kann also einfach eine andere url einsetzen und probieren und muss sich nicht um den Rest kümmern.
Für deinen Fall würde ich es also erstmal so probieren:
Code: Alles auswählen
string url = "http://192.***.***.**/addons/sonos2/sonos2.cgi?zone=kueche&action=pause";
!++++++++ Finger weg ++++++++++++++
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC")) { dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("wget --no-check-certificate -q -O - '"#url#"'");
} else { WriteLine("CUxD Datenpunkt nicht vorhanden");}
Es ist also völlig wurscht, ob ein Sonosplayer aufruf in der der url steht oder eine Home24 Mediaplayer tts Anweisung usw.
Das sollte für 80% aller wget Aufrufe mit cuxd funktionieren. Natürlich wird es immer Ausnahmen geben.
Alchy
PS: es ist völlig unnötig die privaten IP Adressen im eigenen Netzwerk zu verfremden, es hilft dir nur dabei beim Verwenden des Codes wieder Fehler einzuarbeiten.