Gestion simple de la freebox avec Google Home et IFTTT

freebox-player-google-home

Je vous avais expliqué dans les articles précédents comment connecter une box domotique à votre Google Home grâce au API Http. Avec ces méthodes vous pouvez commander n’importe quel appareil.
Le seul probleme c’est qu’avec IFTTT vous êtes obligé de créer un applet par commande et avec HA-Bridge un module pour 3 commandes (On/Off/Dim). Ce n’est pas bien grave pour inclure une lumière ou un interrupteur mais pour gérer les 300 chaines de votre télé la tâche devient rude. Alors j’ai cherché une solution plus simple et surtout plus rapide à mettre en place. Pour cela, j’ai écrit un petit script en PHP qui traduit les commandes vocales de Google Assistant et actionne la fonction désirée.
Je vous donne ici un exemple d’utilisation avec la Freebox Player mais bien-sûr le script est adaptable à n’importe quelle box TV acceptant les Api Http.
Pour la facilité d’utilisation le script est écrit pour être exécuté avec Jeedom et plugin Script, mais ce n’est pas une obligation, vous pouvez facilement le placer sur un autre serveur LAMP, WAMP, Nginx capable d’interpréter le PHP.

Installation.

Pour commencer connectez vous à votre Jeedom, et dans Plugin/Programmation/Script allez dans le Market et installez le script FreeBox-GoogleHome.php.

GoogleHome-Freebox

Une fois l’installation terminée dans l’onglet Commande allez dans éditer cherchez votre script puis renseignez votre code de télécommande et ajoutez  #message# à la fin.

/var/www/html/core/php/../../plugins/script/core/ressources/zap.php code=12345678 tache=#message#
GoogleHome-Freebox_Jeedom

Sur un autre serveur que Jeedom il faut placer la page php dans votre dossier html préalablement modifié selon vos besoins.

Configuration de IFTTT

Une fois votre script placé et configuré il faut créer deux applets.

  • This =  Google Assistant
  • That  = Webhooks

ifttt-google-home-with-fibaro

ifttt-google-home-with-fibaro

Une pour la gestion des chaines par leurs numéros – Say a phrase with a number

  • Ok Google zappe sur la 24
  • Zappe sur la 6.
  • Mets la 244

URL de votre script php ici Jeedom dans Make a web request

https://IP_JEEDOM/core/api/jeeApi.php?apikey=CLE_API_JEEDOM&type=cmd&id=ID&title=montitre&message={{NumberField}}

ifttt-goolehome-freebox

Une pour la gestion des autres touches et nom des chaines – Say a phrase with a text ingredient

  • Ok Google allume M6
  • Met RMS Decouverte
  • Freebox monte le son

URL de votre script php ici sur Jeedom  Make a web request

https://IP_JEEDOM/core/api/jeeApi.php?apikey=CLE_API_JEEDOM&type=cmd&id=ID&title=montitre&message={{TextField}}

ifttt-goolehome-freebox2

Utilisation

Pour pouvoir l’utiliser c’est simple.

Pour changer une chaîne vous avez deux possibilités, soit par numéro de chaîne soit par nom de chaîne:

  • Zappe sur la 6
  • Zappe sur la 24
  • Mets TF1
  • Mets RMC Decouverte

Attention je n’ai pas configuré tous les noms de chaînes, si vous utilisez une chaîne qui n’est pas dans le script, faites le moi savoir je  la rajouterai avec plaisir.

Pour toutes les autres touches:

  • touche de direction Haut = haut
  • touche de direction Bas = bas
  • touche de direction Gauche = gauche
  • touche de direction Droite = droite
  • touche Rouge/Précédent = rouge, précédent, retour
  • touche Bleu/Rechercher = bleu, rechercher
  • touche Vert/Menu = vert, menu
  • touche Jaune/Infos = jaune, information
  • touche OK = ok
  • touche FREE = free
  • Volume + = volume plus
  • Volume – = volume moins
  • Mute = coupe le son

exemple pour afficher les information sur la chaîne en cours: Freebox jaune ou Freebox information
exemple pour monter le son: Freebox volume plus

Conclusion

Voilà, vous pouvez désormais commander la télé par la voix avec votre Google assistant. Toutes les commandes sont personnalisables. Pour plus de facilité, j’ai différencié dans les exemples, en rouge configurable dans IFTTT et en bleu directement dans le script PHP.

Vos remarques et suggestions sont les bienvenues, lâchez vous dans les commentaires 😉

 

 

66 réflexions au sujet de « Gestion simple de la freebox avec Google Home et IFTTT »

  1. Bonjour,
    Merci pour ce super boulot, je cherchais a depuis longtemps !!
    Par contre, effectivement, le script ne semble plus dispo dans le market…est-il possible de le récupérer autrement ?

  2. Bonjour,
    Merci pour ce script qui semble prometteur pour moi.

    Par contre, ne manque t’il pas une étape entre l’installation du script et l’action d’ajouter /var/www/html/core/php/../../plugins/script/core/ressources/zap.php code=12345678 tache=#message# ?

    Une fois le script installé, j’ajoute un équipement, puis je fais parcourir pour trouver le script. mais apres cela ne correspond pas à votre capture d’ecran. Il y a une étape que je ne comprends pas…

  3. Salut merci pour ce script il marche assez bien car je rencontre un problème lorsque je dis freebox C8 ça fonctionne mais pas pour TF1 et M6 par exemple. De plus quand tu dis « Sur un autre serveur que Jeedom il faut placer la page php dans votre dossier html préalablement modifié selon vos besoins. » Il faut faire quoi exactement ?

  4. Bonjour,
    Je me bagarre avec le tuto et ifttt.
    Le script jeedom est Ok car si je le lance a la main d une IP locale ou externe ca passe.
    Par contre impossible de le lancer via la voix. il semblerai que le numberfield ne fasse pas d effet.
    Rien ne ce passe , pareil pour le text …
    Une idée ?

      • J’ai trouvé mon probleme si j’écris {{NumberField}} ou {{TextField}} à la main aucun problème.

        Si je l’écris en utilisant le bouton add ingredient de ifttt cela ne marchait pas, avec espace ou sans espace.
        Très étonnant maintenant ça fonctionne nickel

  5. Désormais je tente d’ajouter des chaines en ajoutant par exemple :

    if ($tache== »Beinsport 1″) {$tache= »31″;}
    if ($tache== »Beinsport 2″) {$tache= »32″;}
    if ($tache== »Beinsport 3″) {$tache= »33″;}

    Je dois oublier quelques choses GH répond mais pas d’action.
    En relançant Jeedom pareil et en vérifiant que le fichier php ai bien était modifié

    • oops

      if ($tache== »Beinsport1″) {$tache= »31″;}
      if ($tache== »Beinsport2″) {$tache= »32″;}
      if ($tache== »Beinsport3″) {$tache= »33″;}

      • J’avais test plusieurs combinaisons et pareil.

        Je pense que j ai un problème de permission de fichier car si je mets « Canal » au lieu de « Canal plus » ça ne marche pas non plus, par contre si je dis Canal plus a haute voix alors que dans le fichier il y a écris « Canal » la chaîne se change bien sur canal plus.

        En gros je peux écrire n’importe quoi dans le fichier rien ne bouge que je le modifie par jeedom ou par ssh , reboot ou pas

  6. Salut pour moi je ne pense pas que cela vienne du fichier php car lorsque je dis freebox M6 cela apparais bien dans le log des script mais si je dis le nom d’une chaine avec accent le log se plante et je dois le vider ?

  7. Bon je ne comprends pas si j’envoie directe par mon navigateur https://« maDNS.jeedom.com »/core/api/jeeApi.php?apikey= »makeyapi »&type=cmd&id=***&title=montitre&message=planète plus ça marche mais pas avec Ifttt. Par contre quand je recopie le lien j’ai &title=montitre&message=plan%C3%A8te%20plus.

  8. Bonjour ,

    Encore merci pour ce superbe script c est TOP !

    Est il possible avec google home de lui demander de changer de chaine a une certaine heure ?
    Exemple : Ok Google , tu peux mettre la 6 a 13h45 ?

    Merci encore
    Mike

  9. Bonjour, super tuto qui fonctionne parfaitement.
    Est ce qu’ il serait possible d’ajouter les fonctions du menu, par exemple dire  » ok google, freebox enregistrement  » et que le menu enregistrement s’ouvre.
    Merci

  10. Salut,

    Ca ne marche pas chez moi
    Si je demande à GH de mettre la 6, il répond correctement à la ma phrase programmé dans ifttt mais rien, la commande n’est pas envoyé.
    Rien dans les logs.
    Par contre si lance la commande manuellement dans mon navigateur j’ai ca :
    {« jsonrpc »: »2.0″, »id »:null, »error »:{« code »:1, »message »: »Requ\u00eate invalide. Version Jsonrpc invalide : « }}

    Une idée ?

  11. Bonjour
    Sinon , On peut pas demander à Google home d exécuter une tâche à tel heure , c est à dire : « ce soir à 19 h tu mets TF1 » ?
    Programmer des tâches c est pas possible avec Google home ?
    Merci

  12. Bonjour,

    J’ai un doute sur l’utilisation de l’intéraction. Pour moi il est impossible d’utiliser le « Mets TF1 » par exemple car « Mets » est un mot réservé à GH. En revanche dire Freebox M6 fonctionne par exemple mais ça n’est pas trop intéressant. Dans ton intéraction tu n’as que freebox $ de défini sur la capture d’écran, je ne comprends pas comment « Met » ou « Allume » peut fonctionner.
    Autre chose est-il possible d’attribuer directement une valeur au volume genre « volume à 30 » ?

    Merci

    • Bonjour,
      Pour le moment il n’est pas possible d’attribuer une valeur de genre « volume à 30 » mais je travail la dessus 😉
      pour les mots « allume » ou « mets » fonctionne mais peuvent poser problèmes.
      Chez moi personnellement je les remplace par ZAPPE 😉

  13. bonjour a tous , petite astuce qui marche chez moi
    pour remplacer la commande « Mets » qui pose problème , la commande « Mets la chaîne » fonctionne nikel 😉
    sinon merci pour se script !!!!! très bon taff !!

  14. Bonjour,R.Syrek
    Merci pour ce super boulo,
    Merci pour ce script qui semble prometteur
    Est ce qu’il est possible d’adapter le script la box THD de sfr ?
    Et ou trouver le code telecommande ?
    Merci par avance

    Cdt

Laisser un commentaire

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