Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

[Tuto] Google Home : Comment lui faire donner une information

Pour parler de tout, et surtout de rien !
Sphax
Timide
Messages : 171
Inscription : 24 sept. 2017, 16:30

[Tuto] Google Home : Comment lui faire donner une information

Message par Sphax » 05 déc. 2017, 14:24

Si vous savez comment faire du TTS avec votre très chère Google Home, vous ne savez peut-être pas comment faire en sorte qu'elle donne des informations prises de Jeedom (suite à une de vos questions).

Si vous ne savez pas comment faire du TTS avec GH, je vous invite à lire ce topic très bien fait: viewtopic.php?f=59&t=28590

Je n'ai pas la prétention de faire un "tuto" optimal mais je souhaite partager comment j'ai fais chez moi, sachant que toute la maison peut maintenant être pilotée avec la GH. Elle peut fermer/ouvrir les volets, le garage, allumer/éteindre les lumières, donner spontanément des alertes en fonction d'événements (agenda, portes fermées qui ne devraient pas, température trop haute, détecteur de fumée, etc) mais aussi répondre à certaines questions dont seul Jeedom connait la réponse. C'est ce dernier cas que j'expose ici.

Dans mon cas, la GH peut donner :
- la température de n'importe quelle pièce dans la maison (tête Pop pour chaque radiateur, capteur d'ouverture Fibaro et capteur d'ouverture Zipato pour les pièces sans radiateur)
- le nombre d'appels manqués, émis ou reçus dans la journée (Freebox OS)
- une phrase d'horoscope pour chaque membre de la famille (plugin Horoscope Jeedom)
- le titre de l'actu dans plusieurs domaines (plugin RSS Jeedom)

Pour certaines infos, c'est très gadget et quasi jamais utilisé mais pour la témpérature, c'est génial et utile.

  1. Pour faire ça, dans Jeedom, j'ai mis en place une interaction que voici :
    Image

    Image
  2. Ensuite, dans IFTTT, j'ai créé une applet comme ceci (ici pour la témpérature, mais j'ai fais une applet pour chaque type d'information à remonter qui fait appel à une interaction Jeedom différente qui appelle le même scénario en modifiant 2 variables, à chaque fois) :
    ILLUSTRATION
  3. Et enfin, dans Jeedom, je crée un scénario qui se déclenche sur la modification de la variable "itemsInfo" :
    ILLUSTRATION

    Code : Tout sélectionner

    // TEMPERATURES
    $cmd_temperatures = array(
      //'dehors' => '[Terrain][Météo][Température]',
      //'entree' => '[Entrée][Radiateur Entrée][Température]',
      // ...
      // Info températures des différents équipements
      );
    
    // APPELS
    $cmd_appels = array(
      'manques' => '[Freebox Server][Téléphone][Nombre Appels Manqués]',
      'rates' => '[Freebox Server][Téléphone][Nombre Appels Manqués]',
      'loupes' => '[Freebox Server][Téléphone][Nombre Appels Manqués]',
      'repondus' => '[Freebox Server][Téléphone][Nombre Appels Manqués]',
      'sans reponse' => '[Freebox Server][Téléphone][Nombre Appels Manqués]',
      
      'recus' => '[Freebox Server][Téléphone][Nombre Appels Passés]',
      
      'passes' => '[Freebox Server][Téléphone][Nombre Appels Passés]',
      'emis' => '[Freebox Server][Téléphone][Nombre Appels Passés]',
      'realises' => '[Freebox Server][Téléphone][Nombre Appels Passés]'
      // Plugin Freebox OS
      );
    
    // HOROSCOPES
    $cmd_horoscopes = array(
      //'cancer' => '[Jeedom][Cancer][horoscopeDuJour]',
      // ...
      // Plugin Horoscopes Jeedom
      );
    
    // NEWS
    $cmd_news = array(
      //'franceinfo' => '[Jeedom][FranceInfo][Dernier Titre]',
      // ...
      // Plugin RSS Jeedom
      );
    
    
    // PAS COMPRIS
    $cmd_erreur = array(
      "J'ai un doute, pouvez-vous répéter ?",
      "Je ne suis pas sûre de comprendre...",
      "Parlez un peu plus fort s'il vous plaît.",
      "Désolée, je ne comprends pas.",
      "Désolée, je ne sais pas quoi faire.",
      "Désolée, je n'ai pas compris.",
      "Je n'ai pas bien entendu, pouvez-vous répéter plus fort ?",
      "J'ai du mal comprendre.",
      "Merci d'articuler."
      // Phrases d'erreur
      );
    
    // TOUTES LES COMMANDES RETENUES
    $cmd_contexte = array();
    
    // DOTTI
    $d_icon = '';
    
    // LAMETRIC
    $lm_icon = 'i0';
    
    
    // COMMANDE
    $var_cmd = $scenario->getData('itemsCommande');
    $phrase = '%sujet%: %val%';
    $var_resultat = '';
    
    // SI TEMPERATURE
    if($var_cmd == 'temperature'){
      $phrase = "La température de %sujet% est de %val% degrés";
      $cmd_contexte = $cmd_temperatures;
      $lm_icon = 'a14592';
    }
    // SI APPELS
    if($var_cmd == 'appels'){
      $phrase = "Il y a eu %val% appels %sujet%";
      $cmd_contexte = $cmd_appels;
      $lm_icon = 'a1232';
    }
    // SI HOROSCOPE
    else if($var_cmd == 'horoscope'){
      $phrase = "%sujet%: %val%";
      $cmd_contexte = $cmd_horoscopes;
      $lm_icon = 'a10744';
    }
    // SI NEWS
    else if($var_cmd == 'news'){
      $phrase = "A la une %sujet%: %val%";
      $cmd_contexte = $cmd_news;
      $lm_icon = 'a1083';
    }
    
    // LISTE DES ITEMS
    $mots_nuls = array('lieu', 'partout', 'tout', 'toute', 'tous', 'celui', 'plait', 'radiateur');
    
    $var_info = strtolower($scenario->getData('itemsInfo'));// case insensitive
    $var_info = preg_replace('$(\b[a-z]{1,3}\b|[^a-z0-9 ])$', '', $var_info);// remove words of 3 or less characters and non a-z
    $var_info = str_replace($mots_tout, '', $var_info);// remove unwanted words
    $var_info = preg_replace('$\s+$', ' ' ,$var_info);// remove blank characters
    $var_info = trim($var_info);// shorten string at start/end
    
    
    foreach($cmd_contexte as $lieu => $item){
      $lieu = strval($lieu);
      // CONSTRUCTION LIEUX
      if(strpos($var_info, $lieu) !== false){
        $lieux .= '('.$lieu.')';
        $var_info = str_replace($lieu,'',$whitelist);
      }
    }
    
    // RESULTAT
    $compris = 0;
    
    // AJOUTER LES ITEMS DE LA LISTE
    if(strlen($lieux) > 0){
      // RECHERCHE
      foreach($cmd_contexte as $lieu => $item){
        if(strpos($lieux, '('.$lieu.')') !== false){
          $cmd = cmd::byString("#$item#");
          $strtr = array('%sujet%' => FormatInfo($lieu), '%val%' => FormatInfo($cmd->execCmd()));
          $var_resultat = strtr($phrase, $strtr);
          $compris = 1;
          continue;
        }
      }
    }
    
    // PAS COMPRIS
    if($compris === 0){
      shuffle($cmd_erreur);
      $var_resultat = $cmd_erreur[0];
      $scenario->setData('notifVoix', $var_resultat);
      $d_icon = 'question';
      $lm_icon = 'i1396';
    }
    // COMPRIS
    else {
      $scenario->setData('notifVoix', $var_resultat);
    }
    
    // DEBUG
    $scenario->setData('debug', $lieux);
    
    // RESULTAT
    $scenario->setData('itemsResultat', $var_resultat);
    
    // TELEGRAM
    $scenario->setData('notifTexte', $var_resultat);
    
    // DOTTI
    $scenario->setData('notifDotti', $d_icon);
    
    // LAMETRIC
    $scenario->setData('notifLametric', $lm_icon.'_'.$var_resultat.'_0');
    
    
    function FormatInfo($str){
      $replace = array(
        '.' => ',',
        '°' => '',
        'manques' => 'manqués',
        'loupes' => 'loupés',
        'rates' => 'ratés',
        'emis' => 'émis'
        );
      $str = strtr($str, $replace);
      return $str;
    }
A noter que vous aurez besoin de modifier le code pour ajouter vos propres équipements pour remonter la température. Normalement, c'est facile, il suffit de rajouter chaque commande (sans le '#') retournant l'info souhaitée dans le bon tableau.
Exemple pour les températures, c'est le tableau "$cmd_temperatures" à peupler.

Aussi j'utilise un Dotti et un LaMetric (le LaMetric affiche ce que dit la GH) avec une icone du contexte.

Pour chaque intéraction demandant une information, il faut modifier les variables comme ceci:
- Température : "itemsCommande" = "temperature" et "itemsInfo" = le tag utilisé
- Horoscope : "itemsCommande" = "horoscope" et "itemsInfo" = le tag utilisé
- News : "itemsCommande" = "news" et "itemsInfo" = le tag utilisé
- Appels : "itemsCommande" = "appels" et "itemsInfo" = le tag utilisé

Le résultat du scénario consiste à modifier les variables suivantes :
- notifVoix : La variable que la GH doit dire. Il faut donc créer un scénario qui se déclenche sur cette variable pour faire le TTS sur la GH de son contenu
- notifTexte : Idem que notifVoix dans le cas où vous souhaitez utiliser Telegram en même temps
- notifDotti : Le nom de l'icone à afficher (il faut que votre Dotti ait des icones avec les noms utilisés dans le scénario)
- notifLametric : L'icon ID, le texte et le son à jouer séparés par "_"

Voilà voilà... En espérant que ça puisse aider certains/certaines. ;)
Dernière édition par Sphax le 05 déc. 2017, 14:53, édité 3 fois.
Jeedom Smart + RFXCom + Clef Bluetooth UD100 + Philips Hue + Google Home + Dotti + LaMetric

Sphax
Timide
Messages : 171
Inscription : 24 sept. 2017, 16:30

Re: Google Home : Comment lui faire donner une information

Message par Sphax » 05 déc. 2017, 14:39

Avec ce système, vous n'avez plus besoin de créer 46 applets pour chaque température ou autres informations que la GH doit vous donner en réponse.

Vous avez :
- 1 applet par type d'info (pour que la demande soit plus naturelle)
- 1 interaction par type d'info
- 1 scénario pour tous les types d'info à retourner
- 2 variables (1 contient la type d'info, l'autre la précision de l'info demandée). Exemple: température / salon

Le script supprime tous les mots de 3 lettres ou moins et épargne les nombres.
Jeedom Smart + RFXCom + Clef Bluetooth UD100 + Philips Hue + Google Home + Dotti + LaMetric

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 10 févr. 2018, 22:27

Bonjour,
Une question, le script tu le colles ou ?
dans le scenario ? comment fais tu ?

bonne soiree

frederic

Nikoj
Timide
Messages : 58
Inscription : 19 mai 2017, 21:46
Localisation : 34

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Nikoj » 11 févr. 2018, 16:06

Bonjour Sphax,

Merci pour ton tutoriel, mais pareil que Fred60fr, je séche sur la partie code....

Ou faut il le modifier? que doit on copier, etc....
J'ai l'impression de toucher au but d'une recherche qui date de plus de 3 mois, faire dire à Google Home la température de mes 6 sondes Xiaomi.

Merci de ton aide

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 12 févr. 2018, 11:19

Hello,

Merci pour ce début de tuto. Idem, j'atteins quelque chose sur lequel je chercher une solution depuis pas mal de temps.
Où intégrer ce script? et je vais encore relire le tout, mais je ne suis pas certain de tout comprendre. Quoi mettre dans les scénarios? qui fait quoi?
Si tu pouvais apporter plus d'infos, tu serais mon sauveur ;)

Tonyo

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 12 févr. 2018, 11:31

D'après ce que je comprends, il faudrait mettre le code dans le scénario -> Ajouter un bloc -> Code
Mais je ne comprends pas encore comment tout ceci fonctionne

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 12 févr. 2018, 22:24

j'arrive à " je regarde le thermomètre" et plus rien

je cherche

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 12 févr. 2018, 22:24

j'arrive à " je regarde le thermomètre" et plus rien

je cherche

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 13 févr. 2018, 14:53

Pareil hier soir, mais je pense avoir avancé et que tout soit ok maintenant. J'attends le retour à la maison pour tester ça. Si je demande à Madame, le test ne sera pas probant ^^

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 13 févr. 2018, 23:16

C'est ok de mon côté de bout en bout.

Je peux aider si besoin ;)

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 14 févr. 2018, 08:20

Bonjour Tonyo
As tu fait beaucoup de modif dans le script ?
Pourrais tu publier tes modifications pour comparer avec le mien, ça fonctionne avec les températures ?



Envoyé de mon iPhone en utilisant Tapatalk

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 15 févr. 2018, 19:13

Bonsoir
Pourrais tu me dire ce que tu as changé au niveau du script ou de l installation pour que cela fonctionne ?
Merci


Envoyé de mon iPhone en utilisant Tapatalk

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 20 févr. 2018, 23:14

Salut fred,

J'ai bien reçu ton MP, je vais essayer de te répondre ici pour que ça profite à tous. Désolé pour le pavé texte, mais pas le temps de screen et d'aller chercher un uploader d'image ;)

Tout d'abord, le script à créer chez moi :
Ajouter une commande script :
Nom: Faire parler Google Home
Type script : Script
Type : Action / Message
Requête : créer un nouveau script dont voici le contenu. Attention a bien reprendre TON répertoire de sctream2chromecast et TON adresse IP de ton Google Home que tu auras trouvé via le liens fourni plus haut.

Code : Tout sélectionner

#!/bin/sh
sudo pico2wave -l fr-FR -w /tmp/MonMessage.wav "$*"
# on récupère la variable texte et on la transforme en fichier wave
sudo sox /tmp/MonMessage.wav -r 48k /tmp/MonMessage.mp3
  # on la passe en MP3 en débit 48 K pour réduire sa taille et on la stocke dans un répertoire temporaire - vous pouvez changer la valeur de 48 K
sudo python /root/stream2chromecast/stream2chromecast.py -devicename 192.168.0.26 /tmp/MonMessage.mp3
  # alors la on se trompe pas : /home/pi/stream2chromecast/stream2chromecast.py doit bien correspondre à votre répertoire
  # -devicename 192.168.1.26 : remplacer l'IP par la votre .....
  # sudo python : on exécute le code python avec les doits sudo
Ensuit au niveau des scénarios, j'en ai 2:

Le premier concerne la notification TTS vers le Google Home :
Dans la création du scénario, on créé un variable notifVoix via l'onglet en haut "variables"
Ce scénario est en mode provoqué par l'événement #variable(notifVoix)#
dans le déroulement du scénario on met une action qui correspond au script avec en message variable(notifVoix). Sans les #, sinon ça ne fonctionne pas.
Terminé pour le scenario de notification.

Le second scénario correspond à la remonté d'infos.
On créé également 2 variables : itemsCommande et itemsInfo
Le scénario est en mode provoqué par l'événement #variable(itemsInfo)#
Dans le déroulement du scénario, on choisis CODE et voici son contenu chez moi. A savoir que je remonte températures et humidités. Dans les tableaux au début (array), il faut simplement aller chercher ici les équipements souhaités. Ceux qui font référence aux températures et aux humidités.

Code : Tout sélectionner

// TEMPERATURES
$cmd_temperatures = array(
  'salon' => '[Rez De Chaussée][Netatmo Maison][Température]',
  'chambre' => '[Chambre Parents][Chambre Parents][Température]',
  'garage' => '[Garage][Garage][Température]',
  'cabinet' => '[Cabinet][Cabinet][Température]',
  'thermostat' => '[Rez De Chaussée][Netatmo Maison][Température]',
  'exterieur' => '[Extérieur][Extérieur][Température]',
  // ...
  // Info températures des différents équipements
  );
  
// HUMIDITES
$cmd_humidites = array(
  'salon' => '[Salon][Salon][Humidité]',
  'chambre' => '[Chambre Parents][Chambre Parents][Humidité]',
  'garage' => '[Garage][Garage][Humidité]',
  'cabinet' => '[Cabinet][Cabinet][Humidité]',
  'exterieur' => '[Extérieur][Extérieur][Humidité]',
  // ...
  // Info humidités des différents équipements
  );


// PAS COMPRIS
$cmd_erreur = array(
  "J'ai un doute, pouvez-vous répéter ?",
  "Je ne suis pas sûre de comprendre...",
  "Parlez un peu plus fort s'il vous plaît.",
  "Désolée, je ne comprends pas.",
  "Désolée, je ne sais pas quoi faire.",
  "Désolée, je n'ai pas compris.",
  "Je n'ai pas bien entendu, pouvez-vous répéter plus fort ?",
  "J'ai du mal comprendre.",
  "Merci d'articuler."
  // Phrases d'erreur
  );

// TOUTES LES COMMANDES RETENUES
$cmd_contexte = array();

// COMMANDE
$var_cmd = $scenario->getData('itemsCommande');
$phrase = '%sujet%: %val%';
$var_resultat = '';

// SI TEMPERATURE
if($var_cmd == 'temperature'){
  $phrase = "La température de %sujet% est de %val% degrés";
  $cmd_contexte = $cmd_temperatures;
}

// SI HUMIDITE
if($var_cmd == 'humidite'){
  $phrase = "Le pourcentage d'humidité de %sujet% est de %val% %";
  $cmd_contexte = $cmd_humidites;
}

// LISTE DES ITEMS
$mots_nuls = array('lieu', 'partout', 'tout', 'toute', 'tous', 'celui', 'plait', 'radiateur');

$var_info = strtolower($scenario->getData('itemsInfo'));// case insensitive
$var_info = preg_replace('$(\b[a-z]{1,3}\b|[^a-z0-9 ])$', '', $var_info);// remove words of 3 or less characters and non a-z
$var_info = str_replace($mots_tout, '', $var_info);// remove unwanted words
$var_info = preg_replace('$\s+$', ' ' ,$var_info);// remove blank characters
$var_info = trim($var_info);// shorten string at start/end


foreach($cmd_contexte as $lieu => $item){
  $lieu = strval($lieu);
  // CONSTRUCTION LIEUX
  if(strpos($var_info, $lieu) !== false){
    $lieux .= '('.$lieu.')';
    $var_info = str_replace($lieu,'',$whitelist);
  }
}

// RESULTAT
$compris = 0;

// AJOUTER LES ITEMS DE LA LISTE
if(strlen($lieux) > 0){
  // RECHERCHE
  foreach($cmd_contexte as $lieu => $item){
    if(strpos($lieux, '('.$lieu.')') !== false){
      $cmd = cmd::byString("#$item#");
      $strtr = array('%sujet%' => FormatInfo($lieu), '%val%' => FormatInfo($cmd->execCmd()));
      $var_resultat = strtr($phrase, $strtr);
      $compris = 1;
      continue;
    }
  }
}

// PAS COMPRIS
if($compris === 0){
  shuffle($cmd_erreur);
  $var_resultat = $cmd_erreur[0];
  $scenario->setData('notifVoix', $var_resultat);
  $d_icon = 'question';
}
// COMPRIS
else {
  $scenario->setData('notifVoix', $var_resultat);
}


function FormatInfo($str){
  $replace = array(
    '.' => ',',
    '°' => '',
    'manques' => 'manqués',
    'loupes' => 'loupés',
    'rates' => 'ratés',
    'emis' => 'émis'
    );
  $str = strtr($str, $replace);
  return $str;
}
Toujours sur Jeedom, la partie interaction.
Créer une interaction par type d'info (ici l'exemple pour la température) avec les infos suivantes :
Demande : temperature [dans|dans le|du|dans la|à la|au|] #lieu#
Synonyme : temperature=temperature,quelle température,quelle est la température,combien il fait,combien il y a,il fait combien,il y a combien,la température, est-ce qu'il fait chaud, est-ce qu'il fait froid
Dans l'onglet Actions, on ajoute :
variable Nom : itemsCommande Valeur : temperature
variable Nom : itemsInfo Valeur : #lieu#


La partie interaction via IFTTT.
Tu créés un new applet avec phrase + ingrédient texte
Quans tu demandes : Quelle est la température $
Alors éxécute une webrequest via WebHooks : http://ADRESSE_IP_EXTERNE_DE_TON_JEEDOM/core/api/jeeApi.php?apikey=CLE_API_JEEDOM&type=interact&query=temperature%20de%20 {{TextField}}&utf8=1


Je n'ai pas le temps de te faire quelque chose de plus propre pour ce soir, mais tu as déjà les infos nécessaires à aller au bout.

Au besoin, tu me contactes et on avance ensemble.

Tonyo

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 21 févr. 2018, 22:02

Bonsoir,
merci pour ces precisions, il me reste un probleme

ma variable notifvoix est bien remplie, mais pas de son du googfle home.
en fait j ai un soucis a ce niveau :

Le premier concerne la notification TTS vers le Google Home :
Dans la création du scénario, on créé un variable notifVoix via l'onglet en haut "variables"
Ce scénario est en mode provoqué par l'événement #variable(notifVoix)#
dans le déroulement du scénario on met une action qui correspond au script avec en message variable(notifVoix). Sans les #, sinon ça ne fonctionne pas.
Terminé pour le scenario de notification.

Je ne comprends pas "une action qui correspond au script avec en message variable(notifvoix)

bonne soiree

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 21 févr. 2018, 22:07

Bonsoir,
merci pour ces precisions, il me reste un probleme

ma variable notifvoix est bien remplie, mais pas de son du googfle home.
en fait j ai un soucis a ce niveau :

Le premier concerne la notification TTS vers le Google Home :
Dans la création du scénario, on créé un variable notifVoix via l'onglet en haut "variables"
Ce scénario est en mode provoqué par l'événement #variable(notifVoix)#
dans le déroulement du scénario on met une action qui correspond au script avec en message variable(notifVoix). Sans les #, sinon ça ne fonctionne pas.
Terminé pour le scenario de notification.

Je ne comprends pas "une action qui correspond au script avec en message variable(notifvoix)

voici le log du scenario

[2018-02-21 21:52:37][SCENARIO] Start : 'Scenario execute sur evenement : #variable(notifVoix)#'.
[2018-02-21 21:52:37][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-02-21 21:52:37][SCENARIO] [Erreur] Aucune commande trouvée pour variable(notifVoix)
[2018-02-21 21:52:37][SCENARIO] Fin correcte du scénario


bonne soiree

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 21 févr. 2018, 22:32

apres recherche dans les logs j ai

------------------------------------
[2018-02-21 22:30:07][SCENARIO] Start : 'Scenario execute sur evenement : #variable(notifVoix)#'.
[2018-02-21 22:30:07][SCENARIO] Exécution du sous-élément de type [action] : action
[2018-02-21 22:30:07][SCENARIO] Exécution de la commande [maison][faire parler GH][GHNotif] avec comme option(s) :
Array
(
[background] => 0
[title] =>
[message] => La température de sejour est de 19,9 degrés
)
[2018-02-21 22:30:12][SCENARIO] Fin correcte du scénario


mais par contre le google home s'arrete a "je regarde le thermometre"

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 22 févr. 2018, 08:43

Ok. Je pense que c'est au niveau de la configuration du stream2chromcast que ça doit buger.

Es-tu ok avec ce paramétrage déjà? viewtopic.php?f=59&t=28590#p498976

Jai du passer sur ma freebox, mon Google Home en DHCP statique afin qu'il se voit attribué toujours la même adresse. Adresse qu'il faut bien paramétrer ainsi que le chemin d'accès à stream2chromecast dans le script GoogleHomeTTS.
C'est ok à ce niveau? Si oui, et si le script est activé et visible. tu devrais avoir sur le dashboard un cadre GoogleHomeTTS avec titre et message. En remplissant message et en validant ton GoogleHome devrait parler ce que tu as écris. Il faut, je pense, commencer par regler cet aspect.

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 22 févr. 2018, 13:59

je test tout cela ce soir ...

fred60fr
Timide
Messages : 29
Inscription : 15 août 2014, 16:51

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par fred60fr » 24 févr. 2018, 10:45

Sur le Dashboard quand je mets un texte dans la partie message, j ai mon GH qui fait un son genre « bling » puis plus rien. Et impossible de refaire un test.
Obligé de désactiver le script et de le réactiver. Et idem.
Pour moi il n arrive pas à lire le mp3 et il ne s arrête jamais.


Envoyé de mon iPhone en utilisant Tapatalk

Tonyo08
Timide
Messages : 31
Inscription : 20 nov. 2016, 07:53
Localisation : Renwez, Ardennes

Re: [Tuto] Google Home : Comment lui faire donner une information

Message par Tonyo08 » 24 févr. 2018, 15:57

Ok. On voit déjà où ça coince. Pour moi, il fait aussi le "bling" mais il enchaine avec le mp3.

As-tu essayé de mettre un mp3 du genre /tmp/test.mp3 , de te mettre dans le dossier où est situé stream2chromecast (pour mon cas : /root/stream2chromecast) et d'éxécuter en SSH directement dans Jeedom la commande :

sudo python stream2chromecast.py -devicename IP_DE_TON_GOOGLE_HOME /tmp/test.mp3

Toujours en ssh sous root, tu as bien la commande pico2wave de disponible? La c'est comme si tu envoyait bien qqch mais que le mp3 n'était pas généré.

Regarde aussisous /tmp si tu as bien un MonMessage.mp3 et MonMessage.wav. Si ce n'est pas le cas, ça veut dire que ton audio n'est même pas généré. Il faut alors qu'on regarde plus haut que le moment où il envoi. peut-être que l'envoi est ok mais qu'il n'envoi tout simplement rien et que de ce fait, il plante ...

Dernière chose, je ne sais pas si ça a une importance (mais il se pourrait bien que c'est ce qui génère le wav à transmettre), as-tu installé le plugin "PlayTTS" ? De mémoire, seul son installation et son activation + dépendances sont nécessaires (pas d'équipement à ajouter).


Voila de quoi avancer sur tes tests si toutes ces infos n'ont pas déjà été testées ;)

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités