Forum eedomus http://forum.eedomus.fr/ |
|
Macro telecommande freebox a 3 digit non fonctionnel http://forum.eedomus.fr/viewtopic.php?f=14&t=4627 |
Page 1 sur 1 |
Auteur: | zebess [ 29 Sep 2016 16:17 ] |
Sujet du message: | Macro telecommande freebox a 3 digit non fonctionnel |
Bonjour, Les macros pr piloter sa Freebox révolution ne fonctionne pas quand on a une chaîne à 3 chiffres de type 124. Es le cas pour vous? Exemple: url: http://[VAR1]/pub/remote_control?code=[VAR2] parametre: &key=2&key=6&key=0 Seul les deux derniers chiffres sont tapés c'est à dire 60 au lieur de 260. Une idée pour me dépanner ou es le cas pour vous aussi? Merci Sébastien |
Auteur: | zebess [ 17 Oct 2016 06:48 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
On poursuit dans le bug: La chaîne 66 ne passe pas et donne 6 tout comme la 55 qui donne 5. url: http://[VAR1]/pub/remote_control?code=[VAR2] parametre: &key=6&key=6 Personne pour faire un essai de son coté pour savoir si c'est un bug isolé ou pour tout le monde? Merci Seb. -> ça devait être un bug de maj fb, car je n'ai plus ce souci à 2 digits. Seul 3 digits ne passent pas |
Auteur: | romu@asnieres [ 10 Déc 2016 12:59 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
hello, de mon côté j'ai paramétré la FB pour utiliser l'appui long pour les chaînes supérieures à 9 puis je lance 3 requêtes pour la 141 : hd1.freebox.fr/pub/remote_control?code=xx&key=1&long=true hd1.freebox.fr/pub/remote_control?code=xx&key=4&long=true hd1.freebox.fr/pub/remote_control?code=xx&key=1 Romu |
Auteur: | zebess [ 10 Déc 2016 13:22 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Salut, je ne trouve pas le paramètre appui long après la touche 9 pour la fb ... j'ai juste des réglages de vitesse en ms .... es que tu peux me guider ou trouver ce paramètre stp? Merci Sébastien |
Auteur: | romu@asnieres [ 15 Déc 2016 22:03 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
hello, je suis passé par ici : touche free Réglages Télévision Type de zapping -> long après pour enchainer les 3 requetes j'ai créé une step dans le script freebox.php Romu |
Auteur: | zebess [ 15 Déc 2016 22:16 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Bonsoir, Ah il faut utiliser un script. Tu as un lien stp qui explique un peu ca ? Je suis passé en long mais c'est pire mes chaînes marchent plus (j utilise pas de script). Merci. Sébastien |
Auteur: | romu@asnieres [ 16 Déc 2016 17:54 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
salut, pour le script tu as les infos dans la doc eedomus : http://doc.eedomus.com/view/Scripts ci-dessous le code que j'ai ajouté dans le fichier freebox.php pour aller sur CARTOON NETWORK et pour changer de bouquet (xxx est le code télécommande) : // CARTOON NETWORK case 'CARTOON': httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=1&long=true", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=4&long=true", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=6", "GET"); break; // Bouquet FAVORIS case 'FAVORIS': httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=green", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=right&long=true", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=down", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=ok", "GET"); break; Romu |
Auteur: | zebess [ 17 Déc 2016 12:11 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Merci pour ces infos. J'ai rajouté en fin du script freebox.php ton exemple (en mettant mon code telecommande): // CARTOON NETWORK case 'CARTOON': httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=1&long=true", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=4&long=true", "GET"); httpQuery("hd1.freebox.fr/pub/remote_control?code=xxx&key=6", "GET"); break; Moi j'ai un bouton télécommande (http commande) ou j'appel directement les touches au niveau de l'onglet valeurs: url: http://[VAR1]/pub/remote_control?code=[VAR2] GET paramètres: &key=4 Par contre comment je fais pour appeler la partie du script // CARTOON NETWORK dans mes touches au lieu de faire des appels télécommande direct? Merci pour ta réponse Sébastien |
Auteur: | romu@asnieres [ 17 Déc 2016 14:36 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Je lance l'URL suivante : http://<ip de la freebox>/script/?exec=freebox.php&freebox_ip=hd1.freebox.fr&step=CARTOON CARTOON correspond au libellé de ton case : case 'CARTOON': Romu |
Auteur: | zebess [ 17 Déc 2016 21:21 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Je pense que tu voulais dire: http://<ip de la eedomus>/script/?exec=...... au lieu de http://<ip de la freebox>? je m'en sort pas lol. ma fin de script modifié (j'ai remplacé par des ... les 4 derniers digits de ma télécommande): case 'api_get': $api_url = getArg('api_url'); sdk_freebox_query($api_url); break; // CARTOON NETWORK case 'CARTOON': httpQuery("192.168.1.1/pub/remote_control?code=5633....&key=1&long=true", "GET"); httpQuery("192.168.1.1/pub/remote_control?code=5633....&key=4&long=true", "GET"); httpQuery("192.168.1.1/pub/remote_control?code=5633...&key=6", "GET"); break; J'ai créé une requette http avec comme paramètre expert: Requête de mise à jour (Optionnelle) : http://localhost/script/?exec=freebox.php&freebox_ip=[VAR1]&step=CARTOON (var1 est renseigné avec l'ip de ma freebox juste au dessus.) onglet valeur: url: http://localhost/script/?exec=freebox.php&freebox_ip=[VAR1] type:get parametre: &step=CARTOON ça marche pas |
Auteur: | romu@asnieres [ 18 Déc 2016 11:06 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
effectivement c'est l'IP de l'eedomus au fait, ça marche avec ta télécommande lorsque tu fais des appuis longs pour les touches 1 et 4 pour saisir 146 ? essaie de copier l'URL ci-dessous dans ton Internet Explorer et regarde s'il change de chaine. Si ce n'est pas le cas poste ton script que je regarde ; url: http://<ip eedomus>/script/?exec=freebox.php&freebox_ip=<ip freebox>&step=CARTOON Dans ton onglet valeur (sinon avec le code que tu as copié tu as 2 fois &step=CARTOON : url: http://localhost/script/?exec=freebox.php&freebox_ip=[VAR1]&step= type:get parametre: CARTOON |
Auteur: | zebess [ 18 Déc 2016 20:37 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Bonjour, pour la question: "au fait, ça marche avec ta télécommande lorsque tu fais des appuis longs pour les touches 1 et 4 pour saisir 146 ? " -> oui avec la télécommande ça fonctionne. Pour la question:"essaie de copier l'URL ci-dessous dans ton Internet Explorer": ça ne marche pas, j'ai testé dans ie: http://192.168.1.29/script/?exec=freebo ... ep=CARTOON -> aucune réaction de la tv pour la partie: "(sinon avec le code que tu as copié tu as 2 fois &step=CARTOON" -> erreur de transmission car j'ai revérifié sur l'eedomus je n'ai pas mis deux fois &step=CARTOON Voici le script: <? $GLOBALS['freebox_ip'] = getArg('freebox_ip'); $GLOBALS['app_version'] = '1.0.0'; $GLOBALS['app_id'] = 'fr.freebox.eedomus'; function sdk_page_style() { ?><style type="text/css"> body,td,th { font-family: Arial, Helvetica, sans-serif; font-size: 14px; } body { margin-left: 10px; margin-top: 10px; } button { font-size: 100%; padding: 0.5em 1em; text-decoration: none; -moz-user-select: none; cursor: pointer; line-height: normal; text-align: center; vertical-align: baseline; white-space: nowrap; border: 0 none rgba(0, 0, 0, 0); border-radius: 4px; background-color: #0078e7; color: #fff; } </style> <img align="absmiddle" src="https://secure.eedomus.com/img/mdm/periph/freebox.png"> <span style="font-size:20px">Freebox et eedomus</span><br /> <? } function sdk_hmac_sha1($key, $data) { // Adjust key to exactly 64 bytes if (strlen($key) > 64) { $key = str_pad(sha1($key, true), 64, chr(0)); } if (strlen($key) < 64) { $key = str_pad($key, 64, chr(0)); } // Outter and Inner pad $opad = str_repeat(chr(0x5C), 64); $ipad = str_repeat(chr(0x36), 64); // Xor key with opad & ipad for ($i = 0; $i < strlen($key); $i++) { $opad[$i] = $opad[$i] ^ $key[$i]; $ipad[$i] = $ipad[$i] ^ $key[$i]; } return sha1($opad.sha1($ipad.$data, true)); } function sdk_step1() { sdk_page_style(); $url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/authorize/"; $post = '{ "app_id": "'.$GLOBALS['app_id'].'", "app_name": "App eedomus", "app_version": "'.$GLOBALS['app_version'].'", "device_name": "Box eedomus" }'; $response = httpQuery($url, 'POST', $post); $json = sdk_json_decode($response); // ex. {"success":true,"result":{"app_token":"XibW6mhg0wsUsaQ2cMWj0a2QGQBHMi0EknUpa9paGJYPf3rMWU0ATNX4LZ20OhDe","track_id":0}} if ($json['success'] != true) { echo "Erreur lors de la connexion à la freebox: <br><br>"; if ($json['msg'] != '') { echo "<b>".$json['msg']."</b><br>"; } else { echo $response; } die(); } $app_token = $json['result']['app_token']; $track_id = $json['result']['track_id']; if ($app_token != '') { saveVariable('new_app_token', $app_token); saveVariable('new_track_id', $track_id); } echo "Veuillez autoriser l'application eedomus en sélectionnant <b>OUI</b> sur l'affichage de votre Freebox Server, puis cliquer sur </b>Continuer</b><br><br>"; $controller_id = getArg('controller_id'); $url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2'); echo '<button onclick="window.location.href=\''.$url.'\'">Continuer</button>'; } function sdk_step2() { sdk_page_style(); $track_id = loadVariable('new_track_id'); $url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/authorize/$track_id"; $response = httpQuery($url, 'GET'); $json = sdk_json_decode($response); // ex. {"success":true,"result":{"status":"granted","challenge":"\/ZRimxCjeGbH20TLeL6\/bQtAOTtRLInV","password_salt":"3qw8v\/0rTvOZfzsFZrBLiB\/WvJ56J9Gh"}} if ($json['success'] != true) { echo "Erreur lors de la connexion à la freebox: <br><br>"; if ($json['msg'] != '') { echo "<b>".$json['msg']."</b><br>"; } else { echo $response; } die(); } else if ($json['result']['status'] != 'granted') { echo "Erreur l'app n'a pas été autorisée sur votre Freebox Server : <b>".$json['result']['status']."</b><br><br>"; if ($json['result']['status'] == 'timeout') { $controller_id = getArg('controller_id'); $url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=1'); echo '<button onclick="window.location.href=\''.$url.'\'">Recommencer</button>'; } else { $controller_id = getArg('controller_id'); $url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2'); echo '<button onclick="window.location.href=\''.$url.'\'">Vérifier à nouveau</button>'; } die(); } else { $app_token = loadVariable('new_app_token'); saveVariable('app_token', $app_token); saveVariable('track_id', $track_id); saveVariable('challenge', $json['result']['challenge']); echo "<img width='64' src='/img/mdm/01/check.png' align='absmiddle'> L'app eedomus a été autorisée avec succés sur votre Freebox Revolution !"; $json = sdk_session(/*$show_error*/ false, /*$return_result*/ true); if ($json['success'] != true) { // on réessaie $json = sdk_session(/*$show_error*/ false, /*$return_result*/ true); } if (!$json['result']['permissions']['parental'] || !$json['result']['permissions']['settings']) { $right_url = "http://".$GLOBALS['freebox_ip']."/#Fbx.os.app.settings.Accounts"; echo "<br><br>Vous devez autoriser les droits d'accés de l'app eedomus sur votre Freebox : <b>Modification des règlages de la Freebox</b> et <b>Accès au contrôle parental</b><br>Rendez vous sur <a target='_blank' href='$right_url'>$right_url</a> puis dans l'onglet <b>Applications</b> et cliquez sur <b>App eedomus</b>."; $controller_id = getArg('controller_id'); $url = "?controller_id=".$controller_id."&url=".urlencode('http://localhost/script/?exec=freebox.php&controller_id='.$controller_id.'&freebox_ip='.$GLOBALS['freebox_ip'].'&step=2'); echo '<br><br><button onclick="window.location.href=\''.$url.'\'">Vérifier à nouveau les droits</button>'; echo "<br><br><img src='http://doc.eedomus.com/images/c/ce/Eedomus_freebox05.png'>"; } else { echo "<br><br><i>Vous pouvez maintenant fermer cette fenêtre.</i>"; } } } function sdk_session($show_error = false, $return_result = false) { $app_token = loadVariable('app_token'); $challenge = loadVariable('challenge'); $password = sdk_hmac_sha1(stripslashes($app_token), stripslashes($challenge)); // on ouvre la session $url = "http://".$GLOBALS['freebox_ip']."/api/v1/login/session/"; $post = '{ "app_id": "'.$GLOBALS['app_id'].'", "password": "'.$password.'" }'; $response = httpQuery($url, 'POST', $post); $json = sdk_json_decode($response); //echo "challenge was [$challenge]<br>"; if ($json['result']['challenge'] != '') { saveVariable('challenge', $json['result']['challenge']); } //echo "challenge is now [".$json['result']['challenge']."]<br>"; if ($return_result) { return $json; } if ($json['result']['session_token'] != '') { saveVariable('session_token', $json['result']['session_token']); //echo "OK"; // [$response]"; //echo "<br>session_token = [".$json['result']['session_token']."]"; return true; } else { if ($show_error) { echo "<br>Erreur d'authentification: "; if ($json['msg'] != '') { echo "<b>".$json['msg']."</b><br><br>"; } echo "[$response]<br>"; echo "Challenge was [$challenge]<br>"; } return false; } } // si la session est perdue il faudra regénérer le challenge puis le session_token, d'où les 3 essais function sdk_freebox_query($url, $method = 'GET', $post = NULL, $allow_retry = 3, $return_xml = true) { $full_url = "http://".$GLOBALS['freebox_ip'].$url; $session_token = loadVariable('session_token'); $headers = array("X-Fbx-App-Auth: ".stripslashes($session_token)); $response = httpQuery($full_url, $method, $post, NULL, $headers); $json = sdk_json_decode($response); if ($json['success'] != true) { // on réétabli la session if ($allow_retry > 0) { sdk_session(/*$show_error*/ false); $allow_retry--; return sdk_freebox_query($url, $method, $post, $allow_retry); } } if ($json['result']['challenge'] != '') { saveVariable('challenge', $json['result']['challenge']); } if ($return_xml) { // permet d'avoir une mise en forme plus lisible dans un browser sdk_header('text/xml'); echo jsonToXML($response); } else { return $json; } } switch($_GET['step']) { default: case '1': sdk_step1(); break; case '2': sdk_step2(); break; case 'session': // on essaie 2 fois if (!sdk_session(/*$show_error*/ false)) { sdk_session(/*$show_error*/ true); } echo "done"; break; case 'wifi': $action = getArg('action'); $post = '{ "ap_params": { "enabled": '.$action.' } }'; sdk_freebox_query('/api/v1/wifi/config/', 'PUT', $post); break; case 'parental': $action = getArg('action'); $mac = getArg('mac'); // on commence par rechercher l'id de la règle $id = ''; $json = sdk_freebox_query('/api/v1/parental/filter/', 'GET', NULL, 3, false); foreach($json['result'] as $filter) { foreach($filter['macs'] as $cur_mac) { if (strtolower(trim($cur_mac)) == strtolower(trim($mac))) { $id = $filter['id']; } } } // on ajoute la règle if ($action == 'status') { if ($id === '') { // aucun filtre trouvé, équivalent à pas de controle sdk_header('text/xml'); echo '<root><result><forced_mode>allowed</forced_mode></result></root>'; } else { sdk_freebox_query('/api/v1/parental/filter/'.$id, 'GET'); } } else { $post = '{ "macs": ["'.$mac.'"], "forced_mode": "'.$action.'", "forced": true}'; if ($id === '') { // on créé la règle sdk_freebox_query('/api/v1/parental/filter/', 'POST', $post); } else { // on la met à jour sdk_freebox_query('/api/v1/parental/filter/'.$id, 'PUT', $post); } } break; case 'reboot': sdk_freebox_query('/api/v1/system/reboot/', 'POST'); break; case 'api_get': $api_url = getArg('api_url'); sdk_freebox_query($api_url); break; // CARTOON NETWORK case 'CARTOON': httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=1&long=true", "GET"); httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=4&long=true", "GET"); httpQuery("192.168.1.1/pub/remote_control?code=56318458&key=6", "GET"); break; } ?> |
Auteur: | romu@asnieres [ 18 Déc 2016 21:55 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
et tu colles l'URL ci-dessous dans IE est-ce que le numéro de chaine s'affiche sur la freebox comme un appuie long : 192.168.1.1/pub/remote_control?code=56318458&key=1&long=true au fait lorsque tu testes la commande tu es bien déjà dans Freebox TV ? |
Auteur: | zebess [ 21 Déc 2016 20:39 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Voilà ce que me répond la freebox: RESSOURCE NON TROUVÉE La ressource que vous essayez de consulter n'existe pas, ou n'existe plus Par contre dans la macro sur l'eedomus ça fonctionne bien. |
Auteur: | romu@asnieres [ 21 Déc 2016 21:59 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
en gros il n'a pas trouvé l'adresse Web t'es sûr de l'IP c'est bien ton player et non ta box ? |
Auteur: | zebess [ 21 Déc 2016 22:39 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
Et bah voilà ça marche! J'ai corrigé dans le script également et ça fonctionne Merci bcp ... j'ai plus qu'à tout gérer mes chaines dans le script maintenant et op l'affaire sera traitée. J’espère que ce post aura permis d’éclaircir certaine personnes qui comme moi n'avait pas compris ce détail. J'ai mis en IP fixe le player pour éviter un souci au prochain reboot. Encore merci. A bientôt peut etre Sébastien. |
Auteur: | romu@asnieres [ 22 Déc 2016 10:03 ] |
Sujet du message: | Re: Macro telecommande freebox a 3 digit non fonctionnel |
bonne nouvelle, super! bonnes fêtes, Romu |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |