Aller au contenu

Teleinfo


Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 55
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

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

Lien vers le commentaire
Partager sur d’autres sites

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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é par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

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é par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

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é par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

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é par mickeys
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites


# 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


XlgKZ.png 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

:P

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

vous êtes trop fort les gars super merci :ph34r:

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é par mickeys
Lien vers le commentaire
Partager sur d’autres sites

XlgKZ.png

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

:P

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é par Sp@r0
Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

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...

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.