Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

  1. Home
  2. Categories
  3. Téléinfo
  4. Téléinfo
  5. configuration MySQL

configuration MySQL

Scheduled Pinned Locked Moved Téléinfo
broadcastemoncmsteleinfomysql
16 Posts 4 Posters 9.1k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • BrunoB Offline
    BrunoB Offline
    Bruno
    wrote on last edited by Bruno
    #1

    j’essaye de faire fonctionner la téléinformation EDF, avec quelques difficultés (mais des progrès, sachant que je pars de 0 en électronique et en informatique). Mon but étant d’envoyer les données vers emoncms et également vers une bdd sql.
    Au niveau hardware, j’ai un Raspberry Pi récupérant sur le GPIO/ttyAMA0 les données de téléinformation, via un montage avec optocoupleur (cf magdiblog.fr)

    J’ai fait un cron pour envoyer les données toutes les 5 minutes vers emoncms (après avoir mis daemon à 0)

    Je souhaite maintenant envoyer les données vers une bdd sur mon Pi, et voici mes paramètres de teleinfo.conf :

    mysql = 1
    server = localhost (je reste bien sur mon Pi)
    user = root (login du phpmyadmin de mon Pi)
    password = XXXX (mot de passe de phpmyadmin de mon Pi)
    database = bdd_teleinfo (bdd créée sur phpmyadmin de mon Pi)
    table = DbiTeleinfo (non créée)
    mysql_port = 3306
    

    apparemment ça ne fonctionne pas : lorsque je lance teleinfo, j’obtiens un chiffre égal pour “MySQL init OK” et “MySQL connect errors”

    Faut il que je crée la table DbiTeleinfo avec les champs correspondant ?

    Merci beaucoup pour votre aide, mes questions doivent sembler évidentes mais je débute.

    Bonne journée et bonne année !

    1 Reply Last reply
    • CharlesC Offline
      CharlesC Offline
      Charles
      wrote on last edited by
      #2

      Bruno,

      Oui tout à fait, il faut que la table DbiTeleinfo existe, le script de creation est dispo en fin d’article suivant

      Sinon, ta config est bonne, il faut bien sur mettre le daemon = 0 si tu lances le programme toutes les 5 minutes

      1 Reply Last reply
      • BrunoB Offline
        BrunoB Offline
        Bruno
        wrote on last edited by
        #3

        Merci beaucoup, la base de donnée est bien alimentée !

        Dernier hic : malgré le daemon à 0, la commande teleinfo envoie des trames en continu vers emoncms et ma base de donnée, qui va exploser. Il faut que je fasse ctrl + C pour arrêter l’envoi…Et ceci avec le cron désactivé.

        De la même maniere, avec le cron : */1 * * * * /home/Rpi/teleinfo/teleinfo , l’envoi des trames est continu ce qui est logique compte tenu de ce qui précède.

        Comment donc n’envoyer qu’une seule trame à chaque execution du script ?

        Encore merci pour ton aide.

        1 Reply Last reply
        • CharlesC Offline
          CharlesC Offline
          Charles
          wrote on last edited by
          #4

          Bruno,

          Exact, je pensais que çà fonctionnait mais il n’en est rien, je fais la même chose que toi d’une autre manière, çà fonctionne. Je m’explique, il faut lancer le daemon qui va tourner en permanence puis après toutes les 5 minutes tu lances le client.

          Voici la procédure : tu remplis bien ton fichier de conf avec tes paramètres (MySQL emoncms, api, .) mais tu mets bien les lignes suivantes (les paramètres seront donnés en ligne de commande) :

          mode = send
          daemon = 0
          mysql = 0
          emoncms = 0
          

          ensuite tu lances le daemon avec la commande suivante, il va tourner en permanence :

          teleinfo -m s -d
          

          Ensuite il te suffit de lancer le client quand tu le souhaites, c’est celle-ci pour loguer dans myqsl (pour emoncms remplacer -q par -e et pour faire les 2 d’un coup tu mets les 2 : -q -e . çà peut durer entre 1 et 5 seconde, c’est normal.

           ./teleinfo -m r -q``
          

          Voila le résultat chez moi

          (nand)root@sheeva01:/homes/root/teleinfo# ./teleinfo -m s -d
          (nand)root@sheeva01:/homes/root/teleinfo# ./teleinfo -m r -q -e
          teleinfo 1.0.8 Statistics
          ==========================
          Frames Sent         : 0
          Frames checked      : 1
          Frames OK           : 1
          Checksum errors     : 0
          Frame format Errors : 0
          Frame size Errors   : 0
          MySQL init OK       : 1
          MySQL init errors   : 0
          MySQL connect OK    : 1
          MySQL connect errors: 0
          MySQL queries OK    : 1
          MySQL queries errors: 0
          EmonCMS total post  : 1
          EmonCMS post OK     : 1
          EmonCMS post errors : 0
          EmonCMS timeout     : 0
          --------------------------
          (nand)root@sheeva01:/homes/root/teleinfo#
          

          Je te l’accorde c’est un peu tiré par les cheveux, il faut que je prévois l’option “une seule fois” dans la prochaine version.

          En revanche tu peux lancer le client sur n’importe quelle autre machine réseau et pas uniquement sur celle ou tourne le daemon

          1 Reply Last reply
          • BrunoB Offline
            BrunoB Offline
            Bruno
            wrote on last edited by
            #5

            Merci pour ta réactivité.

            J’ai mis à jour le .conf et tapé les commandes que tu indiques, mais le résultat n’est pas concluant : toutes les stats de ./teleinfo -m r -q -e sont à 0.
            J’ai investigué par un kill -s SIGUSR1 pidof teleinfo
            -> Il y a bien des trames envoyées en permanence, mais elles ne sont pas reçues…

            Faut il que j’achète un autre Pi ? Ma config de réception est elle mauvaise ?
            Autre question : comment tuer le daemon autrement qu’en rebootant le Pi ?

            (pour info, malgré la case “Notify me of follow-up…” cochée, je ne reçois pas de mail (ce qui n’est pas bien grave, je viens souvent)

            Bonne soirée

            1 Reply Last reply
            • CharlesC Offline
              CharlesC Offline
              Charles
              wrote on last edited by
              #6

              Bruno,

              Peut être que cela provient de ta configuration réseau, peux-tu me donner le résultat d’unìfconfig sur ton PI ? Tu n’es peut être pas en 192.168.1.x auquel cas il faut mettre à jour dans le fichier de configuration.

              Pour tuer le daemon il suffit de faire la commande killall teleinfo

              Merci pour les notifications, c’est ennuyeux,je viens de modifier la config pour le forum, tu pourrais m’indiquer si çà fonctionne mieux ?

              Merci à toi.

              1 Reply Last reply
              • BrunoB Offline
                BrunoB Offline
                Bruno
                wrote on last edited by
                #7

                Effectivement, mon adresse était erronée (broadcast = 192.168.0.255). Tout fonctionne parfaitement maintenant, je te remercie chaudement.

                Je résume mes manips, au cas où ça pourrait servir à des débutants comme moi :

                • Hardware issu du montage très simple de http://www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/
                • Programme issu du post : http://hallard.me/teleinfo-emoncms/
                • Création d’une base de donnée MySQL sur le Pi avec phpmyadmin, et création de la table DbiTeleinfo à l’aide du lien précédent
                • Code pour que ttyS0 pointe sur le port série ttyAMA0, à refaire à chaque démarrage du Pi:
                  sudo ln -s /dev/ttyAMA0 /dev/ttyS0
                • Paramétrage de teleinfo.conf avec mode = send, daemon = 0, mysql = 0, emoncms = 0
                • Commande pour envoyer des données en permanence sur le réseau:
                  teleinfo -m s -d
                • Paramétrage de Crontab (Crontab -e) pour recevoir les données chaque minute sur emoncms et sur la base de donnée MySQL de mon Pi :
                  */1 * * * * /home/Rpi/teleinfo/teleinfo -m r -q -e

                Et sinon je n’ai pas reçu de notification malgré la case cochée.

                Très bonne journée

                E 1 Reply Last reply
                • CharlesC Offline
                  CharlesC Offline
                  Charles
                  wrote on last edited by
                  #8

                  Bruno,

                  Nickel si çà marche, pour les notifications je regarde car moi même je ne les reçois plus

                  1 Reply Last reply
                  • F Offline
                    F Offline
                    FuzeMOB31
                    wrote on last edited by
                    #9

                    Bonjour,

                    Tout d’abord merci pour tout ce travail !
                    J’ai suivi vos tutos sur la téléinfo et l’envoi vers une BdD MySQL.
                    Voici mon problème : je dispose d’une Raspberry et je souhaite envoyer les données de téléinfo vers la base MySQL de mon disque réseau Synology.
                    J’ai suivi vos conseils ci-dessus et voici ce que j’obtiens :

                    pi@domoticzpi /etc $ teleinfo -m s -d
                    pi@domoticzpi /etc $ teleinfo -m r -q
                     
                    teleinfo 1.0.8 Statistics
                    ==========================
                    Frames Sent         : 0
                    Frames checked      : 1
                    Frames OK           : 1
                    Checksum errors     : 0
                    Frame format Errors : 0
                    Frame size Errors   : 0
                    MySQL init OK       : 1
                    MySQL init errors   : 0
                    MySQL connect OK    : 0
                    MySQL connect errors: 1
                    MySQL queries OK    : 0
                    MySQL queries errors: 0
                    EmonCMS total post  : 0
                    EmonCMS post OK     : 0
                    EmonCMS post errors : 0
                    EmonCMS timeout     : 0
                    --------------------------
                    

                    A priori toues mes adresses, mots de passe, nom de table,… sont corrects.
                    Pour information, le logiciel Domoticz tourne en parallèle et interroge également le port /dev/ttyAMA0 : pas de conflits possible ?
                    Est-ce un problème du côté du Synology ?

                    Autre question : lorsque cela fonctionnera, comment faire pour envoyer les données dans la BdD toutes les 1 à 2 minutes ?

                    Merci d’avance.

                    1 Reply Last reply
                    • CharlesC Offline
                      CharlesC Offline
                      Charles
                      wrote on last edited by Charles
                      #10

                      Bonjour,

                      Pour la connexion à la base de données mySQL quand je rencontre ce type de problème de connexion, j’utilise soit l’outil en ligne de commande mysql comme par exemple pour ouvrir la base open2300 avec le user root

                      root@pi02:~#  mysql -h diskstation.local -u root -p open2300
                      Enter password:
                      mysql>Bye
                      root@pi02:~#
                      

                      Avez vous regardé dans le syslog le message d’erreur ?

                      cat /var/log/syslog | grep teleinfo
                      

                      Sinon pour l’ouverture du port oui 2 applications ne peuvent pas ouvrir le port simultanement, je ne sais pas comment fonctionne domoticZ.

                      Pour envoyer les données toutes les 2 min par exemple il faut lancer le daemon en mode send

                      • Paramétrage de teleinfo.conf avec mode = send, daemon = 0, mysql = 0, emoncms = 0
                      • Commande pour envoyer des données en permanence sur le réseau (idéalement à lancer une seule fois au démmarage du Pi)
                        teleinfo -m s -d
                      • Paramétrage de Crontab (Crontab -e) pour recevoir les données toutes les 2 minutes sur emoncms et sur la base de donnée MySQL de mon Pi : */2 * * * * /home/Rpi/teleinfo/teleinfo -m r -q -e
                        Attention à changer les chemins si ils sont différents
                      1 Reply Last reply
                      • F Offline
                        F Offline
                        FuzeMOB31
                        wrote on last edited by
                        #11

                        Bonjour,

                        Merci pour votre réponse : j’avais un problème de droit sur ma base de donnée.
                        Tout fonctionne à présent correctement avec envoi vers la BdD toutes les deux minutes.
                        Par contre, le programme teleinfo prend la main sur le port /dev/ttyAMA0 via à vis de Domoticz.
                        Je ne sais pas s’il est possible de rediriger /dev/ttyAMA0 vers, par exemple, un terminal virtuel type /dev/tty1 de façon à déclarer ce dernier dans Domoticz et pouvoir lire les data de téléinformation simultanément par votre programme et par Domoticz ?

                        1 Reply Last reply
                        • F Offline
                          F Offline
                          FuzeMOB31
                          wrote on last edited by
                          #12

                          Bonjour,
                          Depuis ma dernière question, ma base de donnée se remplie correctement.
                          Par contre, j’ai une petite question : les informations de la colonne OPTARIF sont à 1 au lieu de BASE et les informations de la colonne PTEC sont à 1 au lieu de TH...
                          Comment puis-je corriger cela ?
                          Merci.

                          1 Reply Last reply
                          • CharlesC Offline
                            CharlesC Offline
                            Charles
                            wrote on last edited by
                            #13

                            Bonjour,

                            Ce traitement spécifique est réalisé dans la fonction tlf_treat_label() qui gère une table de correspondance

                            Il “suffit” de commenter les lignes correspondantes et de recompiler mais je déconseille fortement cette option. En effet certains sites (emoncms par exemple) ne savent pas traiter l’envoi de données de type chaine et il est alors impossible de publier les données pour faire un éventuel traitement.

                            Charles

                            1 Reply Last reply
                            • BrunoB Bruno

                              Effectivement, mon adresse était erronée (broadcast = 192.168.0.255). Tout fonctionne parfaitement maintenant, je te remercie chaudement.

                              Je résume mes manips, au cas où ça pourrait servir à des débutants comme moi :

                              • Hardware issu du montage très simple de http://www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/
                              • Programme issu du post : http://hallard.me/teleinfo-emoncms/
                              • Création d’une base de donnée MySQL sur le Pi avec phpmyadmin, et création de la table DbiTeleinfo à l’aide du lien précédent
                              • Code pour que ttyS0 pointe sur le port série ttyAMA0, à refaire à chaque démarrage du Pi:
                                sudo ln -s /dev/ttyAMA0 /dev/ttyS0
                              • Paramétrage de teleinfo.conf avec mode = send, daemon = 0, mysql = 0, emoncms = 0
                              • Commande pour envoyer des données en permanence sur le réseau:
                                teleinfo -m s -d
                              • Paramétrage de Crontab (Crontab -e) pour recevoir les données chaque minute sur emoncms et sur la base de donnée MySQL de mon Pi :
                                */1 * * * * /home/Rpi/teleinfo/teleinfo -m r -q -e

                              Et sinon je n’ai pas reçu de notification malgré la case cochée.

                              Très bonne journée

                              E Offline
                              E Offline
                              emlaurent
                              wrote on last edited by
                              #14

                              @bruno merci du résumé des manips à faire. Je souhaite faire la même chose de mon côté et je bute sur la création de la table DBiTeleinfo. Je suis totalement noob dans le domaine mysql et j'aimerais bien avoir les commandes à exécuter ! J'utilise une installation emoncms sur un raspberry donc mysql est déjà installé. merci

                              1 Reply Last reply
                              • CharlesC Offline
                                CharlesC Offline
                                Charles
                                wrote on last edited by
                                #15

                                Bonjour,
                                pour la création de la base de donnée il suffit copier/coller la commande suivante dans un client mysql. Peut être même depuis phpmyadmin.

                                CREATE TABLE IF NOT EXISTS `DbiTeleinfo` (
                                  `id` int(11) NOT NULL AUTO_INCREMENT,
                                  `DATE` datetime DEFAULT NULL,
                                  `ADCO` varchar(12) DEFAULT NULL,
                                  `OPTARIF` varchar(4) DEFAULT NULL,
                                  `ISOUSC` decimal(2,0) DEFAULT NULL,
                                  `BASE` decimal(9,0) DEFAULT NULL,
                                  `HCHC` decimal(9,0) DEFAULT NULL,
                                  `HCHP` decimal(9,0) DEFAULT NULL,
                                  `BBRHCJB` decimal(9,0) DEFAULT NULL,
                                  `BBRHPJB` decimal(9,0) DEFAULT NULL,
                                  `BBRHCJW` decimal(9,0) DEFAULT NULL,
                                  `BBRHPJW` decimal(9,0) DEFAULT NULL,
                                  `BBRHCJR` decimal(9,0) DEFAULT NULL,
                                  `BBRHPJR` decimal(9,0) DEFAULT NULL,
                                  `DEMAIN` varchar(4) DEFAULT NULL,
                                  `EJPHN` decimal(9,0) DEFAULT NULL,
                                  `EJPHPM` decimal(9,0) DEFAULT NULL,
                                  `PEJP` varchar(2) DEFAULT NULL,
                                  `PTEC` varchar(4) DEFAULT NULL,
                                  `IINST1` decimal(3,0) DEFAULT NULL,
                                  `IINST2` decimal(3,0) DEFAULT NULL,
                                  `IINST3` decimal(3,0) DEFAULT NULL,
                                  `IMAX1` decimal(3,0) DEFAULT NULL,
                                  `IMAX2` decimal(3,0) DEFAULT NULL,
                                  `IMAX3` decimal(3,0) DEFAULT NULL,
                                  `HHPHC` varchar(1) DEFAULT NULL,
                                  `PMAX` decimal(5,0) DEFAULT NULL,
                                  `PAPP` decimal(5,0) DEFAULT NULL,
                                  `ADPS` decimal(3,0) DEFAULT NULL,
                                  `MOTDETAT` varchar(6) DEFAULT NULL,
                                  `TENSION` decimal(3,0) DEFAULT NULL,
                                  PRIMARY KEY (`id`),
                                  KEY `SEARCH_INDEX` (`ADCO`,`DATE`)
                                ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
                                
                                E 1 Reply Last reply
                                • CharlesC Charles

                                  Bonjour,
                                  pour la création de la base de donnée il suffit copier/coller la commande suivante dans un client mysql. Peut être même depuis phpmyadmin.

                                  CREATE TABLE IF NOT EXISTS `DbiTeleinfo` (
                                    `id` int(11) NOT NULL AUTO_INCREMENT,
                                    `DATE` datetime DEFAULT NULL,
                                    `ADCO` varchar(12) DEFAULT NULL,
                                    `OPTARIF` varchar(4) DEFAULT NULL,
                                    `ISOUSC` decimal(2,0) DEFAULT NULL,
                                    `BASE` decimal(9,0) DEFAULT NULL,
                                    `HCHC` decimal(9,0) DEFAULT NULL,
                                    `HCHP` decimal(9,0) DEFAULT NULL,
                                    `BBRHCJB` decimal(9,0) DEFAULT NULL,
                                    `BBRHPJB` decimal(9,0) DEFAULT NULL,
                                    `BBRHCJW` decimal(9,0) DEFAULT NULL,
                                    `BBRHPJW` decimal(9,0) DEFAULT NULL,
                                    `BBRHCJR` decimal(9,0) DEFAULT NULL,
                                    `BBRHPJR` decimal(9,0) DEFAULT NULL,
                                    `DEMAIN` varchar(4) DEFAULT NULL,
                                    `EJPHN` decimal(9,0) DEFAULT NULL,
                                    `EJPHPM` decimal(9,0) DEFAULT NULL,
                                    `PEJP` varchar(2) DEFAULT NULL,
                                    `PTEC` varchar(4) DEFAULT NULL,
                                    `IINST1` decimal(3,0) DEFAULT NULL,
                                    `IINST2` decimal(3,0) DEFAULT NULL,
                                    `IINST3` decimal(3,0) DEFAULT NULL,
                                    `IMAX1` decimal(3,0) DEFAULT NULL,
                                    `IMAX2` decimal(3,0) DEFAULT NULL,
                                    `IMAX3` decimal(3,0) DEFAULT NULL,
                                    `HHPHC` varchar(1) DEFAULT NULL,
                                    `PMAX` decimal(5,0) DEFAULT NULL,
                                    `PAPP` decimal(5,0) DEFAULT NULL,
                                    `ADPS` decimal(3,0) DEFAULT NULL,
                                    `MOTDETAT` varchar(6) DEFAULT NULL,
                                    `TENSION` decimal(3,0) DEFAULT NULL,
                                    PRIMARY KEY (`id`),
                                    KEY `SEARCH_INDEX` (`ADCO`,`DATE`)
                                  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
                                  
                                  E Offline
                                  E Offline
                                  emlaurent
                                  wrote on last edited by
                                  #16

                                  @charles merci! Je me suis servi de cette aide sur mysql pour avoir des commandes en lignes. Ca marche! https://doc.ubuntu-fr.org/mysql

                                  1 Reply Last reply

                                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                  With your input, this post could be even better 💗

                                  Register Login
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  0

                                  Online

                                  5.8k

                                  Users

                                  565

                                  Topics

                                  5.3k

                                  Posts

                                  Top Topics

                                  Popular Tags

                                  teleinfo
                                  25 topics
                                  arduino
                                  19 topics
                                  remora
                                  16 topics
                                  esp8266
                                  10 topics
                                  arduipi
                                  10 topics
                                  raspberry
                                  8 topics
                                  wifinfo
                                  7 topics
                                  broadcast
                                  7 topics
                                  Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Blog
                                  • Categories
                                  • Recent
                                  • Tags
                                  • Popular
                                  • Users
                                  • Groups