Aller au contenu
Yohan

Piloter son téléviseur SONY Bravia

Recommended Posts

Bonsoir,

 

 

 

Si comme moi vous souhaitez piloter votre TV Sony mais que le Plugin Sony développé par Fibaro ne fonctionne pas, :angry:, voici une scéne et un VD qui permettont de piloter la TV via notre HC2.

 

VD Sony Fibaro

 

Pour commencer :

 

_ Créer une variable globale en la nommant : cmd_sony_tv

 

_ Créer une scène en LUA et copier ce code :

 

--[[
%% autostart
%% properties
%% globals
--]]

local ip = 'xxx.xxx.x.xx'
local port = '80'
local xAuthPSK = '1111'

local irCode = json.decode([[
  [
  {"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":"AAAAAQAAAAEAAAARAw=="},
  {"name":"VolumeUp","value":"AAAAAQAAAAEAAAASAw=="},
  {"name":"VolumeDown","value":"AAAAAQAAAAEAAAATAw=="},
  {"name":"Mute","value":"AAAAAQAAAAEAAAAUAw=="},
  {"name":"TvPower","value":"AAAAAQAAAAEAAAAVAw=="},
  {"name":"Audio","value":"AAAAAQAAAAEAAAAXAw=="},
  {"name":"MediaAudioTrack","value":"AAAAAQAAAAEAAAAXAw=="},
  {"name":"Tv","value":"AAAAAQAAAAEAAAAkAw=="},
  {"name":"Input","value":"AAAAAQAAAAEAAAAlAw=="},
  {"name":"TvInput","value":"AAAAAQAAAAEAAAAlAw=="},
  {"name":"TvAntennaCable","value":"AAAAAQAAAAEAAAAqAw=="},
  {"name":"WakeUp","value":"AAAAAQAAAAEAAAAuAw=="},
  {"name":"PowerOff","value":"AAAAAQAAAAEAAAAvAw=="},
  {"name":"Sleep","value":"AAAAAQAAAAEAAAAvAw=="},
  {"name":"Right","value":"AAAAAQAAAAEAAAAzAw=="},
  {"name":"Left","value":"AAAAAQAAAAEAAAA0Aw=="},
  {"name":"SleepTimer","value":"AAAAAQAAAAEAAAA2Aw=="},
  {"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+Aw=="},
  {"name":"Teletext","value":"AAAAAQAAAAEAAAA\/Aw=="},
  {"name":"Video1","value":"AAAAAQAAAAEAAABAAw=="},
  {"name":"Video2","value":"AAAAAQAAAAEAAABBAw=="},
  {"name":"AnalogRgb1","value":"AAAAAQAAAAEAAABDAw=="},
  {"name":"Home","value":"AAAAAQAAAAEAAABgAw=="},
  {"name":"Exit","value":"AAAAAQAAAAEAAABjAw=="},
  {"name":"PictureMode","value":"AAAAAQAAAAEAAABkAw=="},
  {"name":"Confirm","value":"AAAAAQAAAAEAAABlAw=="},
  {"name":"Up","value":"AAAAAQAAAAEAAAB0Aw=="},
  {"name":"Down","value":"AAAAAQAAAAEAAAB1Aw=="},
  {"name":"ClosedCaption","value":"AAAAAgAAAKQAAAAQAw=="},
  {"name":"Component1","value":"AAAAAgAAAKQAAAA2Aw=="},
  {"name":"Component2","value":"AAAAAgAAAKQAAAA3Aw=="},
  {"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":"AAAAAgAAAJcAAABKAw=="},
  {"name":"CursorUp","value":"AAAAAgAAAJcAAABPAw=="},
  {"name":"CursorDown","value":"AAAAAgAAAJcAAABQAw=="},
  {"name":"CursorLeft","value":"AAAAAgAAAJcAAABNAw=="},
  {"name":"CursorRight","value":"AAAAAgAAAJcAAABOAw=="},
  {"name":"ShopRemoteControlForcedDynamic","value":"AAAAAgAAAJcAAABqAw=="},
  {"name":"FlashPlus","value":"AAAAAgAAAJcAAAB4Aw=="},
  {"name":"FlashMinus","value":"AAAAAgAAAJcAAAB5Aw=="},
  {"name":"AudioQualityMode","value":"AAAAAgAAAJcAAAB7Aw=="},
  {"name":"DemoMode","value":"AAAAAgAAAJcAAAB8Aw=="},
  {"name":"Analog","value":"AAAAAgAAAHcAAAANAw=="},
  {"name":"Mode3D","value":"AAAAAgAAAHcAAABNAw=="},
  {"name":"DigitalToggle","value":"AAAAAgAAAHcAAABSAw=="},
  {"name":"DemoSurround","value":"AAAAAgAAAHcAAAB7Aw=="},
  {"name":"*AD","value":"AAAAAgAAABoAAAA7Aw=="},
  {"name":"AudioMixUp","value":"AAAAAgAAABoAAAA8Aw=="},
  {"name":"AudioMixDown","value":"AAAAAgAAABoAAAA9Aw=="},
  {"name":"PhotoFrame","value":"AAAAAgAAABoAAABVAw=="},
  {"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":"AAAAAgAAABoAAABkAw=="},
  {"name":"OneTouchView","value":"AAAAAgAAABoAAABlAw=="},
  {"name":"DUX","value":"AAAAAgAAABoAAABzAw=="},
  {"name":"FootballMode","value":"AAAAAgAAABoAAAB2Aw=="},
  {"name":"iManual","value":"AAAAAgAAABoAAAB7Aw=="},
  {"name":"Netflix","value":"AAAAAgAAABoAAAB8Aw=="},
  {"name":"Assists","value":"AAAAAgAAAMQAAAA7Aw=="},
  {"name":"ActionMenu","value":"AAAAAgAAAMQAAABLAw=="},
  {"name":"Help","value":"AAAAAgAAAMQAAABNAw=="},
  {"name":"TvSatellite","value":"AAAAAgAAAMQAAABOAw=="},
  {"name":"WirelessSubwoofer","value":"AAAAAgAAAMQAAAB+Aw=="}
  ]
]])

function printIrCode()
  for i in pairs(irCode) do
     print(irCode[i].name)
  end
end

function irCodeLookup(irName)
  for i in pairs(irCode) do
    if (irCode[i].name == irName) then
      return irCode[i].value
    end
  end
end

-- Escape string to make suitable for embedding in HTML.
function htmlize(s)
  s = s:gsub('&', '&')
  s = s:gsub('<', '<')
  s = s:gsub('>', '>')
  return s
end

--Helper for priniting nested table
function deep_print(tbl)
  if (type(tbl) == "table") then
    for i, v in pairs(tbl) do
        if type(v) == "table" then 
            deep_print(v)
        else 
            print(i, v) 
        end
    end
  else
    print(htmlize(tbl));
  end
end

local successCallback = function(resp)
  print('At ' .. os.date() .. ' - status = ' .. resp.status)
  deep_print(resp.data)
end

local errorCallback = function(err)
  print('error = ' .. err)
end

function sendIrCode(name)
  local value = irCodeLookup(name)
  if (value == nil) then
    print('IR Code not found')
    return
  end
  local httpClient = net.HTTPClient();  
  httpClient:request('http://'..ip..':'..port..'/sony/IRCC', {
      success = successCallback,
      error = errorCallback,
      options = {
        method = 'POST',
        headers = {
          ['Content-Type'] = 'text/xml; charset=UTF-8',
          ['X-Auth-PSK'] = xAuthPSK,
          ['User-Agent'] = 'HC2/537.36 (KHTML, like Gecko)',
          ['SOAPACTION'] = '"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"'
        },
        data = [[<?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>]]..value..[[</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>]]
      }
  });
end

local value = fibaro:getGlobalValue("cmd_sony_tv");  
    if (string.len(value) > 0) then
	print(''..value)
      sendIrCode(value)
    end

_ Renseigner l'adresse IP de votre TV dans la scène.

 

_ Importer le VD : Telecommande_Sony_TV.vfib

_ Noter l"ID de la scène créée et renseigner l'id pour chaque bouton du VD dans la ligne : fibaro:startScene(4);

 

Il est possible d'ajouter des boutons supplémentaires (se référer aux commandes qui se trouvent au début de la scène).

 

J'ai mis les fonctions principales dont je me sers le plus souvent donc libre à vous de personnaliser votre télécommande en fonction de vos besoin.

 

Je tiens à remercier @Krikroff pour son aide et sa dispo ;)

Toujours prêt à rendre service notre Jc.

  • Like 1
  • Upvote 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon boulot @Yohan et @Krikroff

MErci, bon peut-etre qu'un jour je ferai ce genre de choses aussi lol

 

Faut arreter les gars, j'ai envie de changer de TV maintenant, je n'ai pas de Sony ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi j'ai une Sony bravia mais pas de démo satellite pour la faire fonctionner et comme la tnt ne passe pas chez moi elle est en décoration dans ma chambre
Si j'ai un petit moment je testerai
Joli travail yohan

Envoyé de mon SM-G901F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ton débit Adsl ne te permet pas de passer par le net pour recevoir les chaines ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vais tester dans la semaine, A voir s'il n'y a pas de le pb de Request Auth Key ou qqch comme ça !

Partager ce message


Lien à poster
Partager sur d’autres sites
Ton débit Adsl ne te permet pas de passer par le net pour recevoir les chaines ?

Je suis au fin fond de la campagne environ 4.500kms du point internet débit descendant environ 270ko

Envoyé de mon SM-G901F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut. Merci Yohan pour ce partage. Je viens de suivre le tuto et cela ne fonctionne pas pour moi.

J'obtiens ce message lorsque je fait un debug de la scène:

[DEBUG] 12:34:20: Num1
[DEBUG] 12:34:20: At Tue Nov 29 12:34:20 2016 - status = 404
[DEBUG] 12:34:20: not found

 
 
J'ai bien renseigné l'adresse IP de ma TV qui est fixe, bien mis l'ID de la scène dans le VD et bien créé la variable globale mais rien.
Peut-être que ma télé n'est pas pris en charge.
C'est une Sony BRAVIA KDL-46EX720
 
Voilà pour mon retour. Est-ce-que d'autres ont des soucis?

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, essaye ceci dans les options TV :

 

Settings
  Network
    Home network setup
      IP Control
        Authentication
          Normal & Preshared Key
          Preshared Key
            1111 <- just choose one>
          Simple IP Control
            On

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut je suis la tv pour effectuer les réglages. J'arrive sur Réglages/Réglage du réseau domestique/et pas la suite. Je peux me rendre dans un dossier App. de comm. à distance/Renderer mais rien ne me permet d'avoir accès à l'Authntification. Je pense que mon modèle de tv est peut-être trop vieux pour cela.


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Voici quelques prints écrans

4f2a9d720cd72a22c2698bc4b8dc4c10.jpg

7a124f6ceb6d9b6d01930f551043d3ac.jpg

e037408a1988747436fb54708c169868.jpg

As tu les options disponibles sur ton téléviseur?

Envoyé de mon SM-G925F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut. Bon pour le menu jusqu'à la photo 2 j'ai les mêmes réglages avec une interface différente.

Par contre après je n'ai pas le même menu que toi.

Comme je l'ai dit plus haut je pense que ma télé est "trop" vieille! Le modèle est de 2011 si je ne m'abuse.

Voici une image de ma télé.

IMG_9899.JPG

Partager ce message


Lien à poster
Partager sur d’autres sites

Arf ma TV est de 2016 il y a certainement eu des changements depuis 2011. 

 

Dans le menu "Réglage renderer", qu'avez vous ? Idem dans le "Controle d'acces renderer" ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut. Oui a voir les capture d'écran il y a eu pas mal de changement.

Dans le menu "Réglage de Render", il y a:

- Autorisation d'accès automatique --> Oui / Non

- Sélection Intelligente --> Oui/Non

- Nom Renderer --> Le nom par défaut de la tv (Peut être modifié)

Voici une capture d'écran.

 

IMG_9909.JPG

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Tout pareil

sauf que j'ai l'autorisation des adresses mac et j'ai mis oui bien sûr.

Partager ce message


Lien à poster
Partager sur d’autres sites

@FredricMoi les adresses mac se trouve dans le menu "Contrôle d'accès Renderer".

Sinon ta télé est de quelle année?

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut. Je viens de m'apercevoir dans les adresses mac autorisées que celle de ma HC2 est autorisée à contrôler ma tv.

Mais je vous rassure, je n'arrive pas à envoyer la moindre commande.:15: Du moins, les commandes sont envoyées mais la tv ne réagit pas.

Peut-être une piste? Avec une autorisation automatique sans mettre de code d'appairage.

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, fredokl a dit :

@FredricMoi les adresses mac se trouve dans le menu "Contrôle d'accès Renderer".

Sinon ta télé est de quelle année?

Oui et 2008 ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Et dans le "controle d'acces renderer" ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@YohanDans le "Contrôle d'accès Renderer" il y a les adresses MAC des périphériques autorisés à accéder à la TV.

Comme je l'ai précisé plus haut, l'adresse MAC de ma HC2 apparaît bien dans cette liste mais le contrôle de la TV est impossible.

Voici un screen du menu.

IMG_9908 flou masque MAC.jpg

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Yohan, merci milles fois, c'est génial ça me change la vie, bravo super boulot à toi et Krikrof. Dès que j'ai résolu mon problème d'icône, je partage mon VD.

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as un problème d'icône? Tu peux m'en dire plus? J'ai une galère aussi avec mes icones.

Envoyé de mon SM-G925F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

@Yohan. Ce n'est pas que sur ton VD, c'est partout ! je viens de me rendre compte que dans toutes les librairies auxquelles tu accèdes pour changer l'icône, le premier n'est pas correctement affichés, ce qui fait que tous les icônes ont un décalage de 1. Pour comprendre, voici un exemple :

  1. Tu charges un icône ampoule, il n'apparait pas
  2. Tu charges un icône poulet, une ampoule apparait
  3. tu sélectionnes l'icône ampoule, c'est l'icône poulet qui apparait sur ton device ou ta scène.

    Il m'a fallu un peu de temps pour comprendre, mais maintenant c'est bon, j'ai pu tout remettre droit. Par contre, ne me demande pas pourquoi j'ai du faire ça !!

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

@Frederic, et bien depuis que j'ai compris le problème, j'ai sélectionné mes icônes en tenant compte de ce décalage. 
Pour faire simple Fréderic, si tu insert un icône, il n'apparaitra pas. Par contre, lorsque tu voudras le sélectionner pour le mettre dans ton VD par exemple, tu prends le dernier qui apparait dans la liste, et c'est le dernier importé qui sera afficher. En clair, le dernier icône importé n'apparait pas dans la liste. 

Partager ce message


Lien à poster
Partager sur d’autres sites

×