Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    configuration MySQL

    Scheduled Pinned Locked Moved Téléinfo
    broadcastemoncmsteleinfomysql
    16 Posts 4 Posters 7.1k Views
    Loading More Posts
    • 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
      Bruno
      last edited by Bruno

      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 Reply Quote
      • CharlesC Offline
        Charles
        last edited by

        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 Reply Quote
        • BrunoB Offline
          Bruno
          last edited by

          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 Reply Quote
          • CharlesC Offline
            Charles
            last edited by

            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 Reply Quote
            • BrunoB Offline
              Bruno
              last edited by

              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 Reply Quote
              • CharlesC Offline
                Charles
                last edited by

                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 Reply Quote
                • BrunoB Offline
                  Bruno
                  last edited by

                  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 Reply Quote
                  • CharlesC Offline
                    Charles
                    last edited by

                    Bruno,

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

                    1 Reply Last reply Reply Quote
                    • F Offline
                      FuzeMOB31
                      last edited by

                      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 Reply Quote
                      • CharlesC Offline
                        Charles
                        last edited by Charles

                        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 Reply Quote
                        • F Offline
                          FuzeMOB31
                          last edited by

                          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 Reply Quote
                          • F Offline
                            FuzeMOB31
                            last edited by

                            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 Reply Quote
                            • CharlesC Offline
                              Charles
                              last edited by

                              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 Reply Quote
                              • E Offline
                                emlaurent @Bruno
                                last edited by

                                @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 Reply Quote
                                • CharlesC Offline
                                  Charles
                                  last edited by

                                  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 Reply Quote
                                  • E Offline
                                    emlaurent @Charles
                                    last edited by

                                    @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 Reply Quote
                                    • First post
                                      Last post

                                    3

                                    Online

                                    5.7k

                                    Users

                                    534

                                    Topics

                                    5.0k

                                    Posts

                                    Top Topics

                                    • Denky 4 - Domoticz - Triphasé -
                                      Nicolas BernaertsN
                                      Nicolas Bernaerts
                                      0
                                      7
                                      249

                                    • Denky D4 et Linky Standard TInfo Rx Non Configuré
                                      CharlesC
                                      Charles
                                      0
                                      5
                                      282

                                    • CC1101
                                      CharlesC
                                      Charles
                                      0
                                      2
                                      117

                                    Popular Tags

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