Possesseur depuis hier d'une Box Eedomus+, j'ai décidé de migré de mon ancien jeedom (et Domoticz avant) afin de passer sur cette solution plus simple d'utilisation.
Seulement voila, je me suis heurté au fait qu'on ne puisse utiliser quasi aucun langage de programmation : pas de python, pas de cUrl, pas de NodeJS.. bref, faut s'adapter (même si j'avoue avoir maudit la team ). Bref, il me fallait un moyen de contrôler ma tv Sony Bravia avec Eedomus sans passer par un autre système et j'ai finalement trouvé mon bonheur dans le httpQuery (heureusement qu'on la celui la ! )
J'ai donc créer deux scripts très simple (On et Off), je vous laisse l'améliorer, le partager, et me donner des idées . En effet, en ayant fouiller le forum, je pense que cela aidera pas mal de monde.
Bien entendu, il faut que les configurations soient correctes sur la TV (clé de partage, autorisation de pilotage, etc..) Je ne m'étendrais pas sur la config TV mais bien sur le code :
- Code : Tout sélectionner
<?
//Rappel de httpQuery
//httpQuery($url, $action = 'GET'/*GET,POST,PUT,DELETE*/, $post = NULL, $oauth_token = NULL, $headers = NULL, $use_cookies = false, $ignore_errors = false)
//Exécute une requête HTTP/HTTPS et retourne son résultat sous forme de chaine de caractère.
//Les arguments $action et $post peuvent être omis, ils peuvent être utilisés dans le cas de requêtes avancées comme un POST.
//L'argument $oauth_token est utilisé pour les scripts des objets connectés, dans les scripts personnels il peut donc être ommis ou passé à NULL
//L'argument $headers doit être fourni sous la forme d'un tableau, par exemple : $headers = array("X-Fbx-App-Auth: xxxx");
//L'argument cookies, vous permet d'activer la gestion des cookies pour la 1ère requête et celles qui suivront
$url = "http://192.168.1.214/sony/IRCC";
$headers = array(
"X-Auth-PSK: 0000",
"Content-Type: application/x-www-form-urlencoded",
"SOAPACTION: \"urn:schemas-sony-com:service:IRCC:1#X_SendIRCC\"",
"Cache-Control: no-cache"
);
$code = "AAAAAQAAAAEAAAAvAw==";
$body = "<?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>".$code."</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>";
$requete = httpQuery($url, 'POST', $body, NULL, $headers, false, false);
?>
Liste des codes acceptés par la TV (je ne les ai pas tous testés)
- Code : Tout sélectionner
//Liste codes
//[PowerOff]="AAAAAQAAAAEAAAAvAw=="
//[PowerOn]="AAAAAQAAAAEAAAAuAw=="
//[VolumeUp]="AAAAAQAAAAEAAAASAw=="
//[VolumeDown]="AAAAAQAAAAEAAAATAw=="
//[Mute]="AAAAAQAAAAEAAAAUAw=="
//[Input]="AAAAAQAAAAEAAAAlAw=="
//[GGuide]="AAAAAQAAAAEAAAAOAw=="
//[EPG]="AAAAAgAAAKQAAABbAw=="
//[Favorites]="AAAAAgAAAHcAAAB2Aw=="
//[Display]="AAAAAQAAAAEAAAA6Aw=="
//[Home]="AAAAAQAAAAEAAABgAw=="
//[Options]="AAAAAgAAAJcAAAA2Aw=="
//[Return]="AAAAAgAAAJcAAAAjAw=="
//[Up]="AAAAAQAAAAEAAAB0Aw=="
//[Down]="AAAAAQAAAAEAAAB1Aw=="
//[Right]="AAAAAQAAAAEAAAAzAw=="
//[Left]="AAAAAQAAAAEAAAA0Aw=="
//[Confirm]="AAAAAQAAAAEAAABlAw=="
//[Red]="AAAAAgAAAJcAAAAlAw=="
//[Green]="AAAAAgAAAJcAAAAmAw=="
//[Yellow]="AAAAAgAAAJcAAAAnAw=="
//[Blue]="AAAAAgAAAJcAAAAkAw=="
//[Num1]="AAAAAQAAAAEAAAAAAw=="
//[Num2]="AAAAAQAAAAEAAAABAw=="
//[Num3]="AAAAAQAAAAEAAAACAw=="
//[Num4]="AAAAAQAAAAEAAAADAw=="
//[Num5]="AAAAAQAAAAEAAAAEAw=="
//[Num6]="AAAAAQAAAAEAAAAFAw=="
//[Num7]="AAAAAQAAAAEAAAAGAw=="
//[Num8]="AAAAAQAAAAEAAAAHAw=="
//[Num9]="AAAAAQAAAAEAAAAIAw=="
//[Num0]="AAAAAQAAAAEAAAAJAw=="
//[Num11]="AAAAAQAAAAEAAAAKAw=="
//[Num12]="AAAAAQAAAAEAAAALAw=="
//[HDMI1]="AAAAAgAAABoAAABaAw=="
//[HDMI2]="AAAAAgAAABoAAABbAw=="
//[HDMI3]="AAAAAgAAABoAAABcAw=="
//[HDMI4]="AAAAAgAAABoAAABdAw=="
//[ChannelUp]="AAAAAQAAAAEAAAAQAw=="
//[ChannelDown]="AAAAAQAAAAEAAAARAw=="
//[SubTitle]="AAAAAgAAAJcAAAAoAw=="
//[ClosedCaption]="AAAAAgAAAKQAAAAQAw=="
//[Enter]="AAAAAQAAAAEAAAALAw=="
//[DOT]="AAAAAgAAAJcAAAAdAw=="
//[Analog]="AAAAAgAAAHcAAAANAw=="
//[Teletext]="AAAAAQAAAAEAAAA/Aw=="
//[Exit]="AAAAAQAAAAEAAABjAw=="
//[Analog2]="AAAAAQAAAAEAAAA4Aw=="
//[*AD]="AAAAAgAAABoAAAA7Aw=="
//[Digital]="AAAAAgAAAJcAAAAyAw=="
//[Analog?]="AAAAAgAAAJcAAAAuAw=="
//[BS]="AAAAAgAAAJcAAAAsAw=="
//[CS]="AAAAAgAAAJcAAAArAw=="
//[BSCS]="AAAAAgAAAJcAAAAQAw=="
//[Ddata]="AAAAAgAAAJcAAAAVAw=="
//[PicOff]="AAAAAQAAAAEAAAA+Aw=="
//[Tv_Radio]="AAAAAgAAABoAAABXAw=="
//[Theater]="AAAAAgAAAHcAAABgAw=="
//[SEN]="AAAAAgAAABoAAAB9Aw=="
//[InternetWidgets]="AAAAAgAAABoAAAB6Aw=="
//[InternetVideo]="AAAAAgAAABoAAAB5Aw=="
//[Netflix]="AAAAAgAAABoAAAB8Aw=="
//[SceneSelect]="AAAAAgAAABoAAAB4Aw=="
//[Mode3D]="AAAAAgAAAHcAAABNAw=="
//[iManual]="AAAAAgAAABoAAAB7Aw=="
//[Audio]="AAAAAQAAAAEAAAAXAw=="
//[Wide]="AAAAAgAAAKQAAAA9Aw=="
//[Jump]="AAAAAQAAAAEAAAA7Aw=="
//[PAP]="AAAAAgAAAKQAAAB3Aw=="
//[MyEPG]="AAAAAgAAAHcAAABrAw=="
//[ProgramDescription]="AAAAAgAAAJcAAAAWAw=="
//[WriteChapter]="AAAAAgAAAHcAAABsAw=="
//[TrackID]="AAAAAgAAABoAAAB+Aw=="
//[TenKey]="AAAAAgAAAJcAAAAMAw=="
//[AppliCast]="AAAAAgAAABoAAABvAw=="
//[acTVila]="AAAAAgAAABoAAAByAw=="
//[DeleteVideo]="AAAAAgAAAHcAAAAfAw=="
//[PhotoFrame]="AAAAAgAAABoAAABVAw=="
//[TvPause]="AAAAAgAAABoAAABnAw=="
//[KeyPad]="AAAAAgAAABoAAAB1Aw=="
//[Media]="AAAAAgAAAJcAAAA4Aw=="
//[SyncMenu]="AAAAAgAAABoAAABYAw=="
//[Forward]="AAAAAgAAAJcAAAAcAw=="
//[Play]="AAAAAgAAAJcAAAAaAw=="
//[Rewind]="AAAAAgAAAJcAAAAbAw=="
//[Prev]="AAAAAgAAAJcAAAA8Aw=="
//[Stop]="AAAAAgAAAJcAAAAYAw=="
//[Next]="AAAAAgAAAJcAAAA9Aw=="
//[Rec]="AAAAAgAAAJcAAAAgAw=="
//[Pause]="AAAAAgAAAJcAAAAZAw=="
//[Eject]="AAAAAgAAAJcAAABIAw=="
//[FlashPlus]="AAAAAgAAAJcAAAB4Aw=="
//[FlashMinus]="AAAAAgAAAJcAAAB5Aw=="
//[TopMenu]="AAAAAgAAABoAAABgAw=="
//[PopUpMenu]="AAAAAgAAABoAAABhAw=="
//[RakurakuStart]="AAAAAgAAAHcAAABqAw=="
//[OneTouchTimeRec]="AAAAAgAAABoAAABkAw=="
//[OneTouchView]="AAAAAgAAABoAAABlAw=="
//[OneTouchRec]="AAAAAgAAABoAAABiAw=="
//[OneTouchStop]="AAAAAgAAABoAAABjAw=="
//[DUX]="AAAAAgAAABoAAABzAw=="
//[FootballMode]="AAAAAgAAABoAAAB2Aw=="
//[Social]="AAAAAgAAABoAAAB0Aw=="