Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[DEV] Plugin Alexa-Api en BETA uniquement

Sous forum pour les plugins Dialogflow et Google Assistant
dpm62980
Timide
Messages : 97
Inscription : 06 mars 2015, 21:01

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par dpm62980 » 20 févr. 2019, 10:18

Hello @jbecker,

J'ai fait une remarque sur le problème de @fredester (enchaînement de commandes speak) qui se présente différemment pour moi.
Je pense que le plus simple pour moi, et pour le moment c'est d'insérer un "sleep" ou de faire une concaténation sans dépasser 250 caractères.

Ce matin , j'ai réinstallé le plugin en branche master et je me suis fait avoir (pas de template-scenario).
C'est vrai que tu n'as pas annoncé la maj, donc mea culpa.

Comme prochaines évolutions, j'aimerais bien avoir la possibilité d'un "play" mp3 ou autre, la gestion des routines (activer / désactiver / exécuter).
C'est déjà super, mais là ça deviendrait ENORME.
Encore merci à toi et @sigalou.

Kyoshi
Timide
Messages : 444
Inscription : 04 mai 2018, 14:05

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par Kyoshi » 20 févr. 2019, 12:31

dpm62980 a écrit :
20 févr. 2019, 10:18
Comme prochaines évolutions, j'aimerais bien avoir la possibilité d'un "play" mp3 ou autre, la gestion des routines (activer / désactiver / exécuter).

Cela permettrait de faire sonner une pseudo alarme.
Et ce serait vraiment pas mal dans certaines situations.

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par Didier3L » 20 févr. 2019, 18:01

gpga a écrit :
19 févr. 2019, 22:10
Après reinstallation complet du plugin, cela refonctionne,...


En fait non, au matin cela ne fonctionne plus, le demon est tombé, et plus d'acces à Alexa - même message que précedement.

C'est comme si le port 3457 se verouillait au bout d'un moment .. que peux t'il se passer ?
Bonjour
je suis dans la même situation
Echec de la requête HTTP : http://192.168.1.10:3456/speak?text=bon ... 11817413LF cURL error : Failed to connect to 192.168.1.10 port 3456: Connection refused

Tous les jours, obligé de refaire la procédure Cookies et redémarrage du Démon

Code : Tout sélectionner

[2019-02-20 12:38:09][INFO] : Arrêt du service alexaapi
[2019-02-20 12:38:09][INFO] : Lancement du démon alexaapi
[2019-02-20 12:38:09][DEBUG] : Lancement démon alexaapi : nice -n 19 nodejs /var/www/html/plugins/alexaapi/resources/alexaapi.js
[2019-02-20 12:38:09][INFO] : Démon alexaapi lancé
[2019-02-20 12:38:39][DEBUG] : buildSpeakRequest
[2019-02-20 12:38:39][INFO] : Request : http://192.168.1.10:3456/speak?text=bonjour&device=G090LF11817413LF
[2019-02-20 12:38:39][DEBUG] : Result : {}
[2019-02-20 17:54:03][DEBUG] : buildSpeakRequest
[2019-02-20 17:54:03][INFO] : Request : http://192.168.1.10:3456/speak?text=bonjour&device=G090LF11817413LF
[2019-02-20 17:54:04][ERROR] : Erreur exécution de la commande [Communication][Echo du sous sol][Speak] : Echec de la requête HTTP : http://192.168.1.10:3456/speak?text=bonjour&device=G090LF11817413LF cURL error : Failed to connect to 192.168.1.10 port 3456: Connection refused

Mes versions
Node v8.11.2
NPM 5.6.0
Dernière édition par Didier3L le 20 févr. 2019, 18:50, édité 2 fois.
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

dpm62980
Timide
Messages : 97
Inscription : 06 mars 2015, 21:01

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par dpm62980 » 20 févr. 2019, 18:48

Hello @jbecker,

Il subsiste un problème de prononciation en mode script.
Dans les logs, "c'est l'été" apparaît comme ceci "cest lété", d'où la prononciation curieuse.
Pour la même phrase en mode scénario ou directement dans le browser, c'est ok.
SS1.JPG
SS1.JPG (16.77 Kio) Consulté 42534 fois

Didier3L
Actif
Messages : 1387
Inscription : 01 mai 2016, 13:40

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par Didier3L » 20 févr. 2019, 18:57

Nebz a écrit :
20 févr. 2019, 09:40
jbecker a écrit :
20 févr. 2019, 08:18
gpga a écrit :
20 févr. 2019, 07:58
Ci joint le log alexaapi_node
Vu l'erreur, je ne comprend même pas comment ça a pu fonctionner l'espace d'un instant. :o
Je pense que ta version de nodejs se fait vieille.

Je te propose la lecture du message: viewtopic.php?f=191&t=40186&start=360#p698735
Si l'une des solutions fonctionne, n'hésite pas à nous faire un retour afin qu'on sache comment mettre à jour le script d'installation pour les prochains.
Hello,
concernant le script d'install que j'ai proposé, il faut remarquer que celui-ci ne répare pas nodeJS (puisqu'on ne sait pas detecter que celui-ci est KO de manière convenable), mais effectue une mise à jour de la version vers une 8 si ce n'est pas le cas et une installe propre s'il n'était pas présent. Il permet également d'installer nodejs sur des mini+ ou vieux raspberry (en passant par une version officielle et pas une exotique comme d'autres plugins) , ce qui n'est pas négligeable ;). Concernant les réparations, je lance cette méthode via un bouton dans la configuration.php (appel ajax) :

Code : Tout sélectionner

public static function reinstallNodeJS() {
		$pluginMyPlugin = plugin::byId('myPlugin');
		log::add('myPlugin', 'info', 'Suppression du Code NodeJS');
		$cmd = system::getCmdSudo() . 'rm -rf '.dirname(__FILE__) . '/../../resources/node_modules &>/dev/null';
		log::add('myPlugin', 'info', 'Suppression de NodeJS');
		$cmd = system::getCmdSudo() . 'apt-get -y --purge autoremove nodejs npm';
		exec($cmd);
		log::add('myPlugin', 'info', 'Réinstallation des dependances');
		$pluginMyPlugin->dependancy_install();
		
		return true;
	}	
Capture.PNG

Capture2.PNG

je peux faire un PR si tu veux
Bonjour Nebz 8-)
Ayant un Jeedom en mode Docker sur Synology, je peux également remplacer le script d'origine par le tiens :?:
Mes versions
Node v8.11.2
NPM 5.6.0
Synology DS216+ / DSM 6.2 / Docker / MariaDB 5
Conteneur : jeedom/Jeedom:master en mode réseau Host - Version Jeedom V3.3
Protocole : MyHOME Play Zigbee/ Xiaomi Aqara / HomeBridge / BLEA

Mon matériel | Tuto MyHOME en Vidéo | Documentation

Avatar de l’utilisateur
jbecker
Timide
Messages : 52
Inscription : 27 janv. 2019, 17:46

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par jbecker » 20 févr. 2019, 19:41

dpm62980 a écrit :
20 févr. 2019, 18:48
Hello @jbecker,

Il subsiste un problème de prononciation en mode script.
Dans les logs, "c'est l'été" apparaît comme ceci "cest lété", d'où la prononciation curieuse.
Pour la même phrase en mode scénario ou directement dans le browser, c'est ok.

SS1.JPG
En mode script, tu es responsable d'écrire une URL valide.
L'URL que tu présentes n'est pas valide.
Essaie: https://meyerweb.com/eric/tools/dencoder/

Avatar de l’utilisateur
jbecker
Timide
Messages : 52
Inscription : 27 janv. 2019, 17:46

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par jbecker » 20 févr. 2019, 19:49

Didier3L a écrit :
20 févr. 2019, 18:01
je suis dans la même situation
Echec de la requête HTTP : http://192.168.1.10:3456/speak?text=bon ... 11817413LF cURL error : Failed to connect to 192.168.1.10 port 3456: Connection refused
Les logs alexaapi_node me serait plus utile. C'est le fichier de log utilisé par le deamon.
Si il s'est arrêté, nous devrions y trouver des messages intéressant.

En tout cas, si le deamon vient à tomber ... je pense que nous sommes tous d'accord pour dire qu'il devrait redémarrer de lui même. D'où l'option "Gestion automatique" dans Jeedom. Voilà notre prochaine priorité: Redémarrage automatique du deamon.

Je viens personnellement d'avoir le problème suivant:

Code : Tout sélectionner

Alexa-API - New cookie saved to:/var/www/html/plugins/alexaapi/resources/data/alexa-cookie.json
events.js:183
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::3456
at Server.setupListenHandle [as _listen2] (net.js:1360:14)
at listenInCluster (net.js:1401:12)
at Server.listen (net.js:1485:7)
at Function.listen (/var/www/html/plugins/alexaapi/resources/node_modules/express/lib/application.js:618:24)
at fs.writeFile (/var/www/html/plugins/alexaapi/resources/alexaapi.js:287:22)
at FSReqWrap.oncomplete (fs.js:135:15)

Avatar de l’utilisateur
jbecker
Timide
Messages : 52
Inscription : 27 janv. 2019, 17:46

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par jbecker » 20 févr. 2019, 21:38

Mise à jour Github (branche master):
:arrow: Fusion de la branche template-scenario. Il vous sera plus facile d'utiliser les commandes lors de la création de scénario.
:arrow: Bugfix, le serveur plantait après 24h ... c'était dû au rafraîchissement automatique du cookie qui lançait par la même occasion la création du serveur ... Bref, c'était pas possible vu qu'il tournait déjà.

Avatar de l’utilisateur
fredester
Timide
Messages : 90
Inscription : 04 oct. 2014, 09:06

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par fredester » 21 févr. 2019, 07:12

Nebz a écrit :
20 févr. 2019, 09:58
fredester a écrit :
20 févr. 2019, 09:15
En attendant, à défaut d'avoir mieux, tu peux mettre un délai ou mettre le tout dans la même instruction :-(
J'ai un vague souvenir que dans TTSWebServer on était limité par la longueur du texte à envoyer (une limite du serveur de synthèse vocal utilisé). Du coup, on était un peu obligé de faire attention à ne trop allonger les phrases. A priori ça ne me gène pas de concaténer.

As-tu connaissance d'une longueur max de texte à envoyer à Alexa ? (juste de la curiosité, car après tout si mes commandes concaténées passent, tout va bien !)
je trouve ca dans le code de la lib : "text too long, limit are 250 characters"

Merci, c'est bon à savoir !
Jeedom 3.3.18 ESXi - PC BRIX GB-BXBT-1900 - Debian Stretch

Avatar de l’utilisateur
fredester
Timide
Messages : 90
Inscription : 04 oct. 2014, 09:06

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par fredester » 21 févr. 2019, 07:21

Kyoshi a écrit :
20 févr. 2019, 12:31
dpm62980 a écrit :
20 févr. 2019, 10:18
Comme prochaines évolutions, j'aimerais bien avoir la possibilité d'un "play" mp3 ou autre, la gestion des routines (activer / désactiver / exécuter).

Cela permettrait de faire sonner une pseudo alarme.
Et ce serait vraiment pas mal dans certaines situations.

Je plussois ! J'hésitais à le demander :)

Pour certaines annonces vocales ou pour confirmer l'activation de l'alarme, je fais jouer un jingle aux enceintes Sonos (un fichier mp3). Mais dernièrement la gestion des Sonos depuis Jeedom, c'est juste instable... Si c'est Alexa qui peut le faire, du coup cela multiplierait le nombre d’enceintes accessibles qu'elles soient Sonos ou pas
Jeedom 3.3.18 ESXi - PC BRIX GB-BXBT-1900 - Debian Stretch

HadesDT
Timide
Messages : 204
Inscription : 29 janv. 2018, 08:00

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par HadesDT » 21 févr. 2019, 08:41

jbecker a écrit :
20 févr. 2019, 21:38
Mise à jour Github (branche master):
:arrow: Fusion de la branche template-scenario. Il vous sera plus facile d'utiliser les commandes lors de la création de scénario.
:arrow: Bugfix, le serveur plantait après 24h ... c'était dû au rafraîchissement automatique du cookie qui lançait par la même occasion la création du serveur ... Bref, c'était pas possible vu qu'il tournait déjà.
Installé, fonctionne parfaitement, j'avais effectivement remarqué le bug toutes les 24h. Super boulot !

Avatar de l’utilisateur
fredester
Timide
Messages : 90
Inscription : 04 oct. 2014, 09:06

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par fredester » 21 févr. 2019, 09:06

dpm62980 a écrit :
20 févr. 2019, 10:03
fredester a écrit :
20 févr. 2019, 08:14
Toujours dans la perspective de faire d'Alexaapi le système vocal de notre maison, j'ai essayé des commandes que je faisais passer par TTSWebServer. Même les commandes complexes comme la première ci-dessous sont parfaitement prononcées :


Capture.PNG


Par contre, j'ai remarqué que si ces deux commandes sont OK de façon indépendantes, les avoir dans un même scénario (comme ci-dessus) fait que la 2ème n'est pas dite. Difficile de mettre une pause entre les deux car on ne peut pas prévoir le temps que va prendre la 1ère phrase lorsqu'il y a des variables qui constituent la phrase. J'imagine qu'Alexa ne prend pas en compte la 2ème phrase lorsqu'elle est en train d'en traiter une ?

@jbecker as-tu une astuce pour ça ou est-ce que cela nécessiterait de modifier le code du plugin ?
Hello fredester,
je me suis livré à un petit test ce matin.
En ce qui me concerne les 2 notifications sont toujours bien énoncées , mais pas toujours dans l'ordre chronologique.
Dans les logs, on voit que bien que parfois c'est dans l'ordre et parfois non, mais il a toujours les 2 ???
Est-ce que le hardware (matériel, réseau, ...) pourrait aussi avoir une incidence sur le résultat ???

ss2.JPG

Hello dpm62980,

je viens de tester le plugin mis à jour hier soir sur la branche master.

Sur un Echo, l'ordre des commandes semble bien respecté (sur 4-5 essais ) et la seule condition pour entendre entièrement la 1ère phrase est d'avoir une pause qui couvre au moins sa durée.

Sur une Sonos One, l'ordre n'est pas respecté... mais j'entends les deux phrases qui parfois s’enchaînent bien. Et pas besoin de pause !
Ça se complique... Sur quel type d'enceinte as-tu fait tes essais ?

Humm, il serait intéressant d'avoir plus de retours à ce sujet par d'autres utilisateurs sur différents équipements
Pour le moment de mon côté, le plus simple/fiable est comme l'a suggéré jbecker de concaténer.
Jeedom 3.3.18 ESXi - PC BRIX GB-BXBT-1900 - Debian Stretch

dpm62980
Timide
Messages : 97
Inscription : 06 mars 2015, 21:01

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par dpm62980 » 21 févr. 2019, 09:10

jbecker a écrit :
20 févr. 2019, 19:41
dpm62980 a écrit :
20 févr. 2019, 18:48
Hello @jbecker,

Il subsiste un problème de prononciation en mode script.
Dans les logs, "c'est l'été" apparaît comme ceci "cest lété", d'où la prononciation curieuse.
Pour la même phrase en mode scénario ou directement dans le browser, c'est ok.

SS1.JPG
En mode script, tu es responsable d'écrire une URL valide.
L'URL que tu présentes n'est pas valide.
Essaie: https://meyerweb.com/eric/tools/dencoder/
Je suis désolé, mais je ne comprends pas pourquoi l'url n'est pas valide.
En l'utilisant, seuls les accents posent problème.
Je vais contourner en utilisant des scenarios, mais j'aime comprendre et là ?

HadesDT
Timide
Messages : 204
Inscription : 29 janv. 2018, 08:00

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par HadesDT » 21 févr. 2019, 09:39

dpm62980 a écrit :
21 févr. 2019, 09:10
jbecker a écrit :
20 févr. 2019, 19:41
dpm62980 a écrit :
20 févr. 2019, 18:48
Hello @jbecker,

Il subsiste un problème de prononciation en mode script.
Dans les logs, "c'est l'été" apparaît comme ceci "cest lété", d'où la prononciation curieuse.
Pour la même phrase en mode scénario ou directement dans le browser, c'est ok.

SS1.JPG
En mode script, tu es responsable d'écrire une URL valide.
L'URL que tu présentes n'est pas valide.
Essaie: https://meyerweb.com/eric/tools/dencoder/
Je suis désolé, mais je ne comprends pas pourquoi l'url n'est pas valide.
En l'utilisant, seuls les accents posent problème.
Je vais contourner en utilisant des scenarios, mais j'aime comprendre et là ?
Une URL ne peut pas contenir de caractère spéciaux ==> encodage ASCII

Ton URL : http://192.168.1.42:3456/speak?device=D ... ext="c'est l'été"

devient :

http://192.168.1.42:3456/speak?device=D ... %A9t%C3%A9"

Avatar de l’utilisateur
jbecker
Timide
Messages : 52
Inscription : 27 janv. 2019, 17:46

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par jbecker » 21 févr. 2019, 09:42

dpm62980 a écrit :
21 févr. 2019, 09:10
Je suis désolé, mais je ne comprends pas pourquoi l'url n'est pas valide.
En l'utilisant, seuls les accents posent problème.
Je vais contourner en utilisant des scenarios, mais j'aime comprendre et là ?
Une URL ne peut être composée que de caractère ASCII.
Les autres caractères doivent être converti par un % suivi de deux hexadecimal qui servent à représenter le caractère.
C'est juste la norme. Une URL n'est pas un document Word.
(https://www.w3schools.com/tags/ref_urlencode.asp, pour plus de documentation, tu peux essayer les mot clé: URL Encoding)

Ta confusion vient peut-être du fait que quand tu tapes le lien dans ton navigateur, celui-ci va la convertir implicitement en URL qui respecte la norme alors que dans Jeedom, il ne le fait probablement pas et transmet le lien tel quel. Ce qui a pour conséquence d'être mal interprétée car mal encodée.

dpm62980
Timide
Messages : 97
Inscription : 06 mars 2015, 21:01

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par dpm62980 » 21 févr. 2019, 10:18

HadesDT a écrit :
21 févr. 2019, 09:39
.
.
.
Une URL ne peut pas contenir de caractère spéciaux ==> encodage ASCII

Ton URL : http://192.168.1.42:3456/speak?device=D ... ext="c'est l'été"

devient :

http://192.168.1.42:3456/speak?device=D ... %A9t%C3%A9"
Merci HadesDT.

dpm62980
Timide
Messages : 97
Inscription : 06 mars 2015, 21:01

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par dpm62980 » 21 févr. 2019, 10:22

jbecker a écrit :
21 févr. 2019, 09:42

Une URL ne peut être composée que de caractère ASCII.
.
.
Ta confusion vient peut-être du fait que quand tu tapes le lien dans ton navigateur, celui-ci va la convertir implicitement en URL qui respecte la norme alors que dans Jeedom, il ne le fait probablement pas et transmet le lien tel quel. Ce qui a pour conséquence d'être mal interprétée car mal encodée.
Merci jbecker.
Cela provient surtout de mon manque de connaissances !
Je me coucherai moins con ce soir ! :D

Avatar de l’utilisateur
Nebz
Modérateur
Messages : 6514
Inscription : 23 avr. 2017, 01:37
Localisation : Belgique

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par Nebz » 21 févr. 2019, 10:42

@jbecker
souhaites-tu que j'ajoute ce bouton de réparation nodejs dont je parlais hier ?
Dev plugin Homebridge

- Fournissez les logs, la capture de vos commandes et vos types génériques svp
- Constructif et bonne humeur, on est pas là pour se lancer des périfs z-wave à la figure :-)

Un petit don ça fait toujours plaisir :)

Avatar de l’utilisateur
fensoft
Actif
Messages : 1314
Inscription : 07 mai 2015, 11:26

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par fensoft » 21 févr. 2019, 11:03

@nebz: pourquoi c'est pas possible de détecter si le nodejs est fonctionnel dans l'install des dépendances ? perso à chaque install des dépendances je supprime .npm et node_modules et je vérifie la version installée dans l'OS
Coin!
Thermostat lowcost MaxCube DataTransfert (upload vers cloud)
Développeur embarqué (rtos/drivers linux/c/xilinx/atmel/pic/arm/mips), système (linux,docker,qnx), scientifique (c++/python/mongodb), web (php/mysql), webservices (java/nodejs)

Avatar de l’utilisateur
Nebz
Modérateur
Messages : 6514
Inscription : 23 avr. 2017, 01:37
Localisation : Belgique

Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script

Message par Nebz » 21 févr. 2019, 11:05

oui c'est aussi ce que je fais pour node_modules dans mon script, mais je vois pas comment on pourrait detecter certaines erreurs de npm etc... donc difficile de tout prévoir... le mieux que j'ai trouvé pour l'instant c'est un bouton que je conseille au cas par cas...

je ne pense pas que supprimer .npm soit une bonne idée pour les autres plugins... ca ne doit être fait qu'en cas de problème
Dev plugin Homebridge

- Fournissez les logs, la capture de vos commandes et vos types génériques svp
- Constructif et bonne humeur, on est pas là pour se lancer des périfs z-wave à la figure :-)

Un petit don ça fait toujours plaisir :)

Répondre

Revenir vers « [Plugin Officiel] Assistant vocaux »

Qui est en ligne ?

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