Kodi steuern mit Siri via Shortcuts App

  • Hi Leute,
    ich habe mir überlegt, mit Hilfe der neuen Kurzbefehle App für iOS nen Workflow zu bauen, um Kodi mit Siri steuern zu können. Mir würde play/pause für den Anfang erstmal reichen.

    Ich hab das ganze schon mit Volumio hinbekommen. Dabei rufe ich einfach folgende URL auf:

    volumio.local/api/v1/commands/?cmd=toggle

    Dem hab ich noch nen Sprachbefehl zugeordnet und kann jetzt mit Siri Volumio starten und pausieren.


    Das gleiche wollte ich jetzt mit Kodi machen. Da gibt es ja auch ne RestAPI, aber ich check nicht ganz, wie die URL aussehen muss. Ich bin so weit gekommen:
    http://192.168.188.32:8080/jsonrpc?request={"jsonrpc":"2.0","method":"Player.PlayPause","params":{"playerid":"1"}}

    Funktioniert aber nicht. Kann mir da jemand weiterhelfen?

    (Man kann in der Shortcuts App auch mit GET, POST, PUT arbeiten. Davon hab ich aber noch weniger Ahnung, aber vielleicht hilft das ja)

    Danke!

    EDIT: Okay, das hängt wohl hiermit zusammen:
    https://forum.kodi.tv/showthread.php?tid=324598

    ich versteht aber trotzdem nicht, wie das jetzt funktionieren soll

  • Danke, hab ich mittlerweile auch gefunden. Laut meinem Edit funktioniert das so aber nicht mehr. Ich bekomm nämlich genau diesen Bad client permission Error

    curl -s -H "Content-type: application/json" -X POST -d '{"jsonrpc":"2.0","method":"Player.PlayPause","params":{"playerid":1},"id":1}' http://localhost:8080/jsonrpc

    Aus dem Thread gerade getestet, funktioniert einwandfrei!

  • okay aber so kann ich das ja nicht einfach im browser eingeben?

    EDIT: Okay hab ne Lösung gefunden. Nicht mit JSON sondern mit SSH. Das geht nämlich auch mit der Shortcuts App. Damit kann man dann quasi jeden Befehl von hier https://kodi.wiki/view/List_of_built-in_functions per Siri steuern!

    Im Anhang ein Screenshot vom Workflow. Is ja eigentlich voll easy:

  • Funktioniert ja nur mit SSH Server. Die JSON RPC API ist allerdings innerhalb Kodi aktivierbar und somit auf jeder Plattform.
    Du hattest oben geschrieben "Bad Permission". Da würde ich denken Du hast Benutzername und Passwort für den Webserver vergeben.
    Da würde sich der Aufruf wie folgt ändern:
    http://user:password@192.168.188.32:8080/jsonrpc?request={"jsonrpc":"2.0","method":"Player.PlayPause","params":{"playerid":"1"}}
    Ich hab jetzt aber nicht getestet ob der Aufruf so richtig ist.

    --------------
    Guides nicht mehr verfügbar wegen Youtube unvermögen guten von schlechten Kodi Videos zu unterscheiden.

  • Meine Hardware ist n RPi, deswegen ist SSH eh aktiv.

    Das was du vorschlägst hatte ich dann auch schon versucht. Funktioniert aber leider auch nicht. Das könnte aber irgendwie mit dem encoding zu tun haben. Wenn ich die URL einfüge, kommt nämlich das bei raus:


    Code
    http://192.168.188.32:8080/jsonrpc?request=%7B%22jsonrpc%22:%222.0%22,%22method%22:%22Player.PlayPause%22,%22params%22:%7B%22playerid%22:%221%22%7D%7D

    Fehlermeldung im Browser "Der Server hat die Verbindung unerwartet beendet"
    JSON RPC ist in Kodi schon aktiviert

    EDIT: Hab jetzt auch mal Username und PW deaktiviert. Geht trotzdem nicht

    EDIT2: Wenn ich vor dem request und am ende " setzt, dann krieg ich wenigstens die Verbindung. Allerdings zeigt er einfach die komplette JSON an und sonst passiert nichts

    EDIT3: Wenn ich den JSON Baum so durchgucke, finde ich die Methode Player.PlayPause aber auch gar nicht..

  • Moin,

    ich grab mal meinen Thread nochmal aus.
    Mittlerweile nutze ich ein Passwort für die http Anfragen, wie man das ja auch machen sollte. Jetzt weiß ich aber nicht, wie ich meine Shortcuts anpassen soll bzw. wie man die Authentifizierung übergibt.

    Mit curl vom Computer sieht das so aus:

    Code
    curl --user $username:$password -s --data-binary '{"jsonrpc":"2.0","id":"1","method":"Player.Open","params":{"item":{"file":"plugin://plugin.video.youtube/?action=play_video&videoid='$query'"}}}' -H 'content-type: application/json;' http://192.168.44.242:8080/jsonrpc

    ich habe also einfach ein --user mitgegeben.

    Beim Handy funktioniert das ja aber ein bisschen anders.

    ich habe quasi mein json:

    jsonrpc:2.0
    method:Player.PlayPause
    id:1
    params{playerid:1}

    (so ungefähr)

    das wird dann mit post an kodi übergeben.

    Jetzt frage ich mich, wo ich da meinen username/password übergebe? Kommt der irgendwie mit in das json? Was ich gelesen habe, war, dass man die Url einfach abändert in http://username:password@kodip...

    aber das funktioniert leider nicht.

    Kann mir jemand weiter helfen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!