Closed rick443 closed 5 years ago
Le volume est celui défini par la musique sur ton Google Home puisque Notifier envoie l'équivalent d'un fichier son au Google Home.
Merci pour ta réponse, mais contrairement à un téléphone où l'on peut régler le volume du média, de la voix, de la sonnerie du tel, notification et volume général, je constate que sur la google home, il n'y a qu'un seul type de volume : le volume général.... Et donc cela ne règle pas mon problème car quand je donne un ordre à la GH, celle-ci me répond dans un premier temps avec un volume correct (retour de IFTTT), puis execute ton script pour faire parler la GH...et c'est à ce moment que le volume est bien plus faible.... Si tu as une idée ? Merci Passe de bonnes fêtes.
Le volume de la voix est censé être le même que celui de la musique, car en effet Google ne permet pas de modifier individuellement le volume. Quand tu demandes de la musique sur Deezer ou Spotify, le volume doit être aussi fort que lorsque le plugin fait parler le Google Home. Il n'y a pas de différence...
La possible solution serait que le plugin modifie le volume avant de parler puis le remette à son niveau d'origine. Cela devrait être possible mais requiert du développement, donc du temps. Je regarderai ces prochaines semaines si je peux modifier le plugin dans ce sens.
Oui, cela m’intéresserait. Merci pour ce temps consacré. Cdlt.
Voilà j'ai mis à jour le plugin !
Je t'invite donc à suivre les étapes suivantes :
assistant-plugins
configuration.json
pour utiliser le nouveau paramètre volume
: https://aymkdn.github.io/assistant-plugins/?plugin=notifier#param-tre-volume-optionnel-assistant-plugins
assistant-notifier
devrait être la 2.1.6
[assistant] Chargement du plugin 'notifier' (v2.1.6)
Merci Aymeric, Juste pour info, (je débute en javascript, et donc pas trop a l'aise avec le code), pour appeler ton plugin depuis mon plugin, voici ce que j'ai écrit ::
var googlehome = require('assistant-notifier'); googlehome.DireTexte(data);
et pour que cela fonctionne, j'ai été obligé de modifier le tien en remplaçant
"AssistantNotifier.prototype.action = function(text) {" par "exports.DireTexte = function(text) {"
j'ai bien compris que ce n'est pas comme cela que l'on doit procéder....mais ça fonctionne ! je ne vois pas comment appeler ta fonction car elle n'est pas "exportée"... tu parles dans ton tuto d'utiliser "this.plugins.notifier("message à faire dire")... bah je ne vois pas comment faire.... quand j'intègre this.plugins.notifier("message à faire dire") dans mon plugin, ça plante.
comment aurais tu écrit mon plugin pour éviter de toucher au tien ? Si tu pouvais m'écrire un petit exemple, je te remercie.
Puis-je avoir le code complet de ton plugin ?
var fs = require('fs'); var googlehome = require('assistant-notifier'); //googlehome.DireTexte("Bonjour, je suis Google Home");
fs.readFile('D:/Assistant_Vocal/assistant-plugins/node_modules/assistant-notifier/Message.txt', {encoding: 'utf8'}, function (err, data) { if (err) return console.log('fichier erreur !'); console.log(data); googlehome.DireTexte(data); });
ca ouvre un fichier texte qui contient le texte à lire .....
Ce n'est pas du tout un plugin alors.... Pour créer un vrai plugin : https://github.com/Aymkdn/assistant-template
Quel est ton but ? Pourquoi appeler le plugin de cette façon ?
Y'a une solution que j'avais proposée pour appeler notifier de façon indépendante : https://github.com/Aymkdn/assistant-plugins/issues/195 mais cette version n'est pas à jour puisqu'elle ne contient pas les changements liés au volume.
oui, j'ai lu #195.... tu dis que c'est une adaptation de ton plugin...ok je ne vois pas trop ce qui diffère des deux !
le #195 me parait plus simple dans la compréhension et son utilisation... on l'appelle avec node notifier.js "texte à dire" mais comment fais tu pour executer "this.plugins.notifier("message à faire dire") dans un nouveau fichier *.js ?
Effectivement le #195 me suffit, mais pas de gestion de volume !
en fait je cherche à écrire un nouveau fichier js très simple, qui appelle ta fonction notifier. car elle ne fonctionne pas en l'appelant avec node notifier.js "texte à dire". je pensais qu'il suffisait de mettre "this.plugins.notifier("message à faire dire") dans mon nouveau fichier et le tour était joué.
je ne vois pas trop ce qui diffère des deux !
La structure diffère et y'a du code en plus. Je peux le refaire en prendrant en compte le volume. Mais encore une fois, ça demande du temps.
Pour utiliser this.plugins.notifier
il te faut créer un vrai plugin comme expliqué dans la template : https://github.com/Aymkdn/assistant-template
Puis-je savoir ce que contient ton fichier "Message.txt" ? Et pourquoi as-tu besoin de lire son contenu ? Dans quelles circonstances ?
Je programme ma domotique en vb. ansi, pour faire parler la GH, j'exporte les messages dans un fichier MESSAGE.txt (dans ce fichier, il y a ce que doit dire la GH), comme par exemple Bonjour.....
Ensuite, une fois le fichier message.txt créé, mon programme vb execute par une commande le fichier js que j'ai créé (vois ci dessous)
var fs = require('fs'); var googlehome = require('assistant-notifier');
fs.readFile('D:/Assistant_Vocal/assistant-plugins/node_modules/assistant-notifier/Message.txt', {encoding: 'utf8'}, function (err, data) { if (err) return console.log('fichier erreur !'); console.log(data); googlehome.DireTexte(data); });
Ce fichier js charge dans DATA la phrase contenue dans MESSAGE.txt et l'envoie a ton plugin qui se charge de faire parler la GH.
voilà !
Exemple, je demande à la GH de passer l'aspirateur , voici ce qui se passe
google assistant ==> IFTTT ==> Pushbullet ==> Plugin launch ==> active mon prog en VB ==> ordre donné à l'apirateur et création du message.txt (aspi en cours) ==> execution de ton plugin. ==> la GH parle et annonce que l'aspi est en cours.
idem pour alarme, porte de garage, etc...etc....
Je ne me contente pas du retour de la réponse de IFTTT... car l'action n'a peut être pas été jusqu'au bout pour une raison X. Mon programme en VB contrôle que l'action se réalise et envoie une confirmation vocale via ton plugin.
Je m'étonne des possibilités qu'offre le Javascript.... Je m'y interesse un peu plus... donc je me forme.... ca prend du temps.
L'idéal serait qu'au lieu de faire un programme en VB, tu fasses un plugin pour contrôler l'aspirateur, qui pourrait être ensuite partagé avec la communauté, et du coup tu pourrais utiliser this.plugins.notifier
et tout se ferait dans le même écosystème.
Y'a quoi dans ton programme VB exactement ? Que je regarde sa complexité.
Tu m'as pas dit à un moment que tu utilisais Jeedom, non ? Il pourrait être intéressant aussi de développer un plugin qui interagirait avec Jeedom, mais je n'ai jamais utilisé ce système... donc faudrait que j'explore et teste.
Enfin, une solution que je trouve moins appropriée serait de faire une version exécutable d'assistant-plugins
(avec une commande du genre node execute.js NomPlugin Paramètres
).
Toutes ces solutions vont demander du temps.
Non, je n'utilise pas d'interface Jeedom. Pour gérer toute ma domotique (depuis extérieur également), j'ai un serveur WAMP dédié... Le PHP me permet ainsi de piloter mes applis VB qui gèrent le chauffage, l'alarme, l'aspirateur, etc.... c'est le PC qui gère les relais.
Avant d'utiliser assistant-plugin, j'utilisais SARAH... mais le système a atteint ses limites....et l'IFTTT/pushbullet sont pour moi une façon d'étendre les possibilités de la GH. d'où mon orientation vers NodeJS. La communauté m'a permis d'ajouter de nouvelles fonctionnalités.
Je viens de mettre en ligne la version 2.0.6 d'assistant-plugins
qui permet une exécution depuis une ligne de commande : https://github.com/Aymkdn/assistant-plugins/wiki/Utiliser-le-programme-en-ligne-de-commande
Cette issue a été automatiquement fermée car il n'y a eu aucune réponse complémentaire de la part de l'auteur. N'hésite pas à reposter ici si tu as d'autres questions.
Bonjour, je reviens sur ce sujet... j'exploite maintenant ce plugin via la ligne de commande. node ./node_modules/assistant-plugins/assistant-cli.js "notifier_ceci est un message de test"
Ca fonctionne bien..juste un p'tit problème, le texte est limité à 200 caractères.... au delà, on a un message d'erreur...
Peux tu augmenter cela ? (nvarchar(200) ==> ntexte() ) ?
Merci
Non, c'est une limitation de la voix par défaut. Tu peux tenter avec l'autre voix (cf https://aymkdn.github.io/assistant-plugins/?plugin=notifier)
Cette issue a été automatiquement fermée car il n'y a eu aucune réponse complémentaire de la part de l'auteur. N'hésite pas à reposter ici si tu as d'autres questions.
Bonjour, si je fais lire un texte qui contient un caractère avec un accent, ça pose problème... exemple: "à bientôt" le texte énoncé est incompréhensible.... Lors de l'exécution, le texte (dans NodeJS) est transformé en "O bientet".
As tu une solution ?
Cdlt.
Quand tu utilises la ligne de commande ? Tu as sûrement un problème d'encodage de caractères. C'est souvent merdique à gérer ça... Encoder en UTF-8 par exemple ? Je ne sais pas... Il va falloir que tu te débrouilles.
Bonjour, j'utilise ce plugin... il fonctionne bien, par contre on ne peut pas régler le volume de la notification...en effet, le volume est inférieur à celui des notifications provenant d'IFTTT.
Merci pour votre aide.