Ankündigung

Einklappen
Keine Ankündigung bisher.

SONY TV with GIRA HS

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

    HS/FS SONY TV with GIRA HS

    Oto jak połączyć telewizor BRAVIA SONY z GIRA HS
    Here I am connecting a BRAVIA SONY TV with GIRA HS

    Potrzebny jest plik cookie aby to zadziałało
    You need a cookie file to make it work


    Sporo informacji o autoryzacji SONY
    A lot of information about SONY authorization https://www.codeproject.com/Articles/875948/SonyAPILib

    Też dziękuję :
    Thank you too : https://community.sony.co.uk/t5/andr...a/td-p/2292122


    Oczywiście też :
    Of course thanks also to: https://openremote.github.io/archive...20control.html


    A więc po kolei :
    So in turn:

    Ustaw w telewizorze w menu sieć : zdalne uruchomienie (wł .) , adres ip , prosta kontrola IP ( wł.)
    Set in the menu on the SONY TV network: remote start (on), ip address, simple IP control (on)

    IMG_6760.jpg
    IMG_6761.jpgIMG_6762.jpg

    IMG_6763.jpgIMG_6764.jpg

    1. Zainstaluj Google Chrome
    1. Install Google Chrome

    2. Zainstaluj Simple Rest Client
    2. Install Simple Rest Client

    ( https://chrome.google.com/webstore/d...ajhfbgofnpcjmb )

    3. Po zainstalowaniu Simple Rest Client powinieneś zobaczyć ikonę przedstawiającą niebieski globus po prawej stronie pola adresu URL w przeglądarce Chrome. Kliknij tę ikonę.
    3. After Simple Rest Client is installed you should see a blue globe icon to the right of the URL field in Chrome. Click that icon.
    Zrzut ekranu (15).png

    4. W polu URL klienta REST wpisz http://192.168.1.33/sony/accessControl
    gdzie zastąpisz 192.168.1.33 adresem IP twojego telewizora.
    4. In the URL field of the REST Client, type in http://192.168.168.198/sony/accessControl
    where you replace 192.168.168.198 with IP address of your TV.

    5. Kliknij POST.
    5. Click POST.

    6. W polu danych DATA:
    6. In the DATA field paste:

    { "id" : 13, "method" : "actRegister" , "version" : "1.0" , "params" : [{ "clientid" : "iRule: 1" , "nickname" : "iRule" }, [{ "clientid" : "iRule: 1" , "value" : "yes" , "nickname" : "iRule" , "function" : "WOL" }]]}



    Zrzut ekranu (7).png


    7. Hit WYŚLIJ. Na ekranie telewizora powinien zostać wyświetlony komunikat z kodem PIN i wyskakującym komunikatem Nazwa użytkownika i hasło w przeglądarce.
    Pozostaw nazwę użytkownika pustą iw polu hasła wpisz kod PIN wyświetlany na ekranie telewizora.

    7. Hit SEND. You should see a message on TV pop-up with PIN code and a Username and Password message pop-up in the Browser.
    Leave Username blank and in password field put in the PIN code that is displayed on TV.


    Aby dowiedzieć się, jakie kody może zaakceptować Twoja telewizja, ponownie przejdź do Rest i:
    To find out what codes your TV can accept, go to Rest again and:


    8. W polu URL klienta REST wpisz http://192.168.168.198/sony/system,
    In the URL field of the REST Client, type inhttp://192.168.168.198/sony/system

    gdzie zastąpisz 192.168.168.198 adresem IP twój telewizor.
    where you replace 192.168.168.198 with IP address of your TV.

    9. Kliknij POST.
    9. Click POST.

    10. W polu Headers :
    10 In the Headers field type:

    SOAPAction: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"


    11. W polu Data:
    11 .In the Data field type:

    {"method":"getRemoteControllerInfo","params":[],"id":10, "version":"1.0"}

    12. Hit WYŚLIJ. Powinieneś zobaczyć dużą listę kodów w polu wyniku, jak na załączonym obrazku.
    12. Hit SEND. You should see a big list of codes in the result box, like in the attached picture.

    Zrzut ekranu (9).png
    Aby przetestować działanie kodów, ponownie przejdź do REST i:
    In order to test if your codes work, go to REST again, and:

    13. W polu URL klienta REST wpisz
    In the URL field of the REST Client, type In http://192.168.168.198/sony/IRCC
    gdzie zastąpisz 192.168.168.198 adresem IP twojego telewizora.
    where you replace 192.168.168.198 with IP address of your TV.

    14. Kliknij POST.
    Click POST.

    15. W polu Headers
    In the Headers field type:


    SOAPAction: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"


    16. W polu Data:
    In the Data field type:

    <?xml version="1.0"?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <s:Body> <u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"> <IRCCCode>AAAAAQAAAAEAAAAuAw==</IRCCCode> </u:X_SendIRCC> </s:Body> </s:Envelope>

    17. Zastąp kod na początku linii <Kod IRCC>:
    Replace the code between on the line beginning and <IRCCCode>:
    AAAAAQAAAAEAAAAuAw ==

    z kodem, który akceptuje twój telewizor, który odkryłeś za pomocą metody getRemoteControllerInfo. Ta powyżej to dyskretna moc "WakeUP". W moim modelu nie ma WOL-a, KDL65W850C.
    with whichever code your TV can accept, that you discovered with the getRemoteControllerInfo method. The one above is the discrete power on, "WakeUP".
    There is no WOL with my model, a KDL65W850C.



    18. Hit WYŚLIJ. Twój telewizor powinien się włączyć i pozostać włączony, jeśli zostanie wysłany ponownie
    19. Hit SEND. Your TV should turn on, and stay on, if it’s sent again.

    Zrzut ekranu (10).png


    kody do mojego TV SONY

    codes to tv:

    {"result":[{"bundled":true,"type":"IR_REMOTE_BUNDLE_TYPE_A EP_ N"},
    [{"name":"Num1","value":"AAAAAQAAAAEAAAAAAw=="},
    {"name":"Num2","value":"AAAAAQAAAAEAAAABAw=="},
    {"name":"Num3","value":"AAAAAQAAAAEAAAACAw=="},
    {"name":"Num4","value":"AAAAAQAAAAEAAAADAw=="},
    {"name":"Num5","value":"AAAAAQAAAAEAAAAEAw=="},
    {"name":"Num6","value":"AAAAAQAAAAEAAAAFAw=="},
    {"name":"Num7","value":"AAAAAQAAAAEAAAAGAw=="},
    {"name":"Num8","value":"AAAAAQAAAAEAAAAHAw=="},
    {"name":"Num9","value":"AAAAAQAAAAEAAAAIAw=="},
    {"name":"Num0","value":"AAAAAQAAAAEAAAAJAw=="},
    {"name":"Num11","value":"AAAAAQAAAAEAAAAKAw=="} ,
    {"name":"Num12","value":"AAAAAQAAAAEAAAALAw=="} ,
    {"name":"Enter","value":"AAAAAQAAAAEAAAALAw=="} ,
    {"name":"GGuide","value":"AAAAAQAAAAEAAAAOAw==" },
    {"name":"ChannelUp","value":"AAAAAQAAAAEAAAAQAw ==" },
    {"name":"ChannelDown","value":"AAAAAQAAAAEAAAAR Aw= ="},
    {"name":"VolumeUp","value":"AAAAAQAAAAEAAAASAw= ="} ,
    {"name":"VolumeDown","value":"AAAAAQAAAAEAAAATA w== "},
    {"name":"Mute","value":"AAAAAQAAAAEAAAAUAw=="},
    {"name":"TvPower","value":"AAAAAQAAAAEAAAAVAw== "},
    {"name":"Audio","value":"AAAAAQAAAAEAAAAXAw=="} ,
    {"name":"MediaAudioTrack","value":"AAAAAQAAAAEA AAA XAw=="},
    {"name":"Tv","value":"AAAAAQAAAAEAAAAkAw=="},
    {"name":"Input","value":"AAAAAQAAAAEAAAAlAw=="} ,
    {"name":"TvInput","value":"AAAAAQAAAAEAAAAlAw== "},
    {"name":"TvAntennaCable","value":"AAAAAQAAAAEAA AAq Aw=="}
    {"name":"WakeUp","value":"AAAAAQAAAAEAAAAuAw==" },
    {"name":"PowerOff","value":"AAAAAQAAAAEAAAAvAw= ="} ,
    {"name":"Sleep","value":"AAAAAQAAAAEAAAAvAw=="} ,
    {"name":"Right","value":"AAAAAQAAAAEAAAAzAw=="} ,
    {"name":"Left","value":"AAAAAQAAAAEAAAA0Aw=="},
    {"name":"SleepTimer","value":"AAAAAQAAAAEAAAA2A w== "},
    {"name":"Analog2","value":"AAAAAQAAAAEAAAA4Aw== "},
    {"name":"TvAnalog","value":"AAAAAQAAAAEAAAA4Aw= ="}
    ,{"name":"Display","value":"AAAAAQAAAAEAAAA6Aw== "} ,
    {"name":"Jump","value":"AAAAAQAAAAEAAAA7Aw=="},
    {"name":"PicOff","value":"AAAAAQAAAAEAAAA+Aw==" },
    {"name":"PictureOff","value":"AAAAAQAAAAEAAAA+A w== "},
    {"name":"Teletext","value":"AAAAAQAAAAEAAAA\/Aw=="},
    {"name":"Video1","value":"AAAAAQAAAAEAAABAAw==" },
    {"name":"Video2","value":"AAAAAQAAAAEAAABBAw==" },
    {"name":"AnalogRgb1","value":"AAAAAQAAAAEAAABDA w== "},
    {"name":"Home","value":"AAAAAQAAAAEAAABgAw=="},
    {"name":"Exit","value":"AAAAAQAAAAEAAABjAw=="},
    {"name":"PictureMode","value":"AAAAAQAAAAEAAABk Aw= ="},
    {"name":"Confirm","value":"AAAAAQAAAAEAAABlAw== "},
    {"name":"Up","value":"AAAAAQAAAAEAAAB0Aw=="},
    {"name":"Down","value":"AAAAAQAAAAEAAAB1Aw=="},
    {"name":"ClosedCaption","value":"AAAAAgAAAKQAAA AQA w=="},
    {"name":"Component1","value":"AAAAAgAAAKQAAAA2A w== "},
    {"name":"Component2","value":"AAAAAgAAAKQAAAA3A w== "},
    {"name":"Wide","value":"AAAAAgAAAKQAAAA9Aw=="},
    {"name":"EPG","value":"AAAAAgAAAKQAAABbAw=="},
    {"name":"PAP","value":"AAAAAgAAAKQAAAB3Aw=="},
    {"name":"TenKey","value":"AAAAAgAAAJcAAAAMAw==" },
    {"name":"BSCS","value":"AAAAAgAAAJcAAAAQAw=="},
    {"name":"Ddata","value":"AAAAAgAAAJcAAAAVAw=="} ,
    {"name":"Stop","value":"AAAAAgAAAJcAAAAYAw=="},
    {"name":"Pause","value":"AAAAAgAAAJcAAAAZAw=="} ,
    {"name":"Play","value":"AAAAAgAAAJcAAAAaAw=="},
    {"name":"Rewind","value":"AAAAAgAAAJcAAAAbAw==" },
    {"name":"Forward","value":"AAAAAgAAAJcAAAAcAw== "},
    {"name":"DOT","value":"AAAAAgAAAJcAAAAdAw=="},
    {"name":"Rec","value":"AAAAAgAAAJcAAAAgAw=="},
    {"name":"Return","value":"AAAAAgAAAJcAAAAjAw==" },
    {"name":"Blue","value":"AAAAAgAAAJcAAAAkAw=="},
    {"name":"Red","value":"AAAAAgAAAJcAAAAlAw=="},
    {"name":"Green","value":"AAAAAgAAAJcAAAAmAw=="} ,
    {"name":"Yellow","value":"AAAAAgAAAJcAAAAnAw==" },
    {"name":"SubTitle","value":"AAAAAgAAAJcAAAAoAw= ="} ,
    {"name":"CS","value":"AAAAAgAAAJcAAAArAw=="},
    {"name":"BS","value":"AAAAAgAAAJcAAAAsAw=="},
    {"name":"Digital","value":"AAAAAgAAAJcAAAAyAw== "},
    {"name":"Options","value":"AAAAAgAAAJcAAAA2Aw== "},
    {"name":"Media","value":"AAAAAgAAAJcAAAA4Aw=="} ,
    {"name":"Prev","value":"AAAAAgAAAJcAAAA8Aw=="},
    {"name":"Next","value":"AAAAAgAAAJcAAAA9Aw=="},
    {"name":"DpadCenter","value":"AAAAAgAAAJcAAABKA w== "},
    {"name":"CursorUp","value":"AAAAAgAAAJcAAABPAw= ="} ,
    {"name":"CursorDown","value":"AAAAAgAAAJcAAABQA w== "},
    {"name":"CursorLeft","value":"AAAAAgAAAJcAAABNA w== "},
    {"name":"CursorRight","value":"AAAAAgAAAJcAAABO Aw= ="},
    {"name":"ShopRemoteControlForcedDynamic","value ":" AAAAAgAAAJcAAABqAw=="},
    {"name":"FlashPlus","value":"AAAAAgAAAJcAAAB4Aw ==" },
    {"name":"FlashMinus","value":"AAAAAgAAAJcAAAB5A w== "},
    {"name":"AudioQualityMode","value":"AAAAAgAAAJc AAA B7Aw=="},
    {"name":"DemoMode","value":"AAAAAgAAAJcAAAB8Aw= ="} ,
    {"name":"Analog","value":"AAAAAgAAAHcAAAANAw==" },
    {"name":"Mode3D","value":"AAAAAgAAAHcAAABNAw==" },
    {"name":"DigitalToggle","value":"AAAAAgAAAHcAAA BSA w=="},
    {"name":"DemoSurround","value":"AAAAAgAAAHcAAAB 7Aw =="},
    {"name":"*AD","value":"AAAAAgAAABoAAAA7Aw=="},
    {"name":"AudioMixUp","value":"AAAAAgAAABoAAAA8A w== "},
    {"name":"AudioMixDown","value":"AAAAAgAAABoAAAA 9Aw =="},
    {"name":"PhotoFrame","value":"AAAAAgAAABoAAABVA w== "},
    {"name":"Tv_Radio","value":"AAAAAgAAABoAAABXAw= ="} ,
    {"name":"SyncMenu","value":"AAAAAgAAABoAAABYAw= ="} ,
    {"name":"Hdmi1","value":"AAAAAgAAABoAAABaAw=="} ,
    {"name":"Hdmi2","value":"AAAAAgAAABoAAABbAw=="} ,
    {"name":"Hdmi3","value":"AAAAAgAAABoAAABcAw=="} ,
    {"name":"Hdmi4","value":"AAAAAgAAABoAAABdAw=="} ,
    {"name":"TopMenu","value":"AAAAAgAAABoAAABgAw== "},
    {"name":"PopUpMenu","value":"AAAAAgAAABoAAABhAw ==" },
    {"name":"OneTouchTimeRec","value":"AAAAAgAAABoA AAB kAw=="},
    {"name":"OneTouchView","value":"AAAAAgAAABoAAAB lAw =="},
    {"name":"DUX","value":"AAAAAgAAABoAAABzAw=="},
    {"name":"FootballMode","value":"AAAAAgAAABoAAAB 2Aw =="},
    {"name":"iManual","value":"AAAAAgAAABoAAAB7Aw== "},
    {"name":"Netflix","value":"AAAAAgAAABoAAAB8Aw== "},
    {"name":"Assists","value":"AAAAAgAAAMQAAAA7Aw== "},
    {"name":"FeaturedApp","value":"AAAAAgAAAMQAAABE Aw= ="},
    {"name":"FeaturedAppVOD","value":"AAAAAgAAAMQAA ABF Aw=="},
    {"name":"GooglePlay","value":"AAAAAgAAAMQAAABGA w== "},
    {"name":"ActionMenu","value":"AAAAAgAAAMQAAABLA w== "},
    {"name":"Help","value":"AAAAAgAAAMQAAABNAw=="},
    {"name":"TvSatellite","value":"AAAAAgAAAMQAAABO Aw= ="},
    {"name":"WirelessSubwoofer","value":"AAAAAgAAAM QAA AB+Aw=="}]],"id":13}


    20 teraz przechodzimy do HS Expert , Web pages/IP devices
    now we are going to Expert , Web pages/IP devices

    Tworzymy na początek dwa punkty np.:
    At the beginning we create two points, for example:
    BRAVIA_ANDROID_COOKIE
    BRAVIA_ANDROID_OFF

    Zrzut ekranu (3).png
    21 Wpisujemy dane do
    We enter the data into BRAVIA_ANDROID_COOKIE
    - DATA:

    IP/ Host adres :ip tv sony
    IP port :80

    -SEND

    BRAVIA_ANDROID_COOKIE

    POST /sony/accessControl HTTP/1.1
    Host: 192.168.1.33
    Connection: keep-alive
    Content-Length: 176
    Content-Type: text/plain;charset=UTF-8



    {"id":13,"method":"actRegister","version":"1.0" ,"p arams":[{"clientid":"iRule:1","nickname":"iRule"},[{"clientid":"iRule:1","value":"yes","nickname": "iR ule","function":"WOL"}]]}


    Robimy przycisk który na to wywoła z wizualizacji lub QC
    We do a button that will call it from the visualization or QC
    Zapisujemy i wysyłamy do Gira HS
    We save and send it to Gira HS

    Zrzut ekranu (5).png

    22. Uruchamiamy naszą funkcję i otwieramy:

    ip_adres_gira_hs/hslist debug

    UWAGA !!!! WARNING !!!!

    w Event-BiDir pokaże nam się Set-Cookie: auth=xxxxxxxxxxxxxxxxxxxxxxxxxxx
    in Event-BiDir we'll see Set-Cookie: auth = xxxxxxxxxxxxxxxxxxxxxxxxxxx

    Kopiujemy i zapisujemy

    We copy and save

    Zrzut ekranu (13)_LI.jpg

    23 Wracamy do Experta
    We're going back to Expert
    BRAVIA_ANDROID_OFF

    - DATA:

    IP/ Host adres :ip tv sony
    IP port :80


    -SEND:

    POST /sony/IRCC HTTP/1.1
    Host: 192.168.1.33
    Connection: keep-alive
    Content-Length: 291
    SOAPAction: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"
    Content-Type: text/plain;charset=UTF-8
    Cookie: auth=33E8BCD4E45EA9A342A9FB69FD3F7D6570ADE21D



    <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"><IRCCCode>AAAAAQAAAAEAAAAvAw== </IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>




    Zrzut ekranu (4)_LI.jpg

    Robimy przycisk który nam to wywoła z wizualizacji lub QC
    We make a button that will call us from visualization or QC

    Zapisujemy i wgrywamy do Gira HS
    We save and upload to Gira HS

    I Gotowe
    We made it.


    Zrzut ekranu (14).png

    Podziękowania za pomoc dla

    Thanks for help Grzegorz Żochowski http://www.tema.pl/

    Pozdrawiam
    Regards

    MSJ - Systemy teletechniczne Jarosław Sołtysiak
    My Sony TV KD55X8509C
    Angehängte Dateien
    Zuletzt geändert von msj7754; 21.03.2018, 00:17.

    #2
    Interessant, wie kann man es ablesen und nach dem Stand unseres Fernsehers fragen ?

    Kommentar


      #3
      Oczywiście można czytać ,odpytywać o stan telewizora sony
      Obviously we can read, ask about tv state

      Na przykład zapytanie : getPowerStatus
      For example, a query : getPowerStatus

      {"method":"getPowerStatus","params":[],"id":5,"version":"1.0"}

      Dostaję odpowiedz: standby lub active
      I’ll get an answer: standby or active

      {"result":[{"status":"standby"}],"id":5}
      {"result":[{"status":"active"}],"id":5}


      cała lista zapytań
      the whole list of questions:

      https://aydbe.com/assets/uploads/2014/11/json.txt


      w HS Expert trzeba ustawić
      In HS Export you need to set

      SEND:

      POST /sony/system HTTP/1.1
      Host: *……ip address tv……*
      Connection: keep-alive
      Content-Length: 62
      SOAPAction: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"
      Content-Type: text/plain;charset=UTF-8
      Cookie: auth=*………………..Cookie TV SONY …………………..*

      {"method":"getPowerStatus","params":[],"id":5,"version":"1.0"}




      RECEPTION:

      Any desired data
      Text {"status":"
      Value as plain text communication obiects KNX (14 - byte text )
      Text "}],
      Any desired data


      Zrzut ekranu (23).png



      Zrzut ekranu (24).png


      Zrzut ekranu (25).png

      Dalej trzeba zrobić logikę aby odczytywać standby lub active i zamieniać to na obiekty 1bit switch

      Next you have to make a logic in order to read standby or active and change it for objects 1 bit switch

      Miłej zabawy
      Pozdrawiam

      Have fun
      Regards


      Jarek
      Angehängte Dateien
      Zuletzt geändert von msj7754; 27.03.2018, 06:32.

      Kommentar


        #4
        Dear Jarek! Thank you for this great explanation. With this help I managed to control the Sony Bravia TV by the Rest Client (I used Postman instead; simple rest client is not available any more).

        When I moved on to Gira Homeserver I found out that there are some mistakes in the BRAVIA_ANDROID_COOKIE section: when I copy&pasted the line some spaces appeared preventing this line of code to work:

        HTML-Code:
        {"id":13,"method":"actRegister","version":"1.0" ,"p arams":[{"clientid":"iRule:1","nickname":"iRule"},[{"clientid":"iRule:1","value":"yes","nickname": "iR ule","function":"WOL"}]]}.


        Instead it should look like this (without any spaces)

        HTML-Code:
        {"id":13,"method":"actRegister","version":"1.0" ,"params":[{"clientid":"iRule:1","nickname":"iRule"},[{"clientid":"iRule:1","value":"yes","nickname":"iRule","function":"WOL"}]]}


        Maybe this is helpful for someone else.

        But now, when I press the button on the Visu I get the 4 digit PIN on the TV. The output in the hs debug log is different from what you show, there is no auth info or Cookie parameter. How to overcome this? Have I missed something? Where to enter the PIN?

        Thank you!
        Thomas
        Zuletzt geändert von tschabet; 20.10.2019, 14:01.

        Kommentar


          #5
          Found out that Sony Bravia Android TV offers another authentication option: Normal and pre-shared PIN
          I chagend this to pre-shared, the TV asked my to enter a PIN.
          Then I tried it by adding the line "Authentication: Basic " followed by base64 encoded ":" and PIN

          However, this did not work either. The TV still prompts with a (different) PIN that should be entered by the Homeserver ... which is not possible within 60 seconds. So, no progress so far.

          Any ideas on this?

          Kommentar

          Lädt...
          X