ldleman / yana-server

Interface PHP de domotique Y.A.N.A (You Are Not Alone)
http://projet.idleman.fr/yana
107 stars 59 forks source link

GPIO / STORY : problème reconnaissance gpio #234

Closed ingfred closed 8 years ago

ingfred commented 8 years ago

Bonjour Idle. Il semblerait que tu sois un peu en avance (2 ans) sur l'ajout des gpio (gpios gpii ?) en entrée de scénario. J'ai un petit soucis : L'activation du gpio ne génére rien Voici la capture d'écran lorsque je lance nerve à la main. Il manque le dossier gpio4 semble t'il. Petit copie d'écran du lancement et du cat du dossier /sys/var.... capture du 2016-05-17 09 46 44

ldleman commented 8 years ago

C'est bien la première fois qu'on me reproche mon avance ^^ champagne. Là comme ça je ne vois que deux causes possibles : 1) Ta librairie wiring pi n'est pas à jour (je crois que les intterupts ont été ajoutés dans les dernières versions) 2) Un autre programme/librairie monopolise ton gpio 4 3) Ton pin 4 est manquant ou défectueux ? Tu a quelle version/revision/modèle de pi ?

Les tests suivants sont nécessaires :

1) Vérifie que tu peux taper des commandes type gpio write 4 1 gpio read 4

2) essaye de mettre wiring pi a jour

3) Tu peux désactiver l'interrupt sur le 4 en faisant un nano nerve.cpp -> supprimer ou commenter la ligne 168 et sauvegarder Recompiler avec la commande g++ -g -o nerve nerve.cpp -lwiringPi

ingfred commented 8 years ago

Quelle réponse rapide ! wiring pi dernière version. J'avais un upgrade juste avant. gpio write 4 1 me laissait le read à 0 mais en passant par yana il passe bien le gpio à 1. C'est un raspi B+. Je tente la recompile

ingfred commented 8 years ago

reinstall de wiring pi dist upgrade. recompil. rien n'y fait. Faut-il un truc branché physiquement sur le gpio ?

ldleman commented 8 years ago

Quand tu fais gpio write 4 1 puis gpio read 4 il te retourne 0 ? oO Dans ce cas il ya de grandes chances que ton pin soit mort ou busy. Yana utilise la commande write de wiring pi donc ça ne devrait pas plus fonctionner depuis yana.

Quand tu recompile en gardant uniquement le pin 0 (L165 de nerve en supprimant les autres lignes en dessous) ça te met toujours l'erreur ?

ldleman commented 8 years ago

Non pas besoin de brancher un truc physiquement, tu peux changer les pins depuis le widget gpio de la dashboard pour tester

ingfred commented 8 years ago

Ok cela fonctionne. J'ai commenté dans nerve.cpp les lignes de GPIO 0 (utilisé pour la liason radio) et tout après le GPIO 3. puis recompilé, droits, etc. Cela doit être un conflit ou pb de droits car le gpio write ne me changeait pas l'etat gpio alors que via l'interface cela passait bien l'etat gpio a 1

ingfred commented 8 years ago

Merci pour le debug. Je continue a tester.

ingfred commented 8 years ago

Le message d'erreur est tordu. J'ai commenté le 0 et du 5 au 23. Et cela passe. Ce doit être le gpio 5 qui pose pb

ingfred commented 8 years ago

J'ai vu que pour l'instruction @reboot il fallait indiquer le user. Au cas ou j'ai mis @reboot root /var/www/yana-server/nerve .... dans le crontab. A confirmer

ldleman commented 8 years ago

de mémoire le cron s'execute avec les droit user du créateur du cron, je vais vérifier :)

ldleman commented 8 years ago

Je pense effectivement que l'un de des pins est soit mort, soit sollicité en permanence par un autre soft/librairie ce qui cause ton pb, je ne vois pas d'autre explication a ce problème.

Je clos, n'hésite pas a rouvrir un post si tu découvre autre chose la dessus :)

ingfred commented 8 years ago

Ok merci. Pour le @reboot, j'ai simplement vu dans un tuto qu'il fallait préciser le user pour ces variables @reboot, @daily,etc. C en'est peut être plus necessaire. A garder en tete en cas de pb.