Kodis Aktivitäten auslesen - Erkennen, wenn ein Film abgespielt wird - Beleuchtung dimmen

  • Hallo Zusammen...

    Ich weiß gerade nicht mal wirklich, wie ich mein Anliegen betitteln soll und versuche es einfach mal kurz zu beschreiben.


    Was ich konkret möchte:

    Ich möchte, sobald ich einen Film in Kodi starte, die Beleuchtung automatisch runterdimmen. Diese soll allerdings nur solange gedimmt bleiben, wie der Film läuft. Bei Pause und bei Stopp soll das Licht wieder hochdimmen.

    Was ich kann:
    Ich kann das Licht dimmen. Ich habe eine selbstgebaute Steuerung, die mit einem Mikrocontroller arbeitet. Ein einfaches Bit reicht mir, um mein Vorhaben umzusetzen.

    Was ich nicht kann / was ich brauche:
    Zunächst einmal muss ich irgendeine Datei haben, die mich erkennen lässt, das Kodi gerade einen Film abspielt. Ich dachte da an eine Art LOG-Datei, oder ein Aktivitätenprotokoll, damit ich den Zustände Play/Pause/Stopp mit einem externen Programm abfragen kann.

    Was dann passiert:
    Sobald ich bestimmen kann, ob Kodi gerade im Modus "Play" ist, sende ich ein Signal über eine serielle Schnittstelle an den Mikrocontroller und der kümmert sich dann um den Rest (Dimmen der Beleuchtung).

    Ich könnte mir vorstellen, das Kodi so ein Protokoll im Hintergrund am Laufen hat... ich weiß nur nicht wo. Optimal wäre eine XML-Datei, in der der Zustand protokolliert wird. Eine Textdatei, oder ein Web-Interface wäre aber auch möglich.

    Wer weiß da weiter?!

  • Befasse dich mal mit Json RPC ... das alles was du willst gibts auch schon.
    Also Webinterface aktivieren in den Diensten und den Status kannst du einfach auslesen..
    http://kodi.wiki/?title=JSON-RPC_API

    z.B. ergibt diese URL bei mir folgende Ausgabe:
    http://192.168.123.101/jsonrpc?request={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetActivePlayers%22,%20%22id%22:%201} (url encoded)
    http://<your-ip>:<your-port>/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetActivePlayers", "id": 1} (ohne encoding)

    Ausgabe(wenn ich Musik abspiele){"id":1,"jsonrpc":"2.0","result":[{"playerid":0,"type":"audio"}]}
    Ausgabe(wenn nichts abspielt){"id":1,"jsonrpc":"2.0","result":[]}

    Diese Events kannst du also einfach abgreifen mit CURL z.B.. Ein Request alle 3 Sek müsste genügen ;)

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

  • Hallo!

    Erstmal vielen Dank für die schnelle Unterstützung!!

    Ich tue mich ein wenig schwer mit den erlangten Fachwissen.


    Bei diesem Code beispielweise...

    [cbox]http://192.168.123.101/jsonrpc?request={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22Player.GetActivePlayers%22,%20%22id%22:%201}[/cbox](url encoded)

    wird abgefragt, ob Musik gespielt wird...

    Wie müsste der Code aussehen, wenn ich abfrage, ob ein FILM abgespielt wird??

    Für mich ist das noch Neuland und es fällt mir etwas schwer, es zu verstehen. (Noch) etwas detailliertere Antworten wären an dieser Stelle voll hilfreich für mich...

    Ich sag einfach schon mal danke... :)

  • Also ich habs jetzt mal mit Screenshots gemacht.
    Die 192.168.123.101 ist mein Kodi:

    Nun kann ich noch rausfinden was gerade läuft:

    Die eingegebene URL war hier:
    http://192.168.123.101/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title", "album", "artist", "season", "episode", "duration", "showtitle", "tvshowid", "thumbnail", "file", "fanart", "streamdetails"], "playerid": 1 }, "id": "VideoGetItem"}

    Ausgabe in Roh-Text:

    Code
    {"id":"VideoGetItem","jsonrpc":"2.0","result":{"item":{"album":"","artist":[],"episode":-1,"fanart":"image://smb%3a%2f%2fSKYNAS%2fvideo%2fAnime%20-%20Zeichentrick%2fAnimalympics(1979)-fanart.jpg/","file":"smb://SKYNAS/video/Anime - Zeichentrick/Animalympics(1979).avi","id":1276,"label":"Dschungel Olympiade","season":-1,"showtitle":"","streamdetails":{"audio":[{"channels":2,"codec":"mp3","language":""}],"subtitle":[],"video":[{"aspect":4.0,"codec":"xvid","duration":4497,"height":432,"language":"","stereomode":"","width":576}]},"thumbnail":"image://smb%3a%2f%2fSKYNAS%2fvideo%2fAnime%20-%20Zeichentrick%2fAnimalympics(1979)-poster.jpg/","title":"Dschungel Olympiade","tvshowid":-1,"type":"movie"}}}

    So kann man z.B. auch informationen abholen in welcher Auflösung das vorliegt falls man z.B. Vorhänge steuern möchte.

    Du solltest Dir aber auch einfach das Addon was @DaVu vorgeschlagen hat angucken. Damit kann man schon eine Menge realisieren.

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

  • Hallo SkyBird1980, danke für die promte (detaillierte) Antwort

    Du schreibst:
    "Die 192.168.123.101 ist mein Kodi:"

    Woher finde ich denn raus, wie mein Kodi heißt?!

    Vielleicht ist es wichtig zu erwähnen, das mein Kodi auf einem Standalone-PC, ohne Netzwerkzugang läuft. Ich habe also weder ein Netzwerk zur Verfügung, noch Internet, oder W-LAN, oder sonstiges.

    Das Add-On, welches DaVu vorgeschlagen hat (Cinema Experience) habe ich mir mal auf einen 2. Rechner installiert. Da müsste ich mich jetzt aber noch ein wenig mit beschäftigen, da ich da ebenfalls so auf anhieb nicht wirklich durchblicke. Ich habe schon ne ganze Menge mit Kodi gemacht, aber Abfragen usw. ist mir ziemlich neu.

  • Wenn Du keinerlei Internet und Netzwerk hast benutzt Du auf dem selben Rechner die 127.0.0.1
    Das ist Localhost :)
    Falls Du doch Netzwerk hast und das vieleicht anderweitig gemeint hast findest Du deine IP - Adresse hier:
    Einstellungen -> Systeminformationen -> Netzwerk

  • Also, jedesmal, wenn ich die URL in einem Internet-Browser, oder dem Explorer eingebe, bekomme ich die Rückmeldung:

    "Die Webseite ist nicht erreichbar"

    Eingegeben habe ich jetzt beispielsweise (In der Adresszeile von Google Chrome, oder dem Internet-Explorer):

    http://127.0.0.1/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title", "album", "artist", "season", "episode", "duration", "showtitle", "tvshowid", "thumbnail", "file", "fanart", "streamdetails"], "playerid": 1 }, "id": "VideoGetItem"}

    PS: Kodi ist gestartet und unter: Einstellungen/ System / Internetzugriff... ist "Proxy-Server Benutzen" aktiviert. Proxy-Typ ist HTTP & Port ist 8080

    Mache ich grundlegend etwas falsch?

  • PS: Kodi ist gestartet und unter: Einstellungen/ System / Internetzugriff... ist "Proxy-Server Benutzen" aktiviert. Proxy-Typ ist HTTP & Port ist 8080

    Ja, Proxy-Einstellungen sind falsch, die machste am besten raus.

    Die Einstellungen die wir suchen sind hier:

    Stell es mal genau so ein - ansonsten muss der Aufruf so sein (Am selben PC wohlgemerkt!)
    http://127.0.0.1:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title", "album", "artist", "season", "episode", "duration", "showtitle", "tvshowid", "thumbnail", "file", "fanart", "streamdetails"], "playerid": 1 }, "id": "VideoGetItem"}

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

Jetzt mitmachen!

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