Sp@r0 Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 python n'a rien de compliqué c'est même un des langages les plus simples c'est facile à coder mais il faut un compteur edf compatible pour faire des tests!!! Perso j'ai développé un soft en python pour lire mes consommation EDF mais comme j'ai un compteur electromécanique j'utilise une sonde radio OWL CM111 et je décode les trames en python c'est pas très compliqué à faire Pour la compilation a mon avis il suffit de récupérer le répertoire include de mysql de la GPL et d'exécuter : gcc -Wall teleinfoserial_mysql.c -o teleinfoserial_mysql -I /chemin_vers_le_include 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 cela peut fonctionner j ai bien ma trame qui ressemble a peut prêt a ca : ADCO 524563565245 / OPTARIF HC.. < ISOUSC 20 8 HCHC 001065963 _ HCHP 001521211 ' PTEC HC.. S IINST 001 I IMAX 008 2 PMAX 06030 3 PAPP 01250 + HHPHC E 0 MOTDETAT 000000 B PPOT 00 # ADCO 524563565245 / OPTARIF HC.. < ISOUSC 20 8 il me faut donc récupérer les infos et les mettre dans mysql 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sp@r0 Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 Bon j'ai trouver une astuce pour le compiler Il faut faire : ipkg install gcc ipkg install mysql /opt/etc/init.d/K70mysqld stop rm /opt/etc/init.d/K70mysqld rm /opt/etc/init.d/S70mysqld gcc -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -L /opt/lib/mysql/ -lmysqlclient -o teleinfoserial_mysql Pour exécuter le programme env LD_LIBRARY_PATH=/opt/lib/mysql ./teleinfoserial_mysql Il peut être intéressant de lancer le programme dans un terminal permanent avec screen (ipkg install screen) screen env LD_LIBRARY_PATH=/opt/lib/mysql ./teleinfoserial_mysql Alors je n'ai aucune idée si cela marche mais en tous cas cela s'exécute sans erreur, je ne sais pas si la bidouille va fonctionner pour la connexion au mysql du syno ..... Je garantie pas la méthode et comme toujours vous essayé a vos risques et périls 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 merci !! A quoi sert /opt/etc/init.d/K70mysqld stop et pourquoi le supprimer après ? rm /opt/etc/init.d/K70mysqld rm /opt/etc/init.d/S70mysqld gcc -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -L /opt/lib/mysql/ -lmysqlclient -o teleinfoserial_mysql Je pense que cette ligne permet de compiler Il peut être intéressant de lancer le programme dans un terminal permanent avec screen (ipkg install screen) screen env LD_LIBRARY_PATH=/opt/lib/mysql ./teleinfoserial_mysql c est a dire dans un terminal permanent a quoi cela sert il ? je vais tester ca et je te fait un retour . Encore merci d avoir passé du temps sur mon probleme. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sp@r0 Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 Le syno dispose déjà d'un mysql avec la commande ipkg j'en installe un autre mais avec les dépendances qui manquent d'origine sur le syno... Le soucis c'est qu'il vaut mieux éviter d'avoir 2 serveurs en route en même temps ... la première commande c'est pour arrêter le mysql d'ipkg les 2 suivantes c'est pour l'empêcher de démarrer automatiquement .... Lorsque tu lances un programme dans un shell le programme s'arrête quand tu quittes le shell en question, il faut soit que le programme soit coder pour passer en mode daemon (ce qui n'est pas le cas) soit il faut le lancer dans un terminal virtuelle qui ne ce ferme jamais => la commande screen (largement utilisé sous nux tu trouveras plein de chose la dessus sur le net) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 alors j ai executé les commands tout semble fonctionner mais je ne peux pas voir dans phpmyadmin du syno quand je veux me connecter il me marque phpMyAdmin - Erreur #2002 - Le serveur ne répond pas (ou l'interface de connexion vers le serveur MySQL local n'est pas correctement configurée) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) alors j ai executé les commands tout semble fonctionner mais je ne peux pas voir dans phpmyadmin du syno quand je veux me connecter il me marque phpMyAdmin - Erreur #2002 - Le serveur ne répond pas (ou l'interface de connexion vers le serveur MySQL local n'est pas correctement configurée) Essaie de stopper puis de redémarrer le serveur MySQL natif DSM : panneau de conf -> services web-> applications web ->activer MySQL: décocher la case <appliquer> cocher la case <appliquer> Je pense que l'installation du mysql ipkg à fait un peu de dégats: j'ai pu reproduire le phénomène en faisant un ipkg install mysql suivi d'un ipkg remove mysql [/code] Modifié le 3 juillet 2012 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 ipkg install mysql j ai vu sur des forum que cette command supprimer le mysql natif du synology 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) ipkg install mysql j ai vu sur des forum que cette command supprimer le mysql natif du synology (on lit beaucoup de c**ies dans les forums, faut filtrer) Non rien n'est supprimé: ça cohabite difficilement c'est tout. [EDIT] Les deux instances utilisent le meme socket de connexion ("/tmp/mysql.sock"), et donc la 2eme à être lancée va écraser ce dernier et rendre la 1ère instance inaccessible Mais, après avoir appliqué les commandes qu'a donné Sp@r0, l'instance mysql ipkg ne se lancera plus et donc plus de problème Mais encore fallait-il relancer le mysql DSM pour tout remettre nominal. Modifié le 3 juillet 2012 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 yes phpmyadmin refonctionne merci Coolraoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 alors j ai tout restesté la commande : env LD_LIBRARY_PATH=/opt/lib/mysql ./teleinfoserial_mysql ne renvoi aucune erreur Aucune ligne dans ma BDD ! comment voir les erreurs de ce fichier ? cdlt 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) Il semble y avoir une option pour activer un mode "debug" dans le source Faut recompiler avec la commande modifiée suivante gcc -DDEBUG -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -L /opt/lib/mysql/ -lmysqlclient -o teleinfoserial_mysql[/CODE] puis relancer l'exécution voir si ça te donne des pistes Modifié le 3 juillet 2012 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 (modifié) Bon et bien je peux vous dire officielement que tout fonctionne a merveille j ai réinstallé tout depuis le début il semblerait que le nas désactive le code a son redémarrage Preparation mknod /dev/ttyUSB0 c 188 0 stty -F /dev/ttyUSB0 1200 sane evenp parenb cs7 -crtscts wget http://******/usbserial.ko wget http://*******/ftdi_sio.ko insmod usbserial.ko insmod ftdi_sio.ko voir les infos cat /dev/ttyUSB0 que faut t il faire pour executer ce code au demarrage du nas ? Modifié le 3 juillet 2012 par mickeys 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sp@r0 Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 Copie les modules .ko dans /opt/lib/modules (il faut créer le répertoires) il faut faire un fichier de démarrage du genre (qui nécessite l'installation de screen (ipkg install screen): #!/bin/sh # # Startup script for USB2Serial # # Make sure the device has a /dev entry # Make device if not present (not devfs) if ( [ ! -c /dev/ttyUSB0 ] ) then # Make /dev/ttyUSB0 directory if needed mknod /dev/ttyUSB0 c 188 0 fi # Make sure the driver is running if ( !(lsmod | grep "^usbserial" -q) ); then insmod /opt/lib/modules/usbserial.ko fi if ( !(lsmod | grep "^ftdi_sio" -q) ); then insmod /opt/lib/modules/ftdi_sio.ko & fi sleep 1 stty -F /dev/ttyUSB0 1200 sane evenp parenb cs7 -crtscts sleep 1 /opt/bin/screen -dmS Teleinfo env LD_LIBRARY_PATH=/opt/lib/mysql ./teleinfoserial_mysql il faut mettre ce fichier dans /opt/etc/init.d/S99Teleinfo il faut le rendre exécutable chmod +x /opt/etc/init.d/S99Teleinfo tu peux récupérer à tt moment le terminal virtuelle avec la commande screen -r Teleinfo pour le "lâcher" c'est CTRL+A puis d 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) # Make sure the driver is running if ( !(lsmod | grep "^usbserial" -q) ); then insmod /opt/lib/modules/usbserial.ko fi if ( !(lsmod | grep "^ftdi_sio" -q) ); then insmod /opt/lib/modules/ftdi_sio.ko & fi C'est bien mais il y avait mieux, en 4 lignes seulement: for module in usbserial ftdi_sio ; do # Make sure the driver is running lsmod | grep -q "^$module" || insmod /opt/lib/modules/$module.ko done Modifié le 3 juillet 2012 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 3 juillet 2012 Auteur Partager Posté(e) le 3 juillet 2012 (modifié) vous êtes trop fort les gars super merci ia plus qu a faire une grosse synthèse pour un tuto . je vais faire ça prochainement Merci a tout le monde : dans un premier temps a fmldiscute Pour ses fichiers .ko qu'il ma gracieusement envoyé A Sp@ro ( le chef developpeur ) pour la compilation du fichier et ses explications très enrichissantes. et merci a coolRaoul qui a suivi le sujet depuis le depuis en postant des petits tuyaux très utiles et indispensables. cdlt Modifié le 3 juillet 2012 par mickeys 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sp@r0 Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) C'est bien mais il y avait mieux, en 4 lignes seulement: for module in usbserial ftdi_sio ; do # Make sure the driver is running lsmod | grep -q "^$module" || insmod /opt/lib/modules/$module.ko done Je m'incline, c'est effectivement beaucoup plus élégant :) To mickeys => toujours un plaisir de rendre service :) tu peux remercier ma deuxième futur fille que l'on attend avec impatiente (le 12 juillet en théorie) ce qui me bloque à la maison pour m'occuper de la maman et ma première fille (3ans) Modifié le 3 juillet 2012 par Sp@r0 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
fmldiscute Posté(e) le 3 juillet 2012 Partager Posté(e) le 3 juillet 2012 (modifié) Trop cool, je galerais avec ma vm et les librairies SQL. Sp@ro ... trop bon !!! Je rajoute le lien a mon tuto ... Autrement tu as aussi le moyen de passer par arduino et carte teleinfo pour stocker les infos. Modifié le 3 juillet 2012 par fmldiscute 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 4 juillet 2012 Auteur Partager Posté(e) le 4 juillet 2012 (modifié) je passe par le teleinfo de http://teleinfo.dauguet.net/ pour récupérer les données et je les stock sur le ds212j Modifié le 4 juillet 2012 par mickeys 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
starIst Posté(e) le 22 novembre 2012 Partager Posté(e) le 22 novembre 2012 Salut alors quand je veux compiler j'ai ca gcc -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -lmysqlclient -o teleinfoserial_mysql /opt/lib/gcc/powerpc-linux-gnuspe/3.4.6/../../../../powerpc-linux-gnuspe/bin/ld: cannot find -lmysqlclient collect2: ld returned 1 exit status Je ne trouve pas... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sp@r0 Posté(e) le 23 novembre 2012 Partager Posté(e) le 23 novembre 2012 Prend le temps de lire ce topic en entier surtout la page2 qui explique en détails comment faire 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
starIst Posté(e) le 23 novembre 2012 Partager Posté(e) le 23 novembre 2012 Oui c'est fait et j'ai tout suivi mais ca ne fonctionne pas c'est justement pour cela que j'écris ca ! j'ai bien installé le paquet mysql, car avant j'avais une erreur sur le include mysql.h, mais maintenant j'ai un autre message d'erreur.... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
starIst Posté(e) le 25 novembre 2012 Partager Posté(e) le 25 novembre 2012 Personne ? J'ai beau chercher, suivre la procédure et ca ne marche pas... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
starIst Posté(e) le 29 novembre 2012 Partager Posté(e) le 29 novembre 2012 Alors j'ai fait un double reset sur le NAS, et j'ai réinstallé comme décrit ici et quand je fais gcc -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -L /opt/lib/mysql/ -lmysqlclient -o teleinfoserial_mysql SRV_2L2I> gcc -Wall teleinfoserial_mysql.c -I /opt/include/mysql/ -L /opt/lib/my sql/ -lmysqlclient -o teleinfoserial_mysql /opt/lib/gcc/powerpc-linux-gnuspe/3.4.6/../../../../powerpc-linux-gnuspe/bin/ld: dynamic variable `_SDA_BASE_@@libmysqlclient_14' is zero size /opt/lib/gcc/powerpc-linux-gnuspe/3.4.6/../../../../powerpc-linux-gnuspe/bin/ld: /opt/lib/gcc/powerpc-linux-gnuspe/3.4.6/../../../../powerpc-linux-gnuspe/lib/cr t1.o(.rodata+0x0): unresolvable R_PPC_ADDR32 relocation against symbol `_SDA_BAS E_@@libmysqlclient_14' /opt/lib/gcc/powerpc-linux-gnuspe/3.4.6/../../../../powerpc-linux-gnuspe/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status Je comprends rien... A priori il trouve bien la librairie mysqlclient mais ca merdouille quand meme... helpppp 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mickeys Posté(e) le 26 janvier 2013 Auteur Partager Posté(e) le 26 janvier 2013 bonjour je suis en version dsm 4.0 si je passe en 4.1 suis obligé de recompiler les fichiers pour que mon teleinfo fonctionne ou cela devrait fonctionner . car j ai pas mal galéré pour que tout fonctionne correctement et je ne voudrais pas repasser des semaines a tout refaire cordialement 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.