[DEV] Plugin Alexa-Api en BETA uniquement
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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.
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.
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Bonjourgpga a écrit : ↑19 févr. 2019, 22:10Aprè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 ?
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
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
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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.
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.
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Bonjour NebzNebz a écrit : ↑20 févr. 2019, 09:40Hello,jbecker a écrit : ↑20 févr. 2019, 08:18Vu l'erreur, je ne comprend même pas comment ça a pu fonctionner l'espace d'un instant.
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.
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) :
Capture.PNGCode : 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; }
Capture2.PNG
je peux faire un PR si tu veux
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
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
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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/
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Les logs alexaapi_node me serait plus utile. C'est le fichier de log utilisé par le deamon.Didier3L a écrit : ↑20 févr. 2019, 18:01je 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
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)
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Mise à jour Github (branche master):
Fusion de la branche template-scenario. Il vous sera plus facile d'utiliser les commandes lors de la création de scénario.
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à.
Fusion de la branche template-scenario. Il vous sera plus facile d'utiliser les commandes lors de la création de scénario.
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à.
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Nebz a écrit : ↑20 févr. 2019, 09:58je trouve ca dans le code de la lib : "text too long, limit are 250 characters"fredester a écrit : ↑20 févr. 2019, 09:15J'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.En attendant, à défaut d'avoir mieux, tu peux mettre un délai ou mettre le tout dans la même instruction
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 !)
Merci, c'est bon à savoir !
Jeedom 3.3.18 ESXi - PC BRIX GB-BXBT-1900 - Debian Stretch
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Installé, fonctionne parfaitement, j'avais effectivement remarqué le bug toutes les 24h. Super boulot !jbecker a écrit : ↑20 févr. 2019, 21:38Mise à jour Github (branche master):
Fusion de la branche template-scenario. Il vous sera plus facile d'utiliser les commandes lors de la création de scénario.
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à.
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
dpm62980 a écrit : ↑20 févr. 2019, 10:03Hello fredester,fredester a écrit : ↑20 févr. 2019, 08:14Toujours 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 ?
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
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Je suis désolé, mais je ne comprends pas pourquoi l'url n'est pas valide.jbecker a écrit : ↑20 févr. 2019, 19:41En 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/
En l'utilisant, seuls les accents posent problème.
Je vais contourner en utilisant des scenarios, mais j'aime comprendre et là ?
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Une URL ne peut pas contenir de caractère spéciaux ==> encodage ASCIIdpm62980 a écrit : ↑21 févr. 2019, 09:10Je suis désolé, mais je ne comprends pas pourquoi l'url n'est pas valide.jbecker a écrit : ↑20 févr. 2019, 19:41En 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/
En l'utilisant, seuls les accents posent problème.
Je vais contourner en utilisant des scenarios, mais j'aime comprendre et là ?
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"
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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.
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Merci HadesDT.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"
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
Merci jbecker.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.
Cela provient surtout de mon manque de connaissances !
Je me coucherai moins con ce soir !
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
@jbecker
souhaites-tu que j'ajoute ce bouton de réparation nodejs dont je parlais hier ?
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 :)
- 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 :)
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
@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)
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)
Re: [Tuto] Faire dire et faire faire ce que l'on veut a Alexa grâce a un script
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
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 :)
- 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 :)
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités