Piloter sa Freebox par la voix

Suite à l’exemple posté sur mon dernier tuto(A lire ici…), j’ai reçu beaucoup de demandes afin de vous expliquer avec plus de précisions comment je pilote ma Freebox. J’ai donc décidé d’écrire ce tuto, ce sera un peu mon cadeau de Noël !

Nous aurons donc besoin de :

  • une tablette ou un smartphone android
  • l’appli Tasker
  • le plugin Autovoice
  • l’appli Allstream (facultatif)

okfreebox

Comment ça fonctione ?

En fait, c’est relativement simple (n’oubliez pas que je suis une bille en programmation !). L’api de la Freebox (V5 ou V6) est documentée par Free, et fonctionne par le biais de requêtes http, chose que maîtrise parfaitement Tasker. Partant de là, Tasker envoie à la Freebox des requêtes afin de changer de chaîne, allumer/éteindre la Freebox, monter/baisser le son, revenir à l’écran d’accueil…

Cahier des charges

Avant de commencer, voici ce que l’on souhaite faire :

  • pouvoir piloter sa Freebox par la commande OK Google
  • allumer/éteindre la Freebox
  • zapper sur une sélection de chaînes favorites
  • monter/baisser le son
  • revenir à l’écran d’accueil
  • programme précédent/programme suivant

OK Google, let’s go !

Tout d’abord, nous allons voir comment utiliser OK Google pour envoyer des commandes personnalisées. Pour cela il vous faudra Tasker, ainsi que le plugin Autovoice.

Après avoir installé Autovoice, ouvrez l’application et activez l’intégration OK Google. Donnez aussi au plugin les autorisations nécessaires à son fonctionnement et… c’est tout ! Désormais, lorsque l’une de vos commandes OK Google correspondra à un profil Tasker, Google sera shunté et Tasker prendra le relais. Et hop !

Commander sa Freebox

Avant de créer les premiers profils, faisons le tour des commandes disponibles, celles-ci sont documentées par Free :

  • power : la touche on/off
  • 0 à 9 : les touches 0 à 9
  • vol_inc, vol_dec : volume+ et volume-
  • prgm_inc, prgm_dec : program+ et program-
  • ok : touche OK
  • up, right, down, left : les touches directionnelles entourant le OK
  • mute : la touche de mise en sourdine
  • home : la touche free
  • Concernant les boutons de couleurs, de haut en bas, et de gauche à droite (par rapport à la télécommande physique) les valeurs disponibles pour :
  • red : le bouton rouge (B)
  • green : le bouton vert (A)
  • yellow : le bouton jaune (Y)
  • blue : le bouton bleu (X)

Avant de faire fonctionner la commande, il vous faudra récupérer le code de télécommande de votre Freebox (voir dans les paramètres) et que votre tablette ou smartphone soit connecté sur le même réseau wifi que la Freebox (cela ne fonctionne pas en 3G).

L’adresse à utiliser dans la requête sera la suivante :

« http://hd1.freebox.fr/pub/remote_control?code=12345678&key= » ou 12345678 représente votre code de télécommande, n’oubliez pas de le changer !

Création du profil Marche

Nous allons commencer par créer un projet dans Tasker. Pour cela, assurez-vous que le mode beginner est désactivé dans les préférences, onglet UI. Sur la petite maison en bas à gauche, faites un appui long et cliquez sur le « + » pour créer un nouveau projet. Appelez-le comme vous voulez, puis sélectionnez son onglet juste à droite. Cliquez maintenant sur l’onglet Profils et créez un nouveau profil, que nous appellerons Marche. Choisissez Evénement/Plugins/Autovoice recognized, puis cliquez sur le petit crayon pour afficher les paramètres. Dans le champ « command filter », entrez la commande «  »Allume la Freebox » ou « allume la télé », ou ce que vous voulez dans le genre. Revenez en arrière 2 fois pour valider, on vous propose maintenant de créer une tâche. Donnez-lui le nom que vous voulez. Avant de créer la tâche, nous allons créer quelques variables, afin de se faciliter le travail.

2014-12-18 08.35.30

Cliquez sur l’onglet Vars, et ajoutez une nouvelle variable en cliquant sur le « + » en bas à droite. Nommez cette variable Cmd. Cliquez dessus et donnez lui comme valeur la requête http sans le signe « = », soit : « http://hd1.freebox.fr/pub/remote_control?code=12345678&key » (sans les guillemets évidemment, et attention au code de télécommande). Créez une seconde variable nommée Cmdlong (qui nous permettra de simuler un appui long) avec comme valeur la requête suivante : « http://hd1.freebox.fr/pub/remote_control?code=12345678&long=true&key ». Notez l’insertion de l’attribut long=true. Enfin, on créera une troisième variable Ajout, que l’on définira ainsi : « &long=true&key »

Revenez ensuite dans la tâche Marche. Cliquez ensuite sur le « + » pour ajouter une action, et sélectionnez « Réseau/Get HTTP ». Et là, dans les réglages, on nous demande le chemin du server. Cliquez sur l’étiquette à droite et sélectionnez la variable %Cmd, et ajoutez-y « =power ». Revenez en arrière 2 fois, et retournez dans la tâche. Cliquez sur le symbole Play en bas : votre Freebox devrait s’allumer. Appuyez une nouvelle fois, elle devrait s’éteindre.

Ajoutons maintenant un retour vocal : ajoutez une action Tâche/Attendre et mettez-y 3 ou 4 secondes. Ajoutez enfin une action Alerte/Dire avec la phrase « La télé est allumée » en prenant soin de choisir le moteur TTS Google, ou un autre moteur TTS si vous en avez installé un autre, type Voxygen. Retournez en arrière et appuyez une nouvelle fois sur Play pour vérifier que tout se déroule normalement. Revenez sur l’écran des profils, puis revenez sur la home de votre tablette. Déclenchez une requête OK Google avec votre phrase-clé, la Freebox devrait s’allumer !

2014-12-18 09.25.47

Création des autres profils

Reprenez exactement la même procédure, à l’exception de la création des variables pour créer les autres profils : Arrêt, programme suivant/précédent, les chaînes à un chiffre, les boutons de couleur si nécessaire, les touches directionnelles si vous le voulez. Nous allons ensuite voir le cas des chaînes à plusieurs chiffres et du volume.

Les chaînes à plusieurs chiffres

Pour cela, nous allons faire appel à la variable %Cmdlong. Dans la tâche, au lieu d’utiliser la variable %Cmd, utilisez %Cmdlong= puis le premier chiffre à taper, puis ajoutez la variable %Ajout=second chiffre. Enfin, ajoutez une action GET HTTP avec %Cmd=dernier chiffre.

Pour la chaîne 150, cela donnera donc :

  • Get HTTP %Cmdlong=1%Ajout=5
  • Get HTTP %Cmd=0

Ne me demandez pas pourquoi, mais je n’ai jamais réussi à tout mettre sur une seule action. Le dernier chiffre casse tout. Obligé donc de le faire en 2 temps.

2014-12-18 09.25.24

Le volume

Lorsque, sur la Freebox, on appuie une fois sur le bouton Volume, celui-ci descend d’un cran. Obligé de répéter l’action pour que la baisse soit audible. Nous allons donc simuler une frappe répétée sur la touche. On va donc créer un profil pour la baisse de volume, et dans la tâche, on va d’abord définir une variable. On crée donc une action « Variable/Affecter à une variable ». Dans Nom, on saisit %Vol et on la met à 0. On vient donc de créer une variable %Vol=0. Rassurez-vous, cela ne signifie pas pour autant qu’on baisse le volume à fond. Cette variable va nous servir de répétiteur.

On crée ensuite notre commande Get HTTP %Cmd=vol_dec. On ajoute une action Variable/Ajouter à une variable, on y indique la variable %Vol et on ajoute 1. Retour arrière et nouvelle action : Tâche/Aller à l’action » et on choisit la numéro 2. On ajoute une condition Si, avec la variable %Vol <10. L’action sera donc répétée 10 fois. On peut maintenant faire de même pour l’augmentation du volume.

2014-12-18 09.25.12

Le volume et OK GooglePetit problème, et vous pourrez en avoir déjà fait l’expérience à ce stade : si vous dites « OK Google, monte le son », il va vous répondre en rapport avec les réglages sonores de la tablette. Donnez-lui donc un ordre qu’il ne pourra pas interpréter de cette façon : « monte le son de la télé ». Cela évitera les conflits !

Pour terminer, l’application Allstream pourra streamer le retour vocal de vos tâches sur un appareil Airplay, par exemple.
Voilà, j’espère que ce tuto vous a plu, j’ai essayé d’être aussi précis que possible. Je n’ai pas montré les profils pour chaque chaîne, mais j’imagine que vous saurez dériver le premier pour faire le reste. Alors à vous de jouer !

Source : Piloter sa Freebox par la voix | Domotique-Info | Domotique-Info

Please follow and like us:
Pin Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut