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

Freebox mode bridge #254

Closed lsenecaux closed 4 years ago

lsenecaux commented 4 years ago

bonjour,

j'essaie d'installer assitant-plugins/freebox. Tout s'est bien passé, cependant, lorsque je lance la commande "node index.js", je reste bloqué ici [assistant] Assistant v2.0.13 : Chargement en cours... [assistant] 2 plugins trouvés. [assistant] Chargement du plugin 'freebox' (v2.0.13) [assistant-freebox] Demande d'autorisation auprès du Freebox Server...

D'où ma question, est-ce compatible avec la freebox en mode bridge ?

Merci

Aymkdn commented 4 years ago

Oui c'est compatible. Tu dois cliquer sur l'écran de ta Freebox Serveur pour accepter le plugin (lorsque tu as le message "Demande d'autorisation auprès du Freebox Server..."). Tu cliques sur "Oui" en utilisant la flèche de l'écran tactile de ta Freebox Serveur.

lsenecaux commented 4 years ago

Merci, Le problème c'est que la demande au serveur ne se fait pas. Y a til quelque chose à ajouter dans la config ?

Aymkdn commented 4 years ago

Ah, j'avais mal lu ta question concernant le mode bridge... Je n'ai jamais mis la Freebox avec ce mode, donc aucune idée de l'impact que cela peut avoir...

Essaie de te connecter sur ta freebox avec http://mafreebox.freebox.fr puis dans "Paramètres de la Freebox", puis "Mode Avancé", puis "Gestion des Accès", regarde si tu as bien "Permettre les demandes de nouvelles applications" qui est coché, et regarde les autres paramètres de ta Freebox également.

lsenecaux commented 4 years ago

Oui c'est coché. Le problème, en mode bridge je ne peux pas activer air média.

Aymkdn commented 4 years ago

Air Media c'est juste pour vérifier si la Freebox est allumée lors de l'envoie des commandes, ce n'est pas lié à la demande d'autorisation.

lsenecaux commented 4 years ago

Bon j'ai réussi à établir la connexion. Je ne sais pas pourquoi mais impossible de faire une connexion en SSL à la freebox, j'ai donc modifié le source JS en question. Cependant, lorsque je demande d'allumer la TV, cela fonctionne, mais toute autre requête (baisse le son, zappe sur la 6, etc) se solde par l'extinction du player.

Aymkdn commented 4 years ago

Tu dois utiliser le paramètre check_player_on à mettre à false (cf la doc)

lsenecaux commented 4 years ago

J'ai activé ce paramètre, du coup je dois dire "éteint la freebox" pour l'allumer. Je sens que j'y suis presque...

Aymkdn commented 4 years ago

Allume ou éteins, c'est la même commande qui est envoyé

lsenecaux commented 4 years ago

pourtant, "allume la freebox" ne fonctionne pas. Je dois bien dire "éteint la freebox" :-(

Aymkdn commented 4 years ago

Bizarre...

lsenecaux commented 4 years ago

cela fonctionnait avant que je passe la commande check_player_on...

Aymkdn commented 4 years ago

Oui en effet, je viens de regarder le code et ça cause ce problème. Je modifierai en rentrant de vacances dans deux semaines.

lsenecaux commented 4 years ago

OK. Merci beaucoup

Aymkdn commented 4 years ago

Je viens de mettre une nouvelle version en ligne (2.0.14)... Je ne l'ai pas testée puisque j'utilise maintenant la version cloud :)

J'apprécierais donc si tu pouvais la tester et voir si c'est bon ? Merci

lsenecaux commented 4 years ago

Bonjour, Les commandes "allume freebox" et "éteins freebox" fonctionne et ne sont plus inversées. Merci. Une dernière chose... Ma freebox, pour le plus grand des mystères, n'écoute pas en HTTPS. Pourrais tu modifier le fichier freebox.js (avant l'appel à la ligne 18), pour récupérer les infos API et voir si la cette dernière écoute ou non en SSL (https_available true|false) et modifier l'URL d'appel en conséquence. Encore merci

Aymkdn commented 4 years ago

Si tu vas sur https://mafreebox.freebox.fr ça ne fonctionne pas ? Peut-être que tu dois activer quelque chose...

Dans Freebox OS > Paramètres de la Freebox > Mode avancé > Configuration essaie d'activer la connexion à distance ? Cela dit, tu n'as pas l'air d'être le seul (du au mode bridge) : https://dev.freebox.fr/bugs/task/24826

Bon, comme le HTTP n'est toujours pas bloqué par Free, je passe en HTTP par défaut. Cela n'a pas beaucoup d'importance ici de toute façon :-) La nouvelle version est en ligne.

lsenecaux commented 4 years ago

non je n'arrive pas à l'activer, cela a fonctionner un temps, mais depuis l'arrivée de la DELTA, plus de SSL, j'ai dû aussi configurer un service mDNS pour récupérer l'usage de freebox compagnon (et freebox assistant). Pourquoi ne pas faire un appel à "http://mafreebox.freebox.fr/api_version" pour vérifier la valeur "https_available", tu sauras s'il faut activer ou non le SSL ?

Aymkdn commented 4 years ago

Pourquoi ne pas faire un appel à "http://mafreebox.freebox.fr/api_version" pour vérifier la valeur "https_available", tu sauras s'il faut activer ou non le SSL ?

Parce que ça me fait modifier plus profondément le code et donc ça va me prendre une petite heure peut-être. Pour le moment cela n'a aucun impact de passer en http, donc pourquoi m'emmerder ? :-)

lsenecaux commented 4 years ago

Je n'avais pas exécuté toutes les actions. Lorsque je demande d'allumer la TV, ça éteint la box

Aymkdn commented 4 years ago

Ça m'étonnait que tout marche du premier coup ahahah :-)

Par contre, je ne vois pas où ça merde dans mon code.... C'est quand tu envoies quelle commande exactement ? Et que vois-tu dans la console de assistant-plugins ?

lsenecaux commented 4 years ago

Lorsque je lance tout type de commande (allumer la TV, zappe sur XXX, augmenter le son). Les commandes sont bien affichées en console

Aymkdn commented 4 years ago

Ce n'est pas ma question ... tu m'as dit :

Lorsque je demande d'allumer la TV, ça éteint la box

Donc mes questions :

  1. C'est quand tu envoies quelle commande exactement ? power / on ? Ou bien tv ? Ou une autre commande / ensemble de commandes ?
  2. Et que vois-tu dans la console de assistant-plugins ? J'attends à ce que tu m'envoies une copie d'écran de ta console
lsenecaux commented 4 years ago

Lorsque je demande la commande "TV". Cependant, lorsque je l'allume manuellement, toutes autres commandes éteignent également la freebox assistant-freebox

lsenecaux commented 4 years ago

voici l'appel "allume la freebox" puis "allume la tv" assistant-freebox2

Aymkdn commented 4 years ago

Montre moi ta config ? Car là on dirait que tu n'as pas check_player_on:false ....

lsenecaux commented 4 years ago

Si justement, tu me l'as fait mettre (voir plus haut dans ce post)

Aymkdn commented 4 years ago

Tu peux me faire une copie de ton fichier de config stp ?

lsenecaux commented 4 years ago
{
  "main": {
    "pushbullet_token": "xxxxxxxxxxxx"
  },
  "plugins": {
    "freebox": {
      "code_telecommande": "000000000",
      "search_path": "/Disque dur/Vidéos/",
      "use_Mon_Bouquet": false,
      "box_to_control": "hd1",
      "player_ip": "x.x.x.x",
      "check_player_on": false,
      "app_token": "xxxxxxxxxxxxxxxxx"
    },
    "notifier": {
      "host": {
        "salon": "y.y.y.y"
      }
    }
  }
}
Aymkdn commented 4 years ago

Il y a quelque chose qui ne va pas dans les informations que tu me donnes....

Dans ce que tu me montres tu as le message : "[assistant-freebox] Durée de la vérification de la Freebox allumée", sauf que ce bout de code n'est jamais atteint lorsqu'on a l'option "check_player_on": false.

Je viens de tester chez moi pour confirmer. Voilà ce que la commande on et la commande tv doivent retourner :

[assistant] (2019-09-17 08:51:08) Commande reçue:  [ 'freebox_on' ]
[assistant] (2019-09-17 08:51:08) Appel du plugin 'freebox'
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=power
[assistant-freebox] Commande « on » exécutée
[assistant] (2019-09-17 08:51:36) Commande reçue:  [ 'freebox_tv' ]
[assistant] (2019-09-17 08:51:36) Appel du plugin 'freebox'
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=home
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=home
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=up
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=up
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=up
[assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=123456&key=ok
[assistant-freebox] Commande « tv » exécutée

Contrairement à toi je n'ai jamais de vérification que la Freebox est allumée puisque j'ai mis "check_player_on": false

Donc soit tu ne m'as pas copié/collé ton configuration.json (et donc dans le vrai il y a un truc qui ne va pas), soit tu n'as pas mis à jour / redémarré assistant-plugins après avoir mis le paramètre.

lsenecaux commented 4 years ago

je t'ai bien fourni mon fichier de config json. j'ai même redémarrer 3x le plugins pour être sûr. je vais tenter une reinstallation complète en début d'après midi.

lsenecaux commented 4 years ago

J'ai tout réinstallé, j'ai remis exactement le même fichier de config et tout semble fonctionner correctement. Merci à toi

Aymkdn commented 4 years ago

OK cool !

Tu sais que tu peux aussi utiliser la version Cloud, si y'a que le plugin Freebox qui t'intéresse : https://assistant.kodono.info/freebox/ ?

Dans ton cas faudra faire la redirection sur ton propre routeur (comme tu utilises la box en bridge, j'imagine que derrière tu as ton propre routeur).

lsenecaux commented 4 years ago

Oui j'ai vu que tu avais fait une version cloud. Cependant, je ne suis pas très "friand" du "tout dans le cloud". Je préfère, tant que possible, héberger le plus de service chez moi. Je possède un NAS Synology sur lequel j'ai installé ton service, et bien d'autres...

Aymkdn commented 4 years ago

OK je comprends, pas de soucis ;-)

lsenecaux commented 4 years ago

Je reviens vers toi pour un nouveau problème. Lorsque je quitte la session SSH de mon NAS, ou que j'exécute la tache planifiée via Synology DSM, le programme se "kill". Voici ce que j'ai dans les logs si j'exécute via DSM :

` module.js:540 throw err; ^

Error: Cannot find module '/volume1/applications/assitant-plugins/index.js' at Function.Module._resolveFilename (module.js:538:15) at Function.Module._load (module.js:468:25) at Function.Module.runMain (module.js:684:10) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3 `

lsenecaux commented 4 years ago

Bon après un reboot du NAS, tout semble correct. Je te tiendrai au courant si j'ai de nouveau un souci.