Pilotage décodeur orange avec Google SmartHome

Tags: #<Tag:0x00007fa7a9708d40>

Bonjour,

Je partage une astuce parce que j’ai un peu galéré pour le faire fonctionner.

Le principe :

  • Installer et configurer le plugin JeeOrangeTV
  • Créer un virtuel, avec 2 infos (ChaineInfo et VolumeInfo) et 2 commandes (Info et Volume). C’est lui qui communiquera avec Google SmartHome.
  • Créer 2 scénarios qui envoie les commandes volume et chaine du virtuel vers JeeOrangeTV

En détail …

  1. Installer et Configurer le plugin JeeOrangeTV. Je vous renvoie à la documentation du plugin pour ça. Surtout vérifiez qu’il fonctionne correctement avant de continuer.

  2. Installer le plugin Google SmartHome. Là encore je suppose que le plugin est déjà fonctionnel.

  3. Créer un virtuel : je l’ai appelé « Box », et créer les commandes ci-dessous
    image

  4. Très important : Dans chaque commandes et infos que vous venez d’ajouter, allez dans les paramètres avancés (roue cranté), onglet Configuration, et sélectionnez le type générique Chaine ou Volume. Sans ça, le virtuel sera en erreur dans le plugin Google SmartHome.

  5. Créer le scénario qui va gérer le volume : Copier le code PHP, et le déclencher par la commande Volume du virtuel « Box ». N’oubliez pas de personnaliser le nom des périphériques dans les variables.

// Initialisation des variables
$cpt = 0;      // compteur
$BoxDevice = '[Multimedia][OrangeTV]'; // Nom de la box Orange
$VirtualDevice = '[Multimedia][Box]';  // Nom du virtuel
//$LastBoxVolume = $scenario->getData('LastBoxVolume');
$NewBoxChaine = cmd::byString('#'.$VirtualDevice.'[ChaineInfo]#')->execCmd();

// Nombre de caractères à traiter
$cpt = strlen($NewBoxChaine);
$tab = str_split($NewBoxChaine);

$scenario->setLog('__NewBoxChaine'.' -> '.$NewBoxChaine);
$scenario->setLog('__Compteur'.' -> '.$cpt);

// Changement du volume
for ($i = 0 ; $i < $cpt ; $i++ ) {
  $scenario->setLog('#'.$BoxDevice.'['.$tab[$i].']#');
  cmd::byString('#'.$BoxDevice.'['.$tab[$i].']#')->execCmd();
}
//$scenario->setData('LastBoxVolume',$NewBoxVolume);
  1. Créer le scénario qui va gérer les chaines : Copier le code PHP, et le déclencher par la commande Chaine du virtuel « Box ». N’oubliez pas de personnaliser le nom des périphériques dans les variables.
// Initialisation des variables
$cpt = 0;      // compteur
$BoxDevice = '[Multimedia][OrangeTV]'; // Nom de la box Orange
$VirtualDevice = '[Multimedia][Box]';  // Nom du virtuel
//$LastBoxVolume = $scenario->getData('LastBoxVolume');
$NewBoxChaine = cmd::byString('#'.$VirtualDevice.'[ChaineInfo]#')->execCmd();

// Nombre de caractères à traiter
$cpt = strlen($NewBoxChaine);
$tab = str_split($NewBoxChaine);

$scenario->setLog('__NewBoxChaine'.' -> '.$NewBoxChaine);
$scenario->setLog('__Compteur'.' -> '.$cpt);

// Changement du volume
for ($i = 0 ; $i < $cpt ; $i++ ) {
  $scenario->setLog('#'.$BoxDevice.'['.$tab[$i].']#');
  cmd::byString('#'.$BoxDevice.'['.$tab[$i].']#')->execCmd();
}
//$scenario->setData('LastBoxVolume',$NewBoxVolume);
  1. Paramétrer le virtuel box dans le plugin Google SmartHome. Bien mettre le type sur TV, sauvegarder et actualiser la page (F5). Le status doit passer sur OK.
    image

  2. Testez avec : « Ok Google ! Mets la chaine 27 sur Box » ou « Ok Google ! Augmente le volume de 2 sur Box »

Patrice

Bonjour,

Merci pour le tuto.

J’ai essayé de le suivre, mais ça ne fonctionne pas chez moi.

Le virtuel remonte bien sur google home.
Il prends bien en compte la demande de changement de son, mais le son ne change pas sur la livebox

Pour les changements de chaines, Google home informe que « Je ne peux lire des vidéos que sur des appareils équipés de Chromecast… »

Merci pour ton aide

Bonjour

Même soucis, le virtuel remonte bien dans le Dashboard, je peux régler le volume, mais pas changer de chaine
pas de changement d’état de la variable Chaine Info dans le virtuel, tout se passe comme-ci cette variable n’était pas modifiée par le plugin smart home

Bonjour,

Merci pour ce tuto.

Je rencontre les mêmes problèmes, Google Home ne peut pas lire des vidéos…
Ca fonctionne dans le dashboard pour les chaines mais pas le volume. D’ailleurs le script volume fait beaucoup référence aux chaines. J’ai donc remplacé « chaine » par « volume » mais c’est pareil. Mais comme je n’y connait rien…

Des news à ce sujet depuis le temps ? une personne a t-elle reussi à faire fonctionner la methode de Bishop ?

Hello !

Pour le volume, le code de Bishop ne peut pas fonctionner, il a mis le même code que pour le changement de chaine (erreur de copier coller certainement).
J’ai bricolé un peu pour le volume et ca donne ca (c’est certainement optimisable, mais ca fonctionne) :

// Initialisation des variables
$BoxDevice = '[Salon][TV Orange]'; // Nom de la box Orange
$VirtualDevice = '[Salon][Décodeur]';  // Nom du virtuel
$NewBoxVolume = cmd::byString('#'.$VirtualDevice.'[VolumeInfo]#')->execCmd();

$scenario->setLog('__NewBoxVolume'.' -> '.$NewBoxVolume);

// Monter ou baisser le volume ?
if ($NewBoxVolume > 0) {
  // Augmentation du volume
  for ($i = 0 ; $i < $NewBoxVolume ; $i++ ) {
    $scenario->setLog($i.'#'.$BoxDevice.'[VOL+]#');
    cmd::byString('#'.$BoxDevice.'[VOL+]#')->execCmd();
  }
} else if ($NewBoxVolume < 0) {
  // Diminution du volume
  for ($i = 0 ; $i > $NewBoxVolume ; $i-- ) {
    $scenario->setLog($i.'#'.$BoxDevice.'[VOL-]#');
    cmd::byString('#'.$BoxDevice.'[VOL-]#')->execCmd();
  }
}

// Reinitialisation de la valeur de VolumeInfo (virtuel)
$cmd = cmd::byString('#'.$VirtualDevice.'[VolumeInfo]#');
$cmd->event(("0"));

(Attention, j’ai mis le nom de mes équipements, pas les mêmes que ceux de Bishop).

Pour les chaines, ca ne fonctionne pas non plus chez moi (j’ai le meme problème que beaucoup, google n’envoie pas la commande au virtuel dans Jeedom). Je continue de creuser, mais je me demande si ca ne dépend pas du modèle de décodeur…