Ankündigung

Einklappen
Keine Ankündigung bisher.

IP Control der neuen LG WebOS TV's

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

    #16
    Hallo,
    habe das jetzt getestet. Funktioniert soweit, das ich die Meldung auf dem Fernseher sehe. Aber der Client Key ändert sich jedes mal. Wenn ich nun einen fest eintrage, bekomme ich keine Meldung mehr, sondern nur die Rückmeldung im Terminal: Command response : {"type":"error","id":"message","error":"401 insufficient permissions","payload":{}}

    Wieso ändert sich der Key?

    Danke und Gruß

    Kommentar


      #17
      Den Registrierungsteil musst du nur einmal machen. Danach den Client Key verwenden wie in Post #10 beschrieben.

      aus dem

      PHP-Code:
      $tv = new webOSTV("192.168.0.200"); 
      wird

      PHP-Code:
      $tv = new webOSTV("192.168.0.200",3000,"785cff4fef58555ef82188b83cda579e"); 

      Kommentar


        #18
        jemand das ganze mal in Python probiert?
        bei ss mir daran grad die Zähne aus , dieser base64 encode teil, bei dem der empfangene und gesendete Code miteinander verglichen werden...

        Kommentar


          #19
          Hi,
          genau so habe ich es durchgeführt.
          Ich habe den ersten Teil einmal durchlaufen lassen. Dann habe ich den Key kopiert und wie beschrieben eingefügt. Wenn ich dann durchlaufen lasse bekomme ich:
          Command response : {"type":"error","id":"message","error":"401 insufficient permissions","payload":{}}
          Ich habe den ersten Teil mal öfters durchlaufen lassen und gemerkt das sich der Key immer wieder ändert. Warum? Liegt es daran?
          Ich habe das mal mit node.js ausprobiert (https://www.npmjs.com/package/lgtv). Damit hat es funktioniert über das Terminal. Ich würde aber lieber PHP benutzen, weil es einfacher in meine Umgebung zu integrieren ist.
          Was kann ich machen?
          Danke,
          Chris

          Kommentar


            #20
            dito, ich auch lieber in python,

            es läuft soweit alles, allerdings bekomme ich beim key check probleme
            Code:
            Sending WS handshake GET / HTTP/1.1
            Upgrade: websocket
            Connection: Upgrade
            Sec-WebSocket-Version: 13
            Sec-WebSocket-Key: b'IW1rTVYvfVskdnQ0WGlENw=='
            Host: 192.168.178.56:3000
            
            
            WS Handshake Response: HTTP/1.1 101 Switching Protocols
            Upgrade: websocket
            Connection: Upgrade
            Sec-WebSocket-Accept: Cykq1w6IDc58rgbMhys2ycst2nY=
            weiss ehrlich gesagt auch nich warum das unterschiedlich is , bin kein python crack ..
            Code:
             
             [COLOR=#000080][B]if [/B][/COLOR]response == [COLOR=#008080][B]''[/B][/COLOR]:     [COLOR=#000080]print[/COLOR]([COLOR=#008080][B]"ERROR during WS handshake!"[/B][/COLOR]) [COLOR=#000080][B]else[/B][/COLOR]:     [COLOR=#000080]print[/COLOR]([COLOR=#008080][B]"WS Handshake Response:"[/B][/COLOR], response)     matches = re.search([COLOR=#008080][B]'Sec-WebSocket-Accept:\s*(.*=)'[/B][/COLOR], response)     returnkey = matches.group().strip()     [COLOR=#808080][I]#print("Match in response ",keyAccept) [/I][/COLOR] [COLOR=#808080]tvkey [/COLOR]= [COLOR=#008080][B]'' [/B][/COLOR][COLOR=#808080][I]# von TV 28 stellen [/I][/COLOR]wskey = [COLOR=#000080]str[/COLOR]([COLOR=#94558d]self[/COLOR]._wskey).encode([COLOR=#008080][B]'utf8'[/B][/COLOR]) [COLOR=#808080][I]#zu TV 26 stellen [/I][/COLOR]key = [COLOR=#000080]str[/COLOR]([COLOR=#008080][B]'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'[/B][/COLOR]).encode([COLOR=#008080][B]'utf8'[/B][/COLOR]) keys = [COLOR=#000080]str[/COLOR]([COLOR=#008080][B]"%s%s" [/B][/COLOR]% (wskey , key)).encode([COLOR=#008080][B]'utf8'[/B][/COLOR]) hash = hashlib.sha1(keys).hexdigest() [COLOR=#000080]print[/COLOR](hash) asci = [COLOR=#000080]bytes[/COLOR](hash.encode([COLOR=#008080][B]'utf-8'[/B][/COLOR])) [COLOR=#000080]print[/COLOR](asci) [COLOR=#000080]print[/COLOR](base64.standard_b64encode([COLOR=#000080]bytes[/COLOR](asci))) expectedResonse = base64.standard_b64encode([COLOR=#000080]bytes[/COLOR](asci)) [COLOR=#808080][I]#print('zurueckgekommerner wert', base64.decode(returnkey)) [/I][/COLOR][COLOR=#000080]print[/COLOR]([COLOR=#008080][B]"gerechneter wert"[/B][/COLOR],expectedResonse)  [COLOR=#000080][B]if [/B][/COLOR]returnkey == expectedResonse:     [COLOR=#94558d]self[/COLOR]._connected = [COLOR=#000080][B]True [/B][/COLOR][COLOR=#000080][B]    [/B][/COLOR][COLOR=#000080]print[/COLOR]([COLOR=#008080][B]"Key Akzeptiert"[/B][/COLOR]) [COLOR=#000080][B]else[/B][/COLOR]:     [COLOR=#94558d]self[/COLOR]._connected = [COLOR=#000080][B]False [/B][/COLOR][COLOR=#000080][B]    [/B][/COLOR][COLOR=#000080]print[/COLOR]([COLOR=#008080][B]"Key nicht Akzeptiert"[/B][/COLOR])

            Kommentar


              #21
              ich komme jetzt soweit, das er den Key akzeptiert, allerdings macht er den fehler jetzt beim Handshake, es kommen anscheienend keine Daten zurück,
              funktioniert denn der Code beim Webos 3.0 Simulator?
              HTML-Code:
              Sending LG handshake ...
              response nach handshake b'\x88\x02\x03\xea'
              ERROR during LG handshake:

              Kommentar


                #22
                bin jetzt soweit, das ich ne verbindung aufbaue, dan den Handshake ausführen möchte, bekomme allerdings diese antowrt?!
                Sending WS handshake GET / HTTP/1.1
                Upgrade: websocket
                Connection: Upgrade
                Sec-WebSocket-Version: 13
                Sec-WebSocket-Key: b'cEhRMEh7an1ZbFRaKTlEwqc='
                Host: 192.168.178.56: 3000


                WS Handshake Response (empfangene daten): HTTP/1.1 101 Switching Protocols
                Upgrade: websocket
                Connection: Upgrade
                Sec-WebSocket-Accept: bzcbEL17sjOeTt2sw4DhE6FHmYs=


                Sucessfull WS connection to 192.168.178.56 : 3000
                Sending LG handshake {"type":"register","id":"register_0","payload": {"f orcePairing":false,"pairingType":"PROMT","manifest ":{"manifestVersion":1,"appVersion":"1.1","sig ned" :{"created":"20140509","appId":"com.lge.test","v en dorId":"com.lge","localizedAppNames":{"":"LG Remote App","ko-KR":"리모컨 앱","zxx-XX":"ЛГ Rэмotэ AПП"},"localizedVendorNames":{"":"LG Electronics"},"permissions":["TEST_SECURE","CONTROL_INPUT_TEXT","CONTROL_MO USE_ AND_KEYBOARD","READ_INSTALLED_APPS","READ_LGE_SDX" ,"READ_NOTIFICATIONS","SEARCH","WRITE_SETTINGS" ,"W RITE_NOTIFICATION_ALERT","CONTROL_POWER","READ_CUR RENT_CHANNEL","READ_RUNNING_APPS","READ_UPDATE_INF O","UPDATE_FROM_REMOTE_APP","READ_LGE_TV_INPUT_ EVE NTS","READ_TV_CURRENT_TIME"],"serial":"2f930e2d2cfe083771f68e4fe7bb07"},"pe rmi ssions":["LAUNCH","LAUNCH_WEBAPP","APP_TO_APP","CLOSE", "TES T_OPEN","TEST_PROTECTED","CONTROL_AUDIO","CONTROL_ DISPLAY","CONTROL_INPUT_JOYSTICK","CONTROL_INPUT_M EDIA_RECORDING","CONTROL_INPUT_MEDIA_PLAYBACK","CO NTROL_INPUT_TV","CONTROL_POWER","READ_APP_STATUS", "READ_CURRENT_CHANNEL","READ_INPUT_DEVICE_LIST ","R EAD_NETWORK_STATE","READ_RUNNING_APPS","READ_TV_CH ANNEL_LIST","WRITE_NOTIFICATION_TOAST","READ_POWER _STATE","READ_COUNTRY_INFO"],"signatures":[{"signatureVersion":1,"signature":"eyJhbGdvcml0 aG0 iOiJSU0EtU0hBMjU2Iiwia2V5SWQiOiJ0ZXN0LXNpZ25pbmctY 2VydCIsInNpZ25hdHVyZVZlcnNpb24iOjF9.hrVRgjCwXVvE2O OSpDZ58hR+59aFNwYDyjQgKk3auukd7pcegmE2CzPCa0bJ0ZsR AcKkCTJrWo5iDzNhMBWRyaMOv5zWSrthlf7G128qvIlpMT0YNY +n/FaOHE73uLrS/g7swl3/qH/BGFG2Hu4RlL48eb3lLKqTt2xKHdCs6Cd4RMfJPYnzgvI4BNrFU Ksjkcu+WD4OO2A27Pq1n50cMchmcaXadJhGrOqH5YmHdOCj5NS HzJYrsW0HPlpuAx/ECMeIZYDh6RMqaFM2DXzdKX9NmmyqzJ3o/0lkk/N97gfVRLW5hA29yeAwaCViZNCP8iC9aO0q9fQojoa7NQnAtw== "}]}}}

                RAW response nach handshake b'\x81[{"type":"response","id":"register_0","payload": {"p airingType":"PROMPT","returnValue":true}}'

                LG Handshake Response {'payload': {'pairingType': 'PROMPT', 'returnValue': True}, 'id': 'register_0', 'type': 'response'}

                Kommentar


                  #23
                  Hallo,
                  ich versuche gerade meinen LG einzubinden. Leider habe ich mit php keine Erfahrung und steige da nicht ganz durch. Wenn ich die Datei über den Webbrowser auf dem Raspberry aufrufe, bekomme ich nur den Inhalt angezeigt. Wäre eine kurze Step by Step Anleitung möglich.

                  Danke

                  Gruß

                  Andreas

                  Kommentar


                    #24
                    ich sag nur YEAH, it works!!!
                    unter python
                    muss nurnoch ein bisschen mit den funktionen spielen können

                    Kommentar


                      #25
                      Nee, schon einiges rumprobiert. Ich bin zu doof für die Scheiße .

                      Kommentar


                        #26
                        Zitat von ndorf Beitrag anzeigen
                        Hallo,
                        ich versuche gerade meinen LG einzubinden. Leider habe ich mit php keine Erfahrung und steige da nicht ganz durch. Wenn ich die Datei über den Webbrowser auf dem Raspberry aufrufe, bekomme ich nur den Inhalt angezeigt. Wäre eine kurze Step by Step Anleitung möglich.

                        Danke

                        Gruß

                        Andreas
                        dann ist bei dir kein php installiert und apache zeit die Datei als Textdatei an.
                        Oder php ist in apache nicht aktiviert.

                        Kommentar


                          #27
                          ... oder das "<?php " in der ersten Zeile fehlt (hatte ich mal bei copy und paste nicht mitgenommen und dann lange gesucht)

                          Kommentar


                            #28
                            Hallo,
                            erstmal vielen Dank, dass ihr mir helfen wollt.

                            Ich habe auf dem Raspberry noch andere PHP Sachen laufen, die eigentlich funktionieren.

                            So, wenn ich "<?php" in die erste Zeile des test-lg-webos.php bekomme ich eine leere Seite angezeigt. Setzte ich "<?php" in der ersten Zeile des webos.inc.php, so bekomme ich beim Aufruf der test-lg-webos.php den Inhalt von webos.inc.php angezeigt. Rufe ich webos.inc.php auf gibt es die Meldung "Seite funktioniert nicht" .

                            Muss am Ende eigentlich "?>" stehen? Hat aber kein Einfluss auf das gezeigte Verhalten.

                            Kommentar


                              #29
                              Zitat von ndorf Beitrag anzeigen
                              Hallo,
                              erstmal vielen Dank, dass ihr mir helfen wollt.

                              Ich habe auf dem Raspberry noch andere PHP Sachen laufen, die eigentlich funktionieren.

                              So, wenn ich "<?php" in die erste Zeile des test-lg-webos.php bekomme ich eine leere Seite angezeigt. Setzte ich "<?php" in der ersten Zeile des webos.inc.php, so bekomme ich beim Aufruf der test-lg-webos.php den Inhalt von webos.inc.php angezeigt. Rufe ich webos.inc.php auf gibt es die Meldung "Seite funktioniert nicht" .

                              Muss am Ende eigentlich "?>" stehen? Hat aber kein Einfluss auf das gezeigte Verhalten.
                              Die php Skripte sind nicht zur Ausführung im Browser gemacht.
                              Du musst sie in einer Shell ausführen, wie oben beschrieben.
                              Also beide php Files in dasselbe Verzeichnis und dann mit

                              Code:
                              php ./test-lg-webos.php
                              ausführen.
                              Zuletzt geändert von jonofe; 05.08.2016, 23:23.

                              Kommentar


                                #30
                                so....yeah, it works....aber die Lautstärke ändert sich nicht.
                                Wenn ich den Key eingegeben habe bekomme ich folgende Meldung

                                "# php test-lg-webos.php
                                PHP Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /srv/http/Xsolution
                                /LG/webos.inc.php on line 24
                                PHP Warning: fsockopen(): unable to connect to 192.168.178.34,3000,45153393f5d883757284df990bdc4a 4f:3000 (php_network_getaddresses: getaddrinfo failed: Name or service not known) in /srv/http/Xsolution/LG/webos.inc.php on line 24
                                PHP Warning: socket_set_timeout() expects parameter 1 to be resource, boolean given in /srv/http/Xsolution/LG/webos.inc.php on line 25
                                Sending WS handshake
                                GET / HTTP/1.1
                                Upgrade: websocket
                                Connection: Upgrade
                                Sec-WebSocket-Version: 13
                                Sec-WebSocket-Key: KE9pQVR2cnVDR1PCNTN9wg==
                                Host: 192.168.178.34,3000,45153393f5d883757284df990bdc4a 4f:3000"

                                Kommentar

                                Lädt...
                                X