Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interprétation différente des commandes en fonction de l'univers qu'on veut controler #331

Open
tigre-bleu opened this issue Jan 5, 2017 · 39 comments

Comments

@tigre-bleu
Copy link

Je viens de découvrir Jarvis, et je m'amuse bien avec. C'est un très beau projet félicitations!

J'ai une instance de Kodi que je peux controler avec le plugin correspondant, mais ce n'est pas le plus efficace d'après moi.

En effet, supposons que l'on veuille aller sur le menu, puis 3 fois à droite, il faut dire:

JARVIS
CODY MENU PRINCIPAL
CODY DROITE
CODY DROITE
CODY DROITE

Ça fait répéter "Kodi" 4 fois, ce qui est assez lourd à l'utilisation. En l'état actuel on ne peut pas faire autrement car sinon il faudrait définir une commande DROITE mais elle serait en conflit avec la même commande du plugin Freebox, par exemple.

On pourrait simplifier ça en créant des sortes d'"univers de commande" dans lesquels on pourrait rentrer et sortir.

Par exemple, si je veux demander l'heure, faire ma manip dans Kodi puis demander la météo, ça donnerait:
JARVIS
QUELLE HEURE EST IL? --Jarvis donne l'heure
CONTROLLER CODY -- "Ok, je contrôle Kodi"
MENU PRINCIPAL
DROITE
DROITE
DROITE
ARRETER DE CONTROLER CODY -- "Ok, j'arrête de contrôler Kodi"
DONNE MOI LA METEO -- Jarvis donne la météo

Grâce à cette logique, on pourrait définir plusieurs commandes "DROITE" qui donnerait des résultats différents suivant quand on les utilise (droite dans Kodi ou sur la Freebox suivant dans quel univers on se trouve).

Je suppose que ça fait changer pas mal de choses à la gestion des commandes mais peut-être que ce serait gérable en utilisant un langage comme RiveScript pour gérer les commandes (j'ai vu qu'il y a un plugin mais je n'ai pas encore essayé. Je découvre aussi ce langage)

@Crali
Copy link

Crali commented Jan 5, 2017

On pourrait faire pointer la recherche de commandes de Jarvis vers un fichier de commandes spécialement conçu pour tel programme ?
Ex :

  • Lance le mode Kodi
  • le chemin vers le dictionnaire change et pointe désormais vers le dictionnaire propre aux commandes Kodi
  • Execution de tes commandes Kodi
  • Lance le mode principal
  • le chemin change et reviens vers le dictionnaire principal.

Cela nécéssiterait d'ajouter des commandes dans le dico principal pour changer de dico en fonction de ce que tu veux faire (Kodi, x, y, z, etc), et dans chaque dictionnaire pour revenir au dictionnaire principal.
Et de pouvoir changer le chemin d'accès du dico.

@tigre-bleu
Copy link
Author

Oui ce serait pas mal comme ça.

@alexylem
Copy link
Owner

alexylem commented Jan 6, 2017

C'est déjà possible en modifiant le plugin ainsi:

CONTROL*CODI*==pg_kodi=true && say "Ok, je contrôle Kodi"
MENU*==$pg_kodi && ...
DROITE==$pg_kodi && ...
ARRET*CODI*==pg_kodi=false && say "Ok, j'arrête de contrôler Kodi"

Sinon je peux réfléchir à une autre méthode...

@tigre-bleu
Copy link
Author

Ahhh, c'est intéressant, je vais regarder. Il y a de la doc quelque part là dessus à côté de laquelle je suis passé?

@alexylem
Copy link
Owner

alexylem commented Jan 6, 2017

Non, c'est juste de la logique. Je set une variable interne au plugin que je teste sur les commandes un peu trop "génériques".
Après le plugin peut très bien proposer des commandes sans le mot "CODI" devant, mais il y a le risque d'interférer avec un autre plugin. D'où la variable.
Par contre il faut le setting Match all à true. Ce qui va être un problème pour ceux qui ont un plugin "Capture all" installé, comme Jeedom.
En fait tout compte fait c'est pas une si bonne idée que ca 😄

Il y a une autre méthode moins user friendly inspirée de #276:

CONTROL*CODI*==say "Ok"
>*MENU*==...; commands="$(jv_get_commands)"; jv_handle_order "CONTROL CODI"; return
>*DROITE*==...; commands="$(jv_get_commands)"; jv_handle_order "CONTROL CODI"; return
>*ARRET*==say "Ok, j'arrête de contrôler Kodi"

A tester... mais le mieux serait que je réfléchisse à une autre méthode plus intuitive...

@tchoul
Copy link

tchoul commented Jan 13, 2017

Une idée en passant... Je ne sais pas comment le faire mais si par exemple on dit freeboxtélé, ça active le plugin freeboxtv, de la les commandes serait dispo, puis si on dit kodi ça désactive tout les plugins activé en l'occurrence freeboxtv et active kodi. Sachant que jarvis-command n'est pas un plugin il serait toujours accessible. Il faudrait des exceptions, pour les plugins qui ne sont pas "concerné" comme TIME par exemple.

@trarizakaria
Copy link

je voulai essayé la méthode suivante : essayé d'envoyer des requettes http.

coupelesonkodi==jv_curl "http://192.168.1.5:8070/jsonrpc?request={"jsonrpc":"2.0","method":"Application.SetMute","params":[true],"id":1}" && say "le son est coupé"

et essayé de mettre d'autres requettes pour d'autres commandes kodi.
mais il me renvoie une erreur :

error: ERROR: curl: (3) [globbing] nested brace in column 88

quand j'envoie la requette http depuis le navigateur de mon pc elle s'execute et le son est coupé.
je ne sais pas ou se trouve l'erreur ?
une petit info : kodi est installé avec jarvis sur la meme raspberry 192.168.1.5

@trarizakaria
Copy link

pour la méthode cité en haut ça marche pas, il continue à contrôler kodi. il faut trouver un moyen pour appeler un plugin. l'utiliser et le quitter.et qu'il ne se lance pas au démarrage de jarvis.
finalemment j'ai modifé /jarvis/plugins/jarvis-kodi/fr/commands et supprimé tout les mots "cody" mais il faut faire attention avec les future commandes et les matcher

@alexylem
Copy link
Owner

Bon j'ai vraiment le sentiment qu'il faut faire qqchose à ce sujet.
J'ai fait quelques tests j'ai l'impression que comme ceci ça fonctionne:

commands

CONTOL* CODI*==say "Ok" # entrer en mode Kodi
>*MENU*==say "Menu"; return # ajouter un return pour rester dans la boucle
>*DROITE*==say "Droite"; return # ajouter un return pour rester dans la boucle
# ainsi de suite
>*TERMINE*==say "Ok" # sortir du mode Kodi (pas de return)

Qqun peut tester?

@trarizakaria
Copy link

trarizakaria commented Feb 13, 2017

@alexylem j'ai testé et ça fonctionne, bon, je ne connais pas trop en linux et comment ça marche pour les plugins. mais le plugin jarvis-kodi ne marche pas avec cette méthode ou bien je ne sais pas comment l'utiliser. j'ai procéder comme suit : en désinstallant le plugins et en mettant mes propre http requests

*CONTROL*CODI*==say "ok"
>*DROITE*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Right%22%2C%22id%22%3A1%7D" && say "ok"; return
>*GAUCHE*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Left%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*HAUT*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Up%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*BAS*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Down%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*VALIDE*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Select%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*RETOUR*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Back%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*MENU*PRINCIPAL*==curl -s "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Home%22%2C%22id%22%3A1%7D" && say "ok"; return 
>*PLAY*==curl -s "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.PlayPause%22,%22params%22:{%22playerid%22:1},%22id%22:1}" && say "ok"; return
>TERMINE*AVEC*CODI==say "ok"

mais le souci que j'ai rencontré c,'est que toutes les commandes marchent bien sauf la commande "play".
j'ai rencontré le même problème que j'ai cité avant (de la commandes "mute") je sais pas pourquoi.
si vous copiez l'url de la commande "play" sur un navigateur elle s'execute bien et fait un play/pause. mais dans jarvis ça marche pas.

conclusion : la méthode est fonctionnel. en attendant que quelqu'un puisse aussi tester et nous faire un feedback concernant les commandes qui ne s’exécutent pas.

@trarizakaria
Copy link

trarizakaria commented Feb 13, 2017

@tigre-bleu @alexylem enfinnnnn!! :) j'ai lu le manuel de curl et même si je n'ai rien compris lol , j'ai profité d'essayer quelques paramètres. en ajoutant le paramètre -g toutes les requettes sont bien exécutées. j'ai aussi ajouté la commande "encore" pour ne pas dire par example "bas" 5 fois, mais ça n'a pas marché. voila le code que vous pouvez utiliser en changeant mon ip et port par le votre. l'ordre des commandes doit resté le même et n'oubliez pas de désinstaller le plugin jarvis-kodi.
il vaut mieux ne pas écrire say "ok" aprés chaque commande pour que ça devienne plus esthétique.

*CONTROL*CODI*==say "ok je controle codi"
>*VOLUME*BAS*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Application.SetVolume%22,%22params%22:{%22volume%22:25},%22id%22:1}" && say "ok"; return  #volume à 25%
>*VOLUME*NORMAL*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Application.SetVolume%22,%22params%22:{%22volume%22:50},%22id%22:1}" && say "ok"; return  #volume à 50%
>*VOLUME*HAUT*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Application.SetVolume%22,%22params%22:{%22volume%22:100},%22id%22:1}" && say "ok"; return   #volume à 100%
>*DROITE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Right%22%2C%22id%22%3A1%7D" && say "ok"; return
>*GAUCHE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Left%22%2C%22id%22%3A1%7D" && say "ok"; return
>*HAUT*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Up%22%2C%22id%22%3A1%7D" && say "ok"; return
>*BAS*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Down%22%2C%22id%22%3A1%7D" && say "ok"; return
>*VALIDE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Select%22%2C%22id%22%3A1%7D" && say "ok"; return
>*RETOUR*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Back%22%2C%22id%22%3A1%7D" && say "ok"; return
>*MENU*PRINCIPAL*==curl -sg "http://192.168.1.5:8070/jsonrpc?request=%7B%22jsonrpc%22%3A%222.0%22%2C%22method%22%3A%22Input.Home%22%2C%22id%22%3A1%7D" && say "ok"; return
>*PAUSE*|*PLAY*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22id%22:1,%22jsonrpc%22:%222.0%22,%22method%22:%22Player.PlayPause%22,%22params%22:{%22playerid%22:%201%20}}" && say "ok"; return
>*STOP*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Player.Stop%22,%22params%22:{%22playerid%22:1},%22id%22:1}" && say "ok"; return                        
>*NON*MUET*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Application.SetMute%22,%22params%22:{%22mute%22:false},%22id%22:1}" && say "ok"; return
>*MUET*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Application.SetMute%22,%22params%22:{%22mute%22:true},%22id%22:1}" && say "ok"; return
>*AFFICHE*INFORMATIONS*FILM*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22Input.Info%22,%22id%22:1}" && say "ok"; return
>*SOUS*TITRE*SUIVANT*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:1,%22method%22:%22Player.SetSubtitle%22,%22params%22:{%22playerid%22:1,%22subtitle%22:%22next%22}}" && say "ok"; return
>*DESACTIVE*SOUS*TITRE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:1,%22method%22:%22Player.SetSubtitle%22,%22params%22:{%22playerid%22:1,%22subtitle%22:%22off%22}}" && say "ok"; return
>*ACTIVE*SOUS*TITRE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22id%22:1,%22method%22:%22Player.SetSubtitle%22,%22params%22:{%22playerid%22:1,%22subtitle%22:%22on%22}}" && say "ok"; return
>*PLEIN*ECRAN*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.SetFullscreen%22,%22params%22:{%22fullscreen%22:%22toggle%22},%22id%22:1}" && say "ok"; return
>*AFFICHE*LISTE*FILM*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ActivateWindow%22,%22params%22:{%22window%22:%22video%22},%22id%22:1}" && say "ok"; return
>*AFFICHE*LISTE*MUSIQUE*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ActivateWindow%22,%22params%22:{%22window%22:%22music%22},%22id%22:1}" && say "ok"; return
>*AFFICHE*LISTE*PHOTO*==curl -sg "http://192.168.1.5:8070/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ActivateWindow%22,%22params%22:{%22window%22:%22pictures%22},%22id%22:1}" && say "ok"; return
>*ENCORE*==jv_repeat_last_command ; return
>TERMINE*AVEC*CODI==say "ok, terminé"
*QUITTE*CODI*==pkill kodi
*RELANCE*CODI*==pkill kodi && sleep 2 ; kodi&
*LANCE*CODI*==kodi&

@alexylem
Copy link
Owner

@trarizakaria super merci pour les tests.
@kevincaradant tu n'as plus qu'à modifier ton plugin si tu le souhaites.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 13, 2017

Hello

@trarizakaria merci :) .
As tu tout testé ?
Si je peux éviter de vérifier que tu n'as pas fait d'erreurs cela m'arrangerai :D. Je vais modifier tout ca pour en et fr en utilisant mes fonctions pour éviter de remettre 50 fois IP + PORT dans chaque requête mais cool si cela fonctionne car moi je n'ai jamais eu l'occasion de pouvoir vraiment testé jusqu'à aujourd'hui ( micro mauvais au debut puis pi bancal après ... ) bref ca pourra être l'occasion de revoir tout ca.

@trarizakaria
Copy link

@alexylem de rien, j’espère pouvoir contribuer au moins avec des idées, je n'est pas fait grand chose, j'ai juste interpréter le travail de @kevincaradant d'une manière différente avec votre méthode proposée, on espère pouvoir utiliser le plugins jarvis-kodi de cette manière.

@trarizakaria
Copy link

@kevincaradant les commandes json-rpc je les ai pris de ton plugin. au lieu de me casser la tête sur le site kodi :). quand je les ai adapté de cette manière, il y avait des urls qui ne s’exécutent pas depuis jarvis (mais fonctionels en plugin) et en ajoutant le paramètre -g le problème est réglé.
pour le test j'ai testé juste avec le clavier car j'ai pas de micro pour le moment, ton plugin est fonctionnel et j'ai déja modifié le plugin en supprimant le mot "codi" est tout a bien marché. donc pas de souci avec les commandes du plugin.
ce qu'on souhaite c'est avoir un plugin qu'on peut exécuter sans prononcer le mot "cody" à chaque fois. et qu'il y aura pas d’interférence avec les autre plugins. d’où l’efficacité de la méthode proposé par alex.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 13, 2017

OK parfait alors. Les commandes étaient assez difficile à trouver car la doc à l'époque et peut-être encore aujourd’hui n'est pas top pour les commandes json-rpc.

Oui je me souviens avoir déjà eu une discussion avec @alexylem il y a déjà plusieurs mois à ce sujet pour la répétition du mot "CODY" :). A l'époque nous n'avions pas de réelles solutions à apporter si je me souviens bien. Aujourd'hui oui donc c'est parfait.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 13, 2017

@trarizakaria, c'est quoi le problème actuel avec ma configuration juste par curiosité ?
Tu as bien changé les ip et port dans le fichier de configuration quand tu as installé le plugin ?
Je vois que tu dis ca "il y avait des urls qui ne s’exécutent pas depuis jarvis (mais fonctionnels en plugin) " mais je n'ai pas compris le problème du coup avec Jarvis

Je vois que tout est encodé avec des % j'aimerai bien garder un truc lisible si possible. Pourquoi avoir fait des encodages URL avec des %20 etc ?

Tes commandes sont en GET et les miennes étaient en POST mais c'est la seule différence ?

@trarizakaria
Copy link

@kevincaradant je te fait un petit (long) résumé :) de ce qui a été discuté dans cet issue. avant tout je suis un utilisateur débutant (nul en linux) qui viens de découvrir jarvis. et le premier plugin que j'ai installé c'était jarvis-kodi. mais j'ai trouvé que que c'était pas trés esthétique de prononcer codi à chaque commande. par hasard j'ai trouvé que quelqu'un d'autre comme moi voulait rendre l'utilisation plus belle que ça. on a penser tout simplement de modifier tes fichiers de configuration et supprimer le mot "cody" mais cela peut interférer avec d'autre plugins et il faut bcp matcher. donc l'idée était de faire des commandes imbriqués pour n'utiliser les commandes pour kodi que lorsqu'on veut. alex a proposé ça :

CONTOL* CODI*==say "Ok" # entrer en mode Kodi
>*MENU*==say "Menu"; return # ajouter un return pour rester dans la boucle
>*DROITE*==say "Droite"; return # ajouter un return pour rester dans la boucle
# ainsi de suite
>*TERMINE*==say "Ok" # sortir du mode Kodi (pas de return)

vu que je suis nul en linux (juste un consommateur lol) j'ai pas su comment modifier ton plugin ou extraire les commandes et les adapter à cette méthode proposée par alex.
alors j'ai entré dans le site kodi pour voir comment faire des commandes par curl http.
pour les % et 20% je ne sais pas d'ou ça vien, quand je copie une commade par exemple :
http://ip:port/jsonrpc?request={"jsonrpc":"2.0","method":"Input.Left","id":1}
elle s'encode toute seule quand je la colle mdr. et donne ces %%% lol.
il y avait des urls qui ne marchait pas quand je les lance avec curl depuis jarvis et j'ai réglé ça en ajoutant -g.
ça n'a rien avoir avc ton plugin. Le tien est fonctionnel 100%. c'est juste qu'on le veux sans le mot cody :) et sans risque d'interférence avec d'autre commandes :)

mes sentiments respectueux

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 14, 2017

@trarizakaria , ok merci pour le recap, j'ai juste à changer le >*COMMANDE* avec les return et c'est bon en faite pour mon plugin ? Tu ne veux juste pas à avoir à redire CODI à chaque fois.

Pour les %, OK je comprends mieux pourquoi, tu as récupéré les commandes insérées dans le navigateur, c'est normal du coup cet encodage.

Je fais cela ce soir ca devrait etre rapide. Le truc c'est que je ne peux pas tester moi meme, j'ai pas encore remis Jarvis. Problème de micro avec pulseaudio sur mon pi ....
Donc je veux bien que tu testes quand j'aurai fait la modification merci :)

@trarizakaria
Copy link

Je ne sais pas vraiment comment ça fonctionne pour les plugins. Mais ce que je crois savoir c'est que vous devez mettre une commande principal (d'entrée)
CONTROLCODI==say "ok je contrôle"
et pour toutes les commandes post ajouter un ; return pour rester dans la boucle.
Et enfin ajouter une commande de sortie
CONTROLE
CODI*TERMINE==say "ok, j'arrête de controler codi" (sans mettre ; return)
Comme ça jarvis arrête d'utiliser les commandes pour kodi.
Quand vous aurez terminé je vais testé. Y a pas de souci :)

@kevincaradant
Copy link
Contributor

OK alors pour les commandes, j'ai laissé ARRET au lieu de STOP et JOUER au lieu de PLAY car je pense que le JARVIS francais ne pourra pas entendre et interpreter PLAY mais fera un truc du genre PLAIE. Dites moi si je me trompe. Aussi je vois cette ligne: >*ENCORE*==jv_repeat_last_command ; return
C'est une commande de base de jarvis @alexylem ?

@trarizakaria
Copy link

@kevincaradant @alexylem la commande "ENCORE" je l'ai ajouté dans l'espoir de l'utiliser pour ne pas dire plusieurs fois la meme commande par exmple "GAUCHE" quand on navigue dans kodi. mais ça n'a pas marché, elle renvoie à la commande principale qui est "CONTROL * CODI" .

@wikijm
Copy link
Collaborator

wikijm commented Feb 15, 2017

@trarizakaria Très bonne idée cette commande "ENCORE".

As-tu créé une issue pour demander son intégration ou une réflexion dessus ?

@trarizakaria
Copy link

Non j'ai pas créé d'issue. Mais bon je crois que je dois l'ouvrir car ça ne concerne pas seulement kodi. Cette commande est importante il faut chercher comment l'utiliser dans les commandes imbriquées

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 15, 2017

@trarizakaria , je ne sais pas comment faire autrement, mais peux tu copier coller les fichiers de mon dépot et tester le plugin JARVIS :). Je pense avoir MAJ correctement ce dont vous parliez.
https://github.com/kevincaradant/jarvis-kodi

Si c'est ok je ferai une PR en plugin

Merci d'avance

@trarizakaria
Copy link

@kevincaradant désolé pour le retard. je viens de testé le plugin. il est plus mignon maintenant :) .
il faut mettre à jour la descriptions du plugin ou le mode d'emploi, pour indiquer au utilisateurs que dorénavant il faut utiliser la commande d'entée "CONTROLECODI" et la commande de sortie"TERMINEAVEC*CODI". j'ai testé toutes les commandes j'ai constaté l'absence de la commande "ARRET" ou "STOP" et que les commandes "VOLUME HAUT" et "VOLUME BAS"s ne marchent pas car il faut les matcher et les placer devant les commandes "HAUT" et "BAS". voila c'est tout :)
quand je trouverai un peu de temps j'essayerai de rajouter d'autres commandes comme play et pause pour la musique qui ne marchent pas et titre suivant titre précédent... etc et je te contacterai pour les rajouter au plugin. laisse moi juste ton email. on espère aussi pouvoir rajouter la commande "ENCORE" par la suite. je vais ouvrir un issue pour ça.

salutations

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 16, 2017

@trarizakaria ,

il faut mettre à jour la descriptions du plugin ou le mode d'emploi, pour indiquer au utilisateurs que dorénavant il faut utiliser la commande d'entée "CONTROLECODI" et la commande de sortie"TERMINEAVEC*CODI".

Je rajoute une ligne plus explicite pour dire comment démarrer ou stopper le controle avec Kodi ?
Ici: https://github.com/kevincaradant/jarvis-kodi
Dans la partie USAGE du README (mode d'emploi), j'ai mis la commande disant que c'est pour interagir avec kodi.

j'ai testé toutes les commandes j'ai constaté l'absence de la commande "ARRET" ou "STOP"

Elle est présente la commande "ARRET", "STOP" c'est la version Anglaise.

que les commandes "VOLUME HAUT" et "VOLUME BAS"s ne marchent pas car il faut les matcher et les placer devant les commandes "HAUT" et "BAS"

L'ordre est important ou c'est juste d'un point de vue esthétique ?
Edit: question bête.. , oui c'est une question d'ordre biensur ^^. Je corrigerai cela

quand je trouverai un peu de temps j'essayerai de rajouter d'autres commandes

Cool merci

comme play et pause pour la musique qui ne marchent pas et titre suivant titre précédent..

Comment ca ? Avec un film ca marche mais pas avec la musique pour PLAY / PAUSE ?
titre suivant titre précédent : Je n'ai pas cree les commandes pour cela donc c'est normal que cela ne marche pas

laisse moi juste ton email

L'adresse est deja dans le README de mon plugin mais je te la remets ici: [email protected]

pouvoir rajouter la commande "ENCORE" par la suite

Ca serait super oui :)

Merci pour les tests. Aujourd'hui je n'ai pas le temps, demain non plus mais samedi je corrige tout cela ;)


Edit2: J'avance petit à petit afin de mettre a jour les commandes et d'en ajouter des nouvelles. En effet, le play / pause pour la musique ne marche pas car c'est une histoire d'ID de player. Je pense qu'il faut que je GET le player (id) en cours et que je le passe a la commande pause / lecture.

0 = musique
1 = film

D'ailleurs on peut faire play/pause avec la meme commande. 2 fois pause = play.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 19, 2017

@trarizakaria

J'ai mis a jour le plugin sur mon repo (branche master). Peux-tu essayer les nouveautés et les corrections aussi au sujet du volume, des problèmes de play/pause, des pistes suivantes/précédentes etc.
Je pense que ca te plaira.

Ah aussi, c'est une feature juste trop cool en soi mais je ne sais pas du tout si Jarvis va réussir avec le nom des films mais on peut lui dicter un mot clé ou le nom du film en entier et il va le lire directement.
Commande: Lance le film XX
Si tu peux voir et essayer si cela fonctionne bien, je t'en remercie d'avance. J'utilise que le mode clavier actuellement car micro HS du coup impossible pour moi pour l'instant.

@alexylem, j'aimerai pouvoir discuter ailleurs de tout ca, il y a un gitter JARVIS ou un autre chat ? Merci

@trarizakaria
Copy link

@kevincaradant là il faut faire un marche arrière.
toutes les nouvelles commandes ne marchent pas ni en clavier ni en vocale. et si ça marche pas en clavier c v d qu"il ne marchera jamais en vocale.
pause/jouer ne marche plus ni pour les films ni pour la musique.
volume haut et volume bas aussi.
as tu testé les commandes au moins avec le clavier ???
bon moi aussi j'ai pas de micro pour le moment mais j'ai testé avec mon smartphone avec la méthode suivante http://domotiquefacile.fr/jarvis/content/voice-control-from-android-device que tu peux aussi testé avec.
et je crois qu'il faut changer codi par Kodi car ça détecte kodi et non pas codi.
pour la commandes "lance le film xx" c'est une excellente idée. mais je crois qu'il faut la testé en micro car il y a une capture de voice. mais tout d'abord il faut testé si la commande marche si on lui indique directement le nom du film (pas de capture). car moi j'ai testé mais ça n'a pas marché.

désolé pour mon retour négatif. j'espère qu'on pourrai réparer tout ça.

salutations.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 19, 2017

@trarizakaria c'est quoi l'erreur ?
As-tu installé jq sur ta machine.
sudo apt-get install jq
C'est nécessaire pour certaines commandes

J'ai tout testé en local avec clavier et c'est 100% fonctionnel de mon côté.
Petit détail mais la commande jouer est bizarre à prononcer. Je la remplace demain par lire. Pause / Lire ça sonne mieux je pense.

J'essaierai aussi de mettre ENCORE, j'ai une idée pour le faire via mon plugin en attendant que ça fonctionne mieux avec la variable Jarvis. Car ça fait que relancer le contrôle de Kodi... Faudrait faire une issue à ce sujet je pense.

J'ai aussi changé le fichier de configuration. Une seule IP et port pour Fr / En. Désinstalle l'ancien plugin et reinstalle le nouveau. J'espère que cela fonctionnera bien

A l'époque, moi il détéctait CODI et non pas KODI. Cela a changé en vocal ? J'upgrade demain dans ce cas. Si tu réussis à faire fonctionner, dis moi car tu me fais peur quand tu dis que plus rien ne marche

@trarizakaria
Copy link

ça marche ça marche. j'ai désinstaller le plugin et le reinstaller
c vraimen super la commande lance le film
je suis en cours de tester tout maintenant.
je m'excuse
je te répond quand je testerai tout

@trarizakaria
Copy link

trarizakaria commented Feb 20, 2017

@kevincaradant
excellent travail amigo.
c'est vraiment nikel. tout marche impécable avec clavier et avec vocale. toutes les commandes s'exécutent sans aucun soucis.
j'ai juste trouvé bcp de diffuculté avec la commande "haut" et volume haut en vocale. peut être c'est dû de ma prononciation.
mais attention j'ai testé tout ça avec le vocale de téléphone portable que je te recommande de le tester toi aussi. et c'est ce vocale qui m'affiche kodi au lieu de codi. j'ai jamais testé ça avec le vocale de jarvis. donc ne change rien jusqu'à testé.
pour Lire au lieu de jouer oui oui c'est mieu. ou en peut aussi dire "reprendre"
et pour "encore" oui merci d'ouvrir un issue.
bravo et merci bcp pour ce super plugin.

@kevincaradant
Copy link
Contributor

@trarizakaria

Merci beaucoup :). Je mettrai lire et reprendre du coup. Pour le vocal avec Android, je teste ça demain aussi. Tu as réussi à dicter des noms de films avec le tel ? J'ai peur que des films comme Sully, Ben Hur etc ça ne marche pas du tout :/.

Pour volume haut, je vais remplacer par volume fort. Et volume bas par volume faible comme ça, plus de confusion avec le reste.

Il me reste à faire la commande pour les séries au lieu des films si j'y arrives.
Pour Encore, je vais attendre un fix et sinon je ferai mon patch de mon côté mais si je peux éviter de perdre du temps sur un truc qui risque d'être réparé dans 2j ça serait pas mal.

Je vais ouvrir une issue demain afin de voir si @alexylem, ne peut pas jeter un œil à ce sujet.

@trarizakaria
Copy link

bon je crois qu'on aura ce probleme avec les films anglais. j'ai testé des noms de films en anglais et ça na pas marché. il faut essayer d'adapter sa prononciation je crois. j'ai testé avec les noms suivants : j'ai dit "le livre de la jungle" pour un film qui est normalement intitulé the jungle book et je ne sais pas pourquoi ça a marché. un autre film intitulé "el gringo" un autre "13 hours" ,"misconduct" , "suicide squad", "dead rising" sauf "i am wrath"
conclusion : il y a une bonne probabilié meme pour les films avec noms anglais et espagnol
et je crois que lorsque il ne comprend pas le nom d'un film et joue le premier film de la liste.

une autre idée. c'est par exemple dire "affiche la liste des films " et dire "choisir le premier" le 2ème" le 3éme en dessous" mais je crois que c'est un peut compliqué à réaliser. j"ai vu ça dans une video sur youtube. si on arrive à appliquer cette méthode ça sera valable pour les séries, les film, la musique et tout.

@kevincaradant
Copy link
Contributor

kevincaradant commented Feb 20, 2017

@trarizakaria, envoi moi un mail si tu peux. J'aimerai arrêter de faire un HS sur ce thread dès maintenant ;)

Recap:
J'ai mis à jour à nouveau le plugin:

  • Commande ENCORE opérationnelle grâce à @alexylem : jv_repeat_last_command doesn't work if we are "encapsulated" in a command #442
  • Remplacement commande VOLUME BAS / HAUT par VOLUME FAIBLE / FORT
  • Remplacement commande JOUER par LIRE / REPRENDRE
  • Ajout de la fonctionnalité de lecture de série :) => Exemple: Lance la série banshee saison 2 episode 4. J'ai essayé de rajouter un transformer qui fait que si tu dis 2 et que Jarvis comprend "deux" ou "de", il écrira quand meme 2. Cette méthode devra être améliorée avec le temps en fonction des langues. J'ai geré que en et fr pour l'instant.

Voilà voilà. Je garde en tête de finir par le délire de PREMIER, DEUXIEME etc mais faut que je réfléchisse comment faire.

Si tu vois d'autres trucs qui clochent, n’hésite pas. Demain j'essaie les commandes vocales sur Android. J'ai pas eu le temps de regarder encore.

Ne répond pas ici si pour Kodi si tu en as l'intention mais plutot par mail merci ;)

Edit: @trarizakaria, Tasker est payant ou il existe une version de test gratuit ? Merci

@trarizakaria
Copy link

trarizakaria commented Feb 22, 2017

@kevincaradant Je voulai te contacter par email. Mais j'ai pas trouvé [email protected]

@sebogoss11
Copy link

Kodi se lance mais
Les contrôles haut bas gauche valide etc...ne marchent pas les gars :/

@kevincaradant
Copy link
Contributor

kevincaradant commented Jul 7, 2017

Bizarre cela marchait lorsque j'avais testé à l'époque. Faudrait passer en mode debug pour comprendre pourquoi ça marche pas. Tu dis quoi exactement comme commande, même par clavier ça ne fonctionne pas ?

N'aurais tu pas oublié de dire " CONTROLE KODI" => puis => BAS etc
Si tu veux arreter d'interagir avec kodi: Tu dis "TERMINE
AVEC*KODI"

Doc ici : https://openjarvis.com/plugins/kodi

@wikijm
Copy link
Collaborator

wikijm commented Jul 8, 2017

Bonjour tout le monde 🙋‍♂️

Est-ce que vous pouvez continuer à discuter des problèmes avec le plugin Kodi sur son repo https://github.com/kevincaradant/jarvis-kodi/issues ?

Ça évite les threads à rallonge et les hors-sujet 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants