Problématique : Dans un précédent article je présentais l’API Free pour pouvoir piloter la Freebox. Un des principaux inconvénients pour implémenter cette technologie dans le cadre d’un automatisme domotique est le manque d’information sur l’état en cours de la Freebox. Peut-on trouver un moyen pour se déplacer par script de manière sûre dans les menus de la Freebox?
Solution : Le retour d’état n’étant pas disponible, il faut contourner le problème et forcer la Freebox à se mettre dans un endroit précis du menu principal. A partir de là on pourra se déplacer dans les menus en connaissant le chemin à suivre.
Etude préliminaire
Le maillage
Il est facile d’appréhender le menu principal comme un tableau de 4 colonnes * 3 lignes. Dans chaque cellule il y a un élément du menu avec une action à la clé.
Les points remarquables
Dans l’ergonomie du menu chaque ligne et colonne est “circulaire”. Par exemple si l’on se déplace tout à droite dans le menu et que l’on se déplace une dernière fois à droite, la sélection n’est pas bloquée au bord de l’écran : l’élément le plus à gauche est celui qui devient maintenant l’élément sélectionné.
Pour se repérer dans le menu nous ne pouvons pas nous baser sur les bords. Il faut trouver des “points remarquables”.
Le premier point remarquable est l’élément situé sur la 1ère ligne / 2ème colonne : “Canal + / Canal Sat”. Cet élément est constitué de 2 boutons au lieu de un seul pour le reste des éléments du menu.
Le second point remarquable est l’élément situé sur la 2ème ligne / 4ème colonne : “Freebox replay”. C’est le seul élément de cette ligne dont on ne puisse pas revenir au menu principal en appuyant sur le bouton rouge. Il n’était pas facile à trouver celui là…
Mise en oeuvre
Pour pouvoir se positionner dans le tableau du menu principal le principe suivant sera mis en place:
- se positionner sur la première ligne en utilisant le premier point remarquable “Canal + / Canal Sat”
- se déplacer sur la seconde ligne
- se positionner sur la 4ème colonne en utilisant le second point remarquable “Freebox replay”
A partir de là on sait exactement où l’on se situe dans le menu principal et l’on peut piloter la Freebox HD sans soucis en se déplaçant à gauche, à droite, en haut et en bas.
Le développement en PHP qui en découle s’inspire d’une lecture sur un forum d’utilisateurs français de Ubuntu: une personne ayant eu la même démarche présentait son travail.
Voici le script PHP qui matérialise l’algorithme. A utiliser et à modifier librement mais à votre propre risque et péril. 😉
Conclusion
Ca marche!
Une limitation importante de ce procédé est que l’on est tributaire des modifications du menu principal de la part de Free. Si le menu change, le script pourra avoir un comportement… comment dire… différent!
Les utilisations possibles de ce script sont uniquement limitées par les possibilités de la Freebox HD et de votre imagination. On peut par exemple:
- faire redémarrer la Freebox HD
- faire redémarrer la Freebox ADSL
- faire sonner le téléphone
- lire les messages téléphoniques dès que vous rentrez à la maison…
Soyez le premier à commenter