[gelöst] (Lautstärke) Steuerung für XBMC/Kodi mit GPIO Tastern

  • Also, da ich mich bereits dumm und dämlich gesucht habe, wie ich Kodi über die GPIOs steuern kann (v.A. Lautstärke), will ich euch nun meine Lösung vorstellen:

    Das ganze läuft als Python-Script, welches über die JSON-RPC Schnittstelle Befehle an Kodi sendet.
    Es sollte mit jeder Art von XBMC/Kodi funtkionieren, also RaspBMC, OpenELEC und XBMC unter Raspbian. (Getestet unter RaspBMC)

    Anforderungen:

    • Werbserver aktiviert (unter Optionen -> Einstellungen -> Dienste -> Webserver -> "Steureung von Kodi über HTTP zulassen")
    • Benutzernamen, Passwort und Port des Webservers im Script eintragen (unter user, passwd und port)
    • GPIOs aktiviert (nötige Pakete installiert, unter Raspbian bereits vorhanden)
    • für Autostart: in "sudo crontab -e" am Ende die Zeile "@reboot python /home/pi/buttons.py" einfügen (Pfad und Dateiname ggf. ersetzen) und bei RaspBMC "Cronjob Scheduler" in den System Settings von RaspBMC aktivieren
    • bei Bedarf die vorhandenen Befehle verändern/erweitern (siehe unter dem Script)


    Hier nun der Code:

    Nun noch zur Benutzung: mit den drei Arrays am Anfang werden die Buttons festgelegt. Diese können frei erweitert/verändert werden.
    Die Befehle und Parameter, die man eintragen kann findet man unter http://kodi.wiki/view/JSON-RPC_API/v6
    Diese dann nach folgendem Schema einfügen:

    • buttons = GPIO-Port
    • methods = JSON-RPC-Methode
    • params = Parameter der JSON-RPC-Methode, wenn nicht vorhanden -> "{}" einsetzen)

    PS: ich habe das Script zwar grob getestet, aber falls etwas trotzdem nicht stimmt, einfach einen Kommentar mit Fehlermeldung da lassen (es sollte aber einwandfrei funktionieren ;))

  • [gelöst] (Lautstärke) Steuerung für XBMC/Kodi mit GPIO Tastern? Schau mal ob du hier fündig wirst!

  • Hallöchen.
    Kann einer mal erklären was json rpc überhaupt ist und wie ich es bei Kodi nutze? Hab leider nichts verstädliches im Netz gefunden.

    Danke im Vorraus

    • Offizieller Beitrag
    Zitat von wikipedia

    SON-RPC (JavaScript Object Notation Remote Procedure Call) ist ein Protokoll zum Aufruf entfernter Methoden in Computersystemen, ähnlich wie XML-RPC (die Daten werden jedoch in JSON statt in XML gesendet). Bei der Spezifikation wurde darauf geachtet, dass JSON-RPC möglichst keine unnötige Komplexität enthält und über verschiedene Kommunikationsprotokolle genutzt werden kann. Dadurch kann es sehr flexibel eingesetzt werden. Zudem unterstützt das Protokoll asynchrone Kommunikation, da alle Anfragen und Antworten einen ID enthalten, was eine einfache Zuordnung von Antworten zu den entspr. Anfragen ermöglicht.

    JSON-RPC 1.0 erlaubt Anfragen in beide Richtungen (Peer-to-Peer), die meisten JSON-RPC 1.0 Implementierungen unterstützen jedoch standardmäßig nur eine Richtung (Client-Server-Modell).

    JSON-RPC 2.0 verwendet ein Client-Server-Modell. Anfragen in beide Richtungen sind möglich, indem auf beiden Seiten ein JSON-RPC-Server verwendet wird.]

    Welche Befehle man benutzen kann, hat der TE doch oben verlinkt. Ansonten versteh ich deine Frage nicht :denker:

  • Ja, habe ich gemacht, Läuft leider trotzdem nicht. Irgendwo ist noch der Wurm drin.
    Eventuellt Taster falsch angeschlossen oder falscher Port.
    Ist nämlich in Kodi auf 8080 und lässt sich nicht umstellen.

  • Auch wenn der Thread hier schon etwas älter ist, bräuchte ich mal Hilfe zu dem Skript.
    Mein Ziel ist es, mit einem Taster (Touch Sensor) Play/Pause zu betätigen. Dafür habe ich das Skript angepasst:

    Bei Musik funktioniert das auch ganz wunderbar. Nur wenn ich Videos pausieren oder wieder abspielen möchte, passiert nichts. Ich nutze für Videos den 'DVDPlayer'.
    Woran kann das liegen?

    Einmal editiert, zuletzt von bird (27. März 2016 um 13:31)

  • Huhu, ich bin auf der suche nach einer Möglichkeit verschiedene Playlists zu starten.

    Also 6 Button und wenn ich Button 1 drücke soll Playlist 1 starten

    Kann man das mit dem hier aufgeführten Script realisieren?

    Danke euch.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!