UPDATE – Gestion simple de la freebox avec Google Home et IFTTT

Une nouvelle mise à jour importante a été développée et la procédure d’installation modifiée. Nous avons ajouté des commandes « bouquet Canal » et « bouquet free » ainsi que la prise en compte de plusieurs FreePlayers. La gestion des commandes numériques et macro-commandes a été améliorée. Une applet IFTTT a été supprimée et nous avons procédé à des corrections de bugs et des améliorations du code.

Installation

Pour le serveur PHP :
Télécharger le code ici, placer le sur votre serveur, puis passer directement dans la configuration IFTTT

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

GoogleHome-Freebox

Une fois l’installation terminée dans l’onglet Commandes allez dans Éditer chercher votre script puis renseignez l’argument remote avec le code de votre télécommande, l’argument hd avec le numéro du FreePlayer (facultatif, par défaut le n°1), et l’argument message avec « #message# » (avec les guillemets).

/var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=12345678 hd=1 message="#message#"Google-home-gestion-de-freeplayer

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

Configuration de IFTTT

Une fois votre script placé et configuré il faut créer une applet.

  • This = Google Assistant
  • That = Webhooks

Pour déclencher la télécommande virtuelle, une seule applet du type Say a phrase with a text ingredient suffit.

Vous pouvez personnaliser ici la phrase d’accroche devant être capturer par Google Assistant, tel « freeplayer sur », « freebox sur », « zappe sur » etc …

Sélectionnez Make a web request pour configurer la requête vers votre serveur.

Pour serveur PHP:
https://IP_SERVEUR/GoogleHome-Freebox.php?message= »{{TextField}} »

Pour Jeedom:
https://IP_JEEDOM/core/api/jeeApi.php?apikey=CLE_API_JEEDOM&type=cmd&id=ID_COMMAND&message=<<<{{TextField}}>>>

Utilisation

Pour pouvoir l’utiliser c’est simple.

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

  • FreePlayer sur 6
  • Freeplayer sur RMC Découverte

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 changer de bouquet :

  • FreePlayer sur bouquet free
  • FreePlayer sur bouquet Canal

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 = muet
  • Enregistrement= enregistre
  • Power = allume, éteins, arrête

Exemples d’utilisation :

  • pour afficher les information sur la chaîne en cours : FreePlayer sur jaune ou FreePlayer sur information
  • pour monter le son: FreePlayer sur volume plus
  • pour couper le son: FreePlayer sur muet

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 😉

 

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

  1. Ping : Gestion de la freebox avec Google homme

  2. bonjour,
    J’ai un soucis le script fonctionne si je choisis l’applet iftt avec chiffre et si je ne donne des commandes seulement avec le numéro de chaine
    Mais si je prend l’applet avec le texte plus rien ne fonctionne, il y a t-il un moyen de voir ce qui est envoyé au serveur php

    • Le « moteur » est le même pour les chaînes numériques et les chaînes textuelles. L’applet avec ingrédient numérique ne sert à rien puisque les valeurs sont transmisses en texte. C’est certainement un problème de configuration. Il faut respecter les échappements sur IFTTT et sur Jeedom pour que cela fonctionne correctement : voir ci dessus.

      Pour voir comment Jeedom appelle le script, mettre le niveau « debug » sur le log du plugins script, puis Analyse/Logs/Script. Donne moi l’ingrédient envoyé par IFTTT à l’API Jeedom ( le message entre guillemets ) lorsque cela ne marche pas pour toi.

      • Ok ,c’est bon j’ai été voir les commentaire sur ta 1ère version et il a suffit que je tape l’ingrédient à la main au lieu de l’inséré en automatique ou en copié collé pour que cela fonctionne.
        Encore merci pour ce superbe travail

    • perso, j’ai un soucis avec les « sur » et « la » qui sont dans ma locution d’accroche mais ce qui est récupéré c’est par exemple « sur 1 » au lieu de « 1 » ou »la 2″ au lieu de « 2 ».
      dès que je rentre je vérifierai la version du script et les différents paramétrages mais tu as peut etre le même problème que j’ai rencontré. active les notifs sur tom applets et regarde ce qui est interprété et récupéré en tant qu’ingrédient.

      • IFTTT rajoute un « sur » sur l’ingrédient même s’il est dans la phrase d’accroche … BUG ??? Du cou p j’ai écris le script en fonction pour supprimer le « sur » dans le message. Je vais supprimer aussi le « le » ou le « la » en trop dans la prochaine version.

  3. J’ai le même problème et j’ai bien suivie ce tuto donc voici ce que retourne Jeedom en mode debug
    zappes sur M6
    Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=***** message= » sur M 6″ 2>&1
    Ne fonctionne pas.
    zappes sur 6
    Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=******* message= » sur 6″ 2>&1
    [2017-12-28 11:07:03][DEBUG] : Result : http://hd1.freebox.fr/pub/remote_control?code=*********&key= &repeat=1&long=falsePHP Warning: file_get_contents(http://hd1.freebox.fr/pub/remote_control?code=********&key= &repeat=1&long=false): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 431 http://hd1.freebox.fr/pub/remote_control?code=********&key=6&repeat=1&long=false
    La ça fonctionne.
    De plus j’ai remarqué un autre problème en mettant dans IFTTT « zappes sur $ » Jeedom reçois « sur M 6 » par exemple donc j’ai vu que tu l’avais supprimé mais lorsque l’on dis le numéro d’une chaîne on rajoute un « la » et donc Jeedom reçois « sur la 6 » et ça ne marche plus.

    • Il y a un espace en trop dans ta règle IFTTT. J’ai modifié le script pour qu’il gère ce genre d’erreur de saisie et l’article « la » dans la prochaine version.

      En attendant remplacer la ligne :
      $message = str_replace("sur ","",$_GET["message"]);

      par :
      $message = trim(preg_replace("/sur *(la)? */","",$_GET["message"]));

  4. Bonjour,

    Excellent cela fonctionne très bien.
    Il faut corriger quelques commandes dans le script car les commandes doivent être en minuscule (ok au lieu de OK ou free au lieu de Free).

    Cordialement
    Eric

  5. super tuto et super script, est ce qu’il serait possible de rajouter les chaines comédie + en 80, MTV en 84 et science et vie TV en 207. et ensuite pour évité de transmettre en clair la clef jeedom et les commandes dans l’url de ifttt il vaut mieux procéder de la manière pour paramétrer iFTTT :
    dans URL: http://ipexternejeedom/core/api/jeeApi.php
    method :POST
    content type :application/x-www-form-urlencoded
    body : apikey=apikeydevotrejeedom&type=cmd&id=IDduscript&title=montitre&message={{TextField}}

    voilà bonne journée et encore merci pour le tuto

    • Ah, je n’ai rien trouvé dans la doc sur l’API Jeedom indiquant que l’on pouvait envoyer des requêtes POST … Tant mieux si c’est le cas ! Après il n’y a rien à modifier au script, juste la règle IFTTT.
      Ok, je rajoute les chaîne 80,84 et 207 😉

      • je l’ai vu sur un topic du forum de jeedom cela permet aussi de ne pas laisser de trace de l’URL complète avec la clef api jeedom dans le log de ifttt merci pour les chaines !

  6. Salut, merci pour ce tuto, tout fonctionne nickel, juste une petite question, serait il possible de faire à ce que le volume de la Fbx baisse au moment ou l’on lance une commande à la Google home, un peu comme avec la chromecast. D’avance merci pour vos réponses.

  7. Bonjour, de mon coté en mode debug j’ai ça :
    [2018-01-06 14:27:42][DEBUG] : Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=25892980 hd=1 tache= »sur la 6″ 2>&1
    [2018-01-06 14:27:43][DEBUG] : Result : PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 68

    si je décommentes les lignes 67 et 66 juste apres le BUG IFTTT j’ai :

    [2018-01-06 14:27:42][DEBUG] : Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=25892980 hd=1 tache= »sur la 6″ 2>&1
    [2018-01-06 14:27:43][DEBUG] : Result : PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 66 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 67 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 68
    [2018-01-06 14:27:55][DEBUG] : Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=25892980 hd=1 tache= »6″ 2>&1
    [2018-01-06 14:27:56][DEBUG] : Result : PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 66 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 67 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 68
    [2018-01-06 14:28:08][DEBUG] : Execution de : php /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=25892980 hd=1 tache= »monte le son » 2>&1
    [2018-01-06 14:28:09][DEBUG] : Result : PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 66 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 67 PHP Notice: Undefined index: message in /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php on line 68

    comment réglé ce soucis ?

    • Tu as mélangé les 2 tutos. Pour la dernière version sur Jeedom c’est :
      /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=12345678 hd=1 message="#message#"

  8. Ok merci j’avais zappé complet le truc 😉
    c’est juste le tache= qui fallait mettre message=….
    menfin desfois je suis incorrigible… :/

    Sinon pour garder le « zappe sur » la chaine on peut changer dans le script a la ligne 68 :
    $message = trim(preg_replace(« /*sur *(la)? */ », » »,$_GET[« message »]));
    par :
    $message = trim(preg_replace(« /(zappe sur | *sur) *(la)? */ », » »,$_GET[« message »]));

  9. Bonjour,
    Tout d’abord bravo pour ton script même si cela fait une semaine que j’essaie de le faire fonctionné et que je n’y arrive pas.

    Installation du script et paramétrage sur mon Jeedom DIY aucun souci (aucune erreur), redirection du port sur ma Freebox Révolution OK puisque j’accède bien à mon serveur depuis l’extérieur pour autre chose, configuration dans IFTTT semble OK mais quand je lance les commandes à mon GH elle me répond bien qu’elle fait l’action mais rien ne se passe 🙁

    J’ai beau tourné le truc dans tous les sens, lire ce qui a été écris ici même ou sur le forum Jeedom mais rien n’y fait et malheureusement pas de log dans mon serveur.

    J’ai tenté par curiosité de lancer en local la commande http://192.168.1.23/var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=27424600 hd=1 message= »#message# » qui est la commande de sauvegarder dans requête du script et j’ai en retour « The requested URL /var/www/html/plugins/script/core/ressources/FreeBox-GoogleHome.php remote=27424600 hd=1 message= » was not found on this server. » alors que mon serveur ne me fait aucun erreur lors de la sauvegarde du script, j’ai meme tenter de remplacer « hd=1 » par « IP=l’ip de mon player » car je suis en fixe sur mon réseau rien n’y fait, j’ai beau chercher je ne vois pas ce que j’ai loupé dans la procédure.

    Donc si vous aviez une idée je suis preneur, merci d’avance

    • Bonjour,
      Dans Plugins > Programmation > Script > Configuration
      Active les Logs sue Défaut
      Sauvegarde
      Lance quelques commandes pour changer une ou deux chaîne.
      retourne dans Plugins > Programmation > Script > Configuration
      clique sur Script et publie les logs qui s’affiche.
      merci

Laisser un commentaire

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