Ankündigung

Einklappen
Keine Ankündigung bisher.

KODI mit Gira HS steuern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS KODI mit Gira HS steuern

    Hi,
    hat jemand von euch schonmal mit den HS Kodi gesteuert?

    Ich möchte gerne realisieren, dass beim Klingeln an der Tür die Geräte auf Pause bzw. Mute (AVR) geschaltet werden.
    Mein AVR wird via TCP vom HS auf stumm geschaltet > funktioniert schon
    VU+ Duo2 wird pausiert und zeigt eine Nachricht auf dem TV > funktioniert auch
    VU+ DUo2 Bild der Kamera beim klingeln > bisher nicht, da es fast 30s dauert, bis ein Bild gezeigt wird. Ist aber auch nicht so wichtig

    Shield TV auf Pause schalten > versuche ich gerade.

    Der Shield TV wird ausschließlich mit Kodi genutzt. Nun wäre es gut, wenn dieser pausieren würde.

    Per Browser geht es mit:
    http://IP:PORT/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}

    Aber wie geht es im HS?
    Unter "Webseiten / IP-Geräte" habe ich eine einfache Auswertung angelegt mit IP und Port
    Dort habe ich unter "Senden" einfach nur folgendes eingefügt:
    /jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}
    Das einmal bei "URL (nur Pfad)" und einmal auch testweise als Datenblock.
    Als URL eintragen funktioniert für die VU+ perfekt, daher habe ich es auch gemacht, aber dort wird es nicht angenommen.

    Ich brauche eigentlich nur den Pause-Befehl. Hat jemand von euch das schon gemacht/hinbekommen oder einen Tipp?

    #2
    Auch mit URL-Quoting getestet?
    Gruß Matthias
    EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
    - PN nur für PERSÖNLICHES!

    Kommentar


      #3
      Hi,

      ja, habe ich auch damit getestet. Benutzername und Passwort wird es wohl nicht geben, wenn der Link im Browser ja so funktioniert, nehme ich an?

      Kommentar


        #4
        Also für die Senderwahl sah der Parameter so aus:
        Code:
        http://10.0.0.24/jsonrpc?request=%7B"jsonrpc":%20"2.0",%20"method":%20"Player.open","id":1,"params":%5B%7B"file":"http://pebbles106-lh.akamaihd.net/i/rtlnitro_1@97458/master.m3u8%7CX-Forwarded-For=85.3.113.171"%7D%5D%7D

        Kommentar


          #5
          Der sagt mir leider nichts und funktionieren tut er bei mir auch nicht.

          Ich habe (aus iRule) noch einen zweiten Code, der im Browser auch funktioniert: Ich habe mal beide untereinander kopiert. So wie ich es sehe, wäre das doch sicher das URL-Quoting oder? Funktioniert leider ebenso wenig
          Code:
          http://192.168.20.55:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 1 }, "id": 1}
          
          http://192.168.20.55:8080/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Player.PlayPause%22%2C%22params%22%3A%7B%22playerid%22%3A1%7D%2C%22id%22%3A1%7D

          Kommentar


            #6
            Bei mir sieht das examplarisch so aus:
            (alles mit CR/LF, ohne URL-Encoding)

            Senden: 'POST /jsonrpc HTTP/1.1'
            Senden: 'HOST: kodi.hostname'
            Senden: 'User-Agent: HS oder so'
            Senden: 'Accept: */*'
            Senden: 'Content-type: application/json'
            Senden: 'Connection: close'
            Senden: 'Content-Length: 121' (das muss natuerlich angepasst werden)
            Senden: ''
            Senden: '{"jsonrpc":"2.0", "method":"Addons.SetAddonEnabled", "params":{"addonid":"script.xbmc.boblight", "enabled":true}, "id":1}'

            Kann man auch ueber GET machen, dann faellt das laestige Abzaehlen der Content-Length weg...

            HTH :: Michael

            Kommentar


              #7
              Hi Michael,
              das sieht für mich leider echt wirr aus, auch wenn ich es etwas nachvollziehen kann. Woher bekomme ich die Content-Length?
              Ich habe das ganze mal mit Wireshark mitgeloggt. Allerdings kommen hier mit den von mir o.g. Befehlen über 10 Einträge dafür, die mir alle nichts so richtig sagen.
              Wenn ich per TCP an meinen AVR etwas schicke, entstehen nur sehr wenig Einträge und es gibt auf jeden Fall einen mit "Length =..." (ungleich 0). In genau diesem finde ich dann auch den Befehl per HEX-Code, den ich senden oder empfangen wollte. Daher sieht das noch logisch aus. Doch diese Flut von Einträgen sagen mir alle leider gar nichts.

              Gibt es keinen einfacheren Weg dazu oder kannst Du mir das bitte nochmal näher erläutern? Ich habe nur Maschinenbau studiert und eine Ausbildung als Mechatroniker. Da lernt man zwar etwas mit Zahlensystemen umzugehen und ich habe viel in iRule bisher gemacht. Allerdings waren das immer über TCP und meistens im HEX-Format. Diese http-Geschichte ist absolutes Neuland. Vor allem, da ich nicht verstehe, warum ich etwas im Browser abschicken kann, was funktioniert, aber warum der HS das nicht kann?!?
              Würde mich freuen, wen Du mir noch einen Tipp geben könntest, wie ich damit umgehe. Gott sei Dank möchte ich nur Pause und keine weiteren Befehle

              Kommentar


                #8
                Zitat von Marino Beitrag anzeigen
                Vor allem, da ich nicht verstehe, warum ich etwas im Browser abschicken kann, was funktioniert, aber warum der HS das nicht kann?!?
                Würde mich freuen, wen Du mir noch einen Tipp geben könntest, wie ich damit umgehe. Gott sei Dank möchte ich nur Pause und keine weiteren Befehle
                Weil es nicht nur HTTP Content, sondern auch HTTP-Header gibt und die sind manchmal wichtig. Ein "regulaerer" Client (also zB ein Browser, wget, curl, whatever) schickt die mit, ohne dass du etwas davon merkst...
                Mein Beispiel ist ein POST-Request, das muss dem Webserver (also KODI in dem Fall) mitgeteilt werden, das macht man mit der ersten Zeile. Zeile 2 und 3 braucht KODI vermutlich nicht, es kann aber nicht schaden (in der 2. Zeile wird der Hostname den man befragen moechte angegeben, das wird fuer HTTP1/1 benoetigt, in der 3. Zeile identifiziert sich der Client - zB als "Mozilla x.y.z" oder "sag ich nicht "a.b").
                Zeile 4 und 5 sind schon wichtiger, da wird gesagt welche Content-Types man akzeptiert und in welchem Content-Type man schickt - im konkreten Fall sollte das eigentlich immer richtig sein.
                Zeile 6 sagt, dass die Verbindung danach geschlossen werden soll (sonst bleibt der socket, resp die Verbindung, weiterhin belegt und irgendwann staenkern dann KODI und/oder der HS rum).
                Zeile 7: die Content-Laenge in Bytes... unten mehr dazu
                Zeile 8: die Leerzeile trennt den Header vom Content
                Zeile 9 bis ultimo: der Content

                Wie Du den Conetnt zusammenbaust weisst du ja vermutlich schon. Dann nimmste einen spitzen Bleistift und zaehlst am Monitor die Zeichen
                In meinem Beispiel muesste mein Content 121 Zeichen lang sein... das muss angepasst werden. Das ist bei dynamisch erzeugten Content-Strings schwierig im HS zu realisieren, aber solange der Content immer gleich bleibt ist alles gut

                HTH :: Michael

                Kommentar


                  #9
                  Wow, vielen Dank für Deine Mühe, mir das so ausführlich zu erklären. Nun habe selbst ich es verstanden.

                  Dass der Browser automatisch einen Header mit schickt, kling logisch. Dann hätte ich aber noch eher gedacht, dass der einfache URL-Code, der bei meiner VU+ funktioniert, auch nicht funktionieren dürfte... mhh. Rätsel der unwissenden Menschheit


                  Zuerst hatte ich es alles kopiert und abgeändert und dabei die ' ' immer mitgenommen, da funktionierte es nicht. Aber Dein Beispiel hatte eine Content-Length von 121 und mit den Zeichen waren es 123, was mich dazu brauchte, sie wegzunehmen und das funktionierte dann. Ich habe Word zählen lassen (Extras > Wörter zählen).




                  Lösung für die Nachwelt. Irgend jemand findet sicher diesen Thread und sucht eine Lösung:
                  Ich habe noch 2 Links, wo man ein paar Befehle findet. Sind zwar nicht alle, aber immerhin.
                  1. http://forum.kodi.tv/showthread.php?tid=183394
                  2. http://habitech.s3.amazonaws.com/PDF...(Isengard).pdf

                  3. In iRule sind die Befehle auch, allerdings im URL-Quoting. Man kann zur Not iRule testen und als Gerät beispielsweise das "XBMC JSON FRODO (Default)" hinzufügen. Kann allerdings sein, dass man den Code dann noch etwas aufhübschen muss, damit der HS ihn mag, aber hier gibt es annähernd alle Befehle.
                  4... Gibt sicher noch mehr, aber das sind die mir bekannten.

                  Die letzte Zeile ist nicht ganz drauf. Da steht:
                  Code:
                  {"jsonrpc":"2.0","method":"Player.PlayPause","params":{"playerid":1},"id":1}
                  Und eingetragen ist es als "Web-Seiten/IP-Geräte abfragen und auswerten"
                  You do not have permission to view this gallery.
                  This gallery has 2 photos.
                  Zuletzt geändert von Marino; 26.05.2016, 08:30.

                  Kommentar


                    #10
                    Hallo,

                    danke für die sehr hilfreiche Beschreibung. Ich habe es noch so erweitert, daß ich auch im Homeserver sehe, welcher Kanal läuft, bzw, welche Datei abgespielt wird, in dem ich das Resultat der entsprechenden Abfrage auswerte, die das Ergebnis in das 14-Byte-Text Objekt "Titel Raspi4" einliest.

                    Gruß Christoph

                    You do not have permission to view this gallery.
                    This gallery has 3 photos.

                    Kommentar

                    Lädt...
                    X