Kodi mit IPS ansteuern

Ich habe das mal gemacht, allerdings mit dem folgenden:

http://......../jsonrpc?request="{"jsonrpc": "2.0", "method": "Input.Back", "parameters":"", "id": "1"}"

und es kommt die Fehlermeldung

{"error":{"code":-32600,"message":"Invalid request."},"id":null,"jsonrpc":"2.0"}

Dann habe ich es im Skript mal mit cUrl versucht:

$ch = curl_init();



$data = array("jsonrpc" => "2.0", "method" => "Input.Home", "id" => "1");
$data_string = json_encode($data);

$ch = curl_init('http://....@iport');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);
echo $result;


curl_close($ch);

und bekomme dann sowas zurück:

Kodi


-->


-->









Profiles
Remote
Movies
TV Shows
Music

Ist schon mal ein Fortschritt, es tut ja immerhin etwas, jedoch passiert an Kodi selber immer noch nichts.

Ok, mach ich :wink:

Grrr…

halte dich bitte an das, was man dir vorschlägt - sonst ist die Hilfe hier echt zu mühselig.

bei deinem ersten versuch 1) ist die Syntax des Requests völlig falsch - kein wunder dass kodi „invalid request“ meldet.

bei deinem 2) über IPS rufst du nicht die json-api auf. Wahrscheinlich ein Fehler in der URL bei curl_init. Daher antwortet einfach das Webinterface/GUI (Profiles, Remote etc.)

Ist aber auch erstmal egal… bitte lies den ersten Satz dieses Postings nochmal! Und anschließend mein vorhergehendes Posting.

ok, ich habe jetzt den Code aus deinem vorherigen Post übernommen (mit meinen Daten) dann kamm diese Fehlermeldung:

{"error":{"code":-32602,"data":{"method":"Application.SetVolume","stack":{"message":"Received value does not match any of the union type definitions","name":"volume","type":["string","integer"]}},"message":"Invalid params."},"id":"1","jsonrpc":"2.0"}

wenn ich das jedoch im Browser poste:


http://..../jsonrpc?request={"jsonrpc": "2.0", "method": "Input.Back", "parameters":"", "id": "1"}

kommt jetzt das hier

{"id":"1","jsonrpc":"2.0","result":"OK"}

Jetzt klappt das ganze im Skript und Kodi reagiert auch, wenn ich das so eingebe:

$response = file_get_contents('http://..../jsonrpc?request={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Input.Back%22,%20%22parameters%22:%22%22,%20%22id%22:%20%221%22}');
echo $response;

Nur wie konvertiere ich meine URL in diese %22… URL?
Ich habe das mal so probiert

iconv('UTF-8','ASCII' , $url)

das funktioniert aber nicht.

Wie hast du die URL denn konvertiert?

Ich tippe mal auf:
PHP: urlencode - Manual

-Chris-

Mein Problem ist halt, dass ich das hier brauche:

http://.....l@...../jsonrpc?request={{%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Input.Back%22,%20%22parameters%22:%22%22,%20%22id%22:%20%221%22}

und mit urlencode zB das hier bekomme:

http%3A%2F%2F...%....%.....%2Fjsonrpc%3Frequest%3D%22%7B%22jsonrpc%22%3A+%222.0%22%2C+%22method%22%3A+%22Input.Back%22%2C+%22id%22%3A+%221%22%7D%22