Closed Jean-Bernard-Hallez closed 7 years ago
Problème N°2 dans entering_cmd il y un une exécution de /home/pi/jarvis/plugins/jarvis-essai/essai.sh qui tourne en boucle sans jamais s'arrêter....
Bon alors suite à la discussion dans https://github.com/alexylem/jarvis/issues/335#issuecomment-271946644 tu verras que j'ai bien désactivé les hooks quand utilisé depuis l'API. Mais pas quand jarvis est lancé depuis le Shell. Dans ton crontab Jarvis est lancé depuis le shell. Donc c'est normal que le hook soit déclenché. En effet c'est un peu embêtant dans ton cas. Je te propose 2 possibilités:
curl "http://localhost:8080?order=quelle heure"
J'aimerais avoir les 3 scripts on.sh off.sh et blink.sh pour brancher une seule led et savoir l'état de jarvis comme l'exemple qu'a donné Alex. Je suis débutant et j'ai pas pu comprendre le lien qui parle d'une certaine kinect il y a 3 led. Si c'est possible de m'éclairer ou de me diriger ves un sujet qui parle de ça. Merci a tous.
bonjour @trarizakaria voir #376 ... Est-ce suffisant ??
Attention... moi je suis branché directement sur le port GPIO de mon raspberry !!!! ce n'est pas la même technique utilisé pour la kinnect.
C'est ce que je veux moi aussi. Et je vais faire comme toi. 2 led branchée directement sur la raspberry. Une pour surveiller le programme et l'autre pour le mode commande. Je suis entrain de faire un peu de lecture car j'ai jamais utiliser les Gpio. J'ai juste une question. un script bash ou python ? Lequel est facile a mettre en oeuvre ?
Bon je t'envoie tout cela... quel est ton Email ???
c'est trarizakaria@gmail.com. Merci infiniment
@alexylem je vient de modifier mon crontab avec la commande curl "http://192.168.0.1:8080?order=quelle%20heure" à la place de l'autre... je te tiens au jus...
le %20 est important !!!! sinon ca bug... curl ne supporte pas les espaces vide....
@trarizakaria comme promis voilà.... https://github.com/Jean-Bernard-Hallez/jarvis-testjb/blob/master/Jarvis%20de%20JB.pdf
@Jean-Bernard-Hallez tu reviens vers moi pour les 2 possibilités proposées plus haut?
@Jean-Bernard-Hallez excellent pdf. ton jarvis est mignon :) . le tuto est bien clair et devrai aider beaucoup d'utilisateurs comme moi. merci pour le partage
Le jarvis de JB peut-être discuté sur le ticket dédié: #413
Oui bien sûr @alexylem ....
@Jean-Bernard-Hallez tu reviens vers moi pour les 2 possibilités proposées plus haut? histoire d'avancer et cloturer le ticket? Merci!
Désolé je suis parti pour 1semaine en formation... le problème de l'api direct est que si jarvis est arrêté forcément ça ne marche plus pour cette option... je suis ok peux-tu essayer la version 1 sachant que je ne pourrais pas la tester desuite... d'ici mon retour si il y a eu des retours négatif je garderai l'option 2... je clôture le ticket ???
J'en ai profité pour créer une nouvelle variable:
$jv_api # Boolean: indicates if called using API else normal usage
if $jv_api; then
echo "from api"
else
echo "normal usage"
fi
J'attends tes retours avant de fermer le ticket.
Ouai Merci @alexylem Ca marche super bien... et.... il y a t'il possibilité de détecter aussi lorsque je suis en mode keyboard ?
En fait non @alexylem... il y a toujours un os... il n'y a plus de hooks Program exit... lorsque l'on quitte jarvis par la fonction Stop Jarvis quand il est déja lancé.... les commandes ne se lancent plus. Aïe... lol Ce qui fait que dans mon cas je ne sais pas si il tourne en tache de fond ou pas... ma led reste toujours allumée.
Actuellement le point positif c'est lorsque l'on fait ~/jarvis/jarvis.sh -x "quelle heure est-il?"
à la fin,
ma led principale M/A ne s’éteint plus.
il y a t'il possibilité de détecter aussi lorsque je suis en mode keyboard ?
Oui:
$keyboard # Boolean: indicates if using keyboard mode
if $keyboard; then
echo "using keyboard"
else
echo "using voice"
fi
il n'y a plus de hooks Program exit... lorsque l'on quitte jarvis par la fonction Stop Jarvis quand il est déja lancé
Il n'y en a jamais eu sur le "kill" Jarvis. Mais je peux le rajouter 😄 Ca t'intéresse?
Super Merci... ca fonctionne le keyboard... et oui STP peux tu me rajouter lorsque l'on quitte jarvis un hook
@Jean-Bernard-Hallez en fait j'ai testé et chez moi le Stop Jarvis déclenche déjà le program_exit
hook:
# Terminal 1
$> ./jarvis.sh -nv
# Jaris now started and running
# Terminal 2
$> ./jarvis.sh
# Jarvis is already running
# je sélectionn Stop Jarvis
Jarvis has been terminated
# Terminal 1
# program_exit hook
Si je le lance comme toi ok: ./jarvis.sh -nv ma led s'allume, je quitte ok ca fonctionne mais Le certifie qu'en faisant ceci: ./jarvis.sh puis dans le menu "start as service" et quand je quitte en faisant ./jarvis.sh puis "stop jarvis" Ma led reste allumée... Et Jarvis est bien arrêté !
$verbose && jv_debug "DEBUG: program_exit hook"
(( $1 )) && say "J'ai rencontré une erreur, relancez-moi!"
gpio write 0 0
gpio
write 2 0
gpiowrite 3 0
Ok en effet ca ne marche pas si je lance Jarvis en mode service. J'ai modifié le code pour lancer Jarvis en mode troubleshooting et ainsi tout sortir dans la log jarvis.log lorsqu'il est lancé en mode service. Et quand je l'arrête je n'y trouve pas le hook program_exit. J'essaye de trouver une solution plus propre que celle que j'ai en tête 😄
Ok Merci beaucoup....
Vas-y mets à jour et réessaye.
20/20 !!! Merci je clôture...
Coucou @alexylem Aie... Tu as fais un modif qui lance Jarvis " Start as a service " en mode "Troubleshooting"... C'est à dire que j'ai le retour de ma voix.... même si je le lance par ./jarvis.sh -b
./jarvis.sh -v ne fonctionne peut-être pas comme il le faut vérife
Et si Jarvis est arrêté avec ./jarvis.sh -s "Bonjour" il me dit: ERROR: Jarvis is not running Ce qui ne me gène pas personnellement mais on pouvais le forcer avant même quand il était arrêté...
Merci merci !!!!
Oups!!! C'est corrigé pour le mode troubleshooting... désolé 😞 Pour l'autre erreur maintenant c'est normal, c'est lié à l'implémentation de #440.
Ok Merci... je teste...
CA fonctionne... Merci super... Il y a t-il une variable qui me permets de savoir si jarvis a été lancé par la commande externe jarvis -x .....
Il y a t-il une variable qui me permets de savoir si jarvis a été lancé par la commande externe jarvis -x
if [ "$just_execute" != false ]; then
# started with -x, "$just_execute" contains the order in argument
fi
Mais je te conseille quand même d'utiliser $jv_api
qui sera plus pérenne dans le temps. $jv_api
est à true si Jarvis est utilisé en mode API, que ce soit via Jarvis-API ou simplement avec le flag -x
.
Ok super je teste.... ;-) et ca marche... ;-)
Bonjour... suite à la mise à jour je n'ai pas d'amélioration des hooks:
Voici mes hooks pour vous expliquer le problème:
entering_cmd $verbose && jv_debug "DEBUG: entering_cmd hook" /home/pi/jarvis/plugins/jarvis-essai/essai.sh gpio mode 2 out
gpio mode 0 out gpio write 2 1 gpio write 0 1
sleep 0.2 gpio write 2 0 gpio write 0 0
sleep 0.2 gpio write 2 1 gpio write 0 1
sleep 0.2 gpio write 2 0 gpio write 0 0
sleep 0.2 gpio write 2 1 gpio write 0 1
exiting_cmd $verbose && jv_debug "DEBUG: exiting_cmd hook" gpio mode 2 out gpio mode 0 out gpio write 2 0 gpio write 0 0
program_exit $verbose && jv_debug "DEBUG: program_exit hook" (( $1 )) && say "J'ai rencontré une erreur, relancez-moi!" gpio write 0 0 gpio write 2 0 gpio write 3 0
program_startup $verbose && jv_debug "DEBUG: program_startup hook" gpio mode 3 out gpio write 3 1
Mon jarvis est composé de 2 leds pour les yeux et 1 pour le Nez, cette dernière doit resté allumé tant que jarvis fonctionne.
Mon soucis c'est que lorsque j'ai une commande dans mon crontab comme ceci:
7-21 * * 1-5 ~/jarvis/jarvis.sh -x "quelle heure est-il?"0
toutes les heures il m'annonce l'heure...Mais dès que c'est fait... la led du nez s’éteint comme si jarvis ne fonctionnait plus alors qu'il tourne encore...
j'ai le plugin UI & API.