Aymkdn / assistant-plugins

Des plugins pour les Assistant (comme Google Home, Cortana, Alexa)
https://aymkdn.github.io/assistant-plugins/
MIT License
92 stars 21 forks source link

Synology - RequestError: Error: connect EHOSTUNREACH #192

Closed jag6o6 closed 5 years ago

jag6o6 commented 5 years ago

Bonjour

En premier lieu un message de remerciement, car l'idée est sympa et ton site plutot bien documenté !

Je n'ai à priori pas trouvé la réponse en FAQ.

Ma config :

L'installation sur le NAS c'est bien déroulé. La config également. Le lancement se déroule sans accroche.

########################## $ node index.js [assistant] Assistant v2.0.5 : Chargement en cours... [assistant] 3 plugins trouvés. [assistant] Chargement du plugin 'bluetooth' (v1.2.2) [assistant-bluetooth] Plugin chargé et prêt. [assistant] Chargement du plugin 'freebox' (v2.0.10) [assistant-freebox] Récupération des chaines terminée ! [assistant-freebox] Plugin chargé et prêt. [assistant] Chargement du plugin 'notifier' (v2.1.4) [assistant-notifier] Plugin chargé et prêt. [assistant] Prêt à écouter les commandes via PushBullet ##########################

Les commandes arrivent bien (extinction ,demarrage, ou comme dans l'exemple modulation du son), mais ressortent en erreur : ########################## [assistant] Appelle du plugin 'freebox' { RequestError: Error: connect EHOSTUNREACH 192.168.0.66:443 at new RequestError (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/errors.js:14:15) at Request.plumbing.callback (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:87:29) at Request.RP$callback [as _callback] (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:46:31) at self.callback (/volume1/homes/userx/assistant-plugins/node_modules/request/request.js:185:22) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at Request.onRequestError (/volume1/homes/userx/assistant-plugins/node_modules/request/request.js:881:8) at emitOne (events.js:116:13) at ClientRequest.emit (events.js:211:7) at TLSSocket.socketErrorListener (_http_client.js:387:9) name: 'RequestError', message: 'Error: connect EHOSTUNREACH 192.168.0.66:443', cause: { Error: connect EHOSTUNREACH 192.168.0.66:443 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14) code: 'EHOSTUNREACH', errno: 'EHOSTUNREACH', syscall: 'connect', address: '192.168.0.66', port: 443 }, ##########################

Si je mets une mauvaise IP, j'ai le même message.

1) Est-ce normal, que ce soit l'IP du server qui soit attaquée ?

2) Initialement, je n'avais pas renseigné la variable ip_server, j'avais le message suivant : [assistant] Prêt à écouter les commandes via PushBullet [assistant] Commande reçue: [ 'freebox_soundUp*15' ] [assistant] Appelle du plugin 'freebox' [assistant-freebox] Durée de la vérification de la Freebox allumée : 1113ms [assistant-freebox] Url => http://192.168.0.78/pub/remote_control?code=7650697&key=vol_inc (node:24440) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'body' of undefined (node:24440) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Bref, je suis preneur d'aide :)

Pour voir ce que j'ai raté Merci à toi

Aymkdn commented 5 years ago

La connexion à la Freebox Serveur permet de savoir si le Player est allumé. Si tu n'utilises pas de VPN sur ton Synology, alors pas besoin de manuellement indiquer l'IP du Server, ni du Player.

Par contre, quand tu ne renseignes pas l'IP du serveur (ton petit 2), l'erreur n'est pas sur la connexion au serveur (Durée de la vérification de la Freebox allumée : 1113ms signifie que la connexion au Serveur s'est bien passée), mais sur la connexion au Player.

Donc, enlève les paramètres player_ip et server_ip, et essaie de mettre : "box_to_control": "hd2" (au lieu de "hd1") pour voir si ça fonctionne.

jag6o6 commented 5 years ago

Bonjour,

Merci pour ta réponse rapide.

Çà ne fonctionne pas mieux. :(

L'erreur que j'ai maintenant : [assistant] Commande reçue: [ 'freebox_off' ] [assistant] Appelle du plugin 'freebox' [assistant-freebox] Durée de la vérification de la Freebox allumée : 604ms [assistant-freebox] Url => http://hd2.freebox.fr/pub/remote_control?code=7650697&key=power

EDIT: quand j'ai repondu la première fois, j'avais l'erreur suivante venait du fait que j'avais tenté une manip dans freebox.js ( this.serverURL = "https://"+(this.config.server_ip||"mafreebox.freebox.fr")+"/api/v4/"; où je changeais ma freebox.freebox.fr par l'IP du server).

La log que j'ai : ########################## [assistant] Prêt à écouter les commandes via PushBullet [assistant] Commande reçue: [ 'freebox_on' ] [assistant] Appelle du plugin 'freebox' { RequestError: Error: connect EHOSTUNREACH 192.168.0.66:443 at new RequestError (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/errors.js:14:15) at Request.plumbing.callback (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:87:29) at Request.RP$callback [as _callback] (/volume1/homes/userx/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:46:31) at self.callback (/volume1/homes/userx/assistant-plugins/node_modules/request/request.js:185:22) at emitOne (events.js:116:13) at Request.emit (events.js:211:7) at Request.onRequestError (/volume1/homes/userx/assistant-plugins/node_modules/request/request.js:881:8) at emitOne (events.js:116:13) at ClientRequest.emit (events.js:211:7) at TLSSocket.socketErrorListener (_http_client.js:387:9) name: 'RequestError', message: 'Error: connect EHOSTUNREACH 192.168.0.66:443', cause: { Error: connect EHOSTUNREACH 192.168.0.66:443 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14) code: 'EHOSTUNREACH', errno: 'EHOSTUNREACH', syscall: 'connect', address: '192.168.0.66', port: 443 }, error: { Error: connect EHOSTUNREACH 192.168.0.66:443 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14) code: 'EHOSTUNREACH', errno: 'EHOSTUNREACH', syscall: 'connect', address: '192.168.0.66', port: 443 }, options: { url: 'https://192.168.0.66/api/v4/login/', agentOptions: { rejectUnauthorized: false }, callback: [Function: RP$callback], transform: undefined, simple: true, resolveWithFullResponse: false, transform2xxOnly: false }, response: undefined } [assistant-freebox] Commande « on » exécutée ##########################

Ci dessous le fichier de conf : ########################## ~/assistant-plugins$ cat configuration.json { "main": { "pushbullet_token": "o.PsdGzvHINvmIVC6vkl4jYRgZaZ6Zgs7u" }, "plugins": { "bluetooth": { "host": "192.168.1.70" }, "freebox": { "code_telecommande": "7650697", "search_path": "/Todo_360/Video/", "use_Mon_Bouquet": false, "box_to_control": "hd2", "app_token": "vU9KD+SskrNp1QvuRyMaYePDaa2T3uT6yfCP+RSm4fMaTsFCbdGgYYDiXxyEFgpE" }, "notifier": { "host": "192.168.1.70" } } } ##########################

Ce qui m'étonne, c'est que le message reste le même, comme s'il conservait un cache ou un fichier de conf. Je viens de vérifier que le fichier configuration.json sous /assistant-plugins/node_modules/assistant-freebox est identique.

J'ai testé un lancement avec root, même comportement ... :S

Aymkdn commented 5 years ago

Tu ne dois rien modifier dans node_modules ! La configuration se fait à la racine du dossier.

Question bête : ton synology est sur le même réseau que la Freebox ?

Si tu fais : ping mafreebox.freebox.fr ça te donne quoi ? Et si tu fais : ping hd1.freebox.fr ? Et si tu fais : ping hd2.freebox.fr ?

jag6o6 commented 5 years ago

Noté pour les fichiers de conf (j'avais trouvé l'info dans une autre issue,jai voulutenter) :$ Le NAS est bien sur le même réseau.

Le ping ne fonctionne pas. ~/assistant-plugins$ ping mafreebox.freebox.fr ping: socket: Operation not permitted

Pour info, je viens de faire un test depuis mon pc (la ça fonctionne).

Les mêmes ping fonctionnent depuis le pc.

Une question de privilèges ou de config du NAS ? Je suis preneur d'idée, je vais regarder via l'interface du NAS.

Aymkdn commented 5 years ago

D'après Internet, tu dois être root sur le NAS or faire un ping

jag6o6 commented 5 years ago

j'étais en train de retester :) En effet ! Je n'avais pas réessayé depuis les dernières modif.

tu peux clore.

merci pour l'aide et biensur pour ce plug in :D bonne fin de journée

Aymkdn commented 5 years ago

Pour info, j'ai créé une version super simplifiée de assistant-freebox qui permet de contrôler sa Freebox à la voix sans devoir installer quoi que ce soit, ni avoir son ordinateur qui tourne 24h/24. Je cherche des testeurs pour ces prochaines semaines. Si ça t'intéresse, je t'invite à lire ce message : https://github.com/Aymkdn/assistant-freebox-cloud/issues/1