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

    erreur trame TIC ADCO ?

    Scheduled Pinned Locked Moved Téléinfo
    10 Posts 3 Posters 544 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.
    • G Offline
      Géryko
      last edited by

      Bonjour à tous,

      Je débute et je teste la librairie LibTeleinfo avec un esp32 mais avec Teleinfo_DenkyD4.ino
      (V1.01 2021-04-18 - Refactored for Denky D4 standalone test only)

      Tout semble fonctionner mais il y a une erreur sur la variable ADCO.
      Affiche 2147483647 au lieu de 031762023755.
      La donnée sur la trame traitée n'est pas celle reçue et affichée ! (voir ci- dessous)

      Y a t'il moyen de corriger cela ?
      Nota : sur la version esp32 (ESP32.ino) la valeur ADCO était correcte.

      Merci à vous.

      ... HHPHC A ,
      MOTDETAT 000000 B
      <ETX>

      <STX>
      ADCO 031762023755 @
      OPTARIF BASE 0
      ISOUSC 30 9
      BASE 015572905 -
      PTEC TH.. $
      IINST 002 Y
      IMAX 090 H
      PAPP 00490 .
      HHPHC A ,
      MOTDETAT 000000 B
      {"ADCO":2147483647, "OPTARIF":"BASE", "ISOUSC":30, "BASE":15572905, "PTEC":"TH..", "IINST":2, "IMAX":90, "PAPP":490, "HHPHC":"A", "MOTDETAT":0}
      <ETX>

      <STX>
      ADCO 031762023755 @
      OPTARIF BASE 0
      ISOUSC 30 9 ...

      G 1 Reply Last reply Reply Quote
      • G Offline
        Géryko
        last edited by

        Bonjour,
        Question subsidiaire :
        J'ai actuellement un contrat basique (pas de HP-HC) et une TIC Linky "historique".
        Si j'ai bien compris, en passant en TIC "standard" je n'aurai aucune information supplémentaire ?

        Correct ou pas ?
        Merci.

        1 Reply Last reply Reply Quote
        • G Offline
          Géryko @Géryko
          last edited by Géryko

          @Géryko said in erreur trame TIC ADCO ?:
          Sur mon 1er message :

          Nota : sur la version esp32 (ESP32.ino) la valeur ADCO était correcte.

          Je ne suis plus sûr de mon coup ?
          Sur la version "basique" il y avait le même problème mais je ne l'avais pas remarqué.

          1 Reply Last reply Reply Quote
          • G Offline
            Géryko
            last edited by

            Bonjour,

            Remarques :

            1. Un indice : 2147483647 (dec) = 7fffffff (hex) "Comme c'est bizarre !"
              Je ne suis pas assez connaisseur pour trouver la cause du problème.

            2. Sans rapport avec le problème principal.
              Lorsque je créer un faux checksum sur une des étiquettes, l'affichage de cette étiquette ne se fait pas OK, mais je n'ai aucun signalement !
              Comment faire pour afficher les problèmes sur le moniteur ?
              genre ligne 901 du .cpp : TI_Debugf(PSTR("LibTeleinfo::checkLine Err checksum 0x%02X != 0x%02X"), calc_checksum, checksum);

            Merci à vous.

            Nicolas BernaertsN 1 Reply Last reply Reply Quote
            • Nicolas BernaertsN Offline
              Nicolas Bernaerts @Géryko
              last edited by Nicolas Bernaerts

              @Géryko ADCO doit être traité comme un long long pour être géré en valeur numérique. Sinon, il faut le traiter en string.

              1 Reply Last reply Reply Quote
              • G Offline
                Géryko
                last edited by Géryko

                Bonjour Nicolas Bernaerts,
                et merci pour ta réponse.

                Mais comme je l'ai écrit, c'est un problème de la bibliothèque LibTeleinfo que je ne sais pas traiter.
                Pour l'instant je n'ai rien programmé. L'anomalie est présente avec les exemples fournis.
                je ne suis pas assez "performant". en programmation.

                Je vais quand même y jeter un oeil sur les déclarations mais ???
                En clair, que faudrait-il modifier ?

                PS : à priori, toutes les données sont des "char".

                1 Reply Last reply Reply Quote
                • G Offline
                  Géryko
                  last edited by

                  Bonsoir à tous,

                  Le viens de faire des tests complémentaires.

                  Si ADCO est < à 2147483647 c'est OK ( 7fffffff (hex) 2^31 )
                  Si ADCO est > à 2147483647 c'est mauvais.

                  Mais je ne comprends pas comment cette valeur est déclarée ?
                  Il n'y a que du char dans la librairie LibTeleinfo.h et LibTeleinfo.cpp !

                  Quelqu'un peut-il m'aider à résoudre ce petit problème ?
                  Merci

                  1 Reply Last reply Reply Quote
                  • G Offline
                    Géryko
                    last edited by

                    Bonsoir à tous,

                    J'ai trouvé et résolu le problème.

                    Dans le fichier .ino il y a : Serial.print(atol(me->value));
                    Il faut : Serial.print(me->value);
                    Car "atol" convertit en long alors que (me->value) = 12 chiffres.
                    Merci

                    1 Reply Last reply Reply Quote
                    • G Offline
                      Géryko
                      last edited by

                      Bonjour,
                      Autre possibilité, mettre :
                      (strlen(me->value) > 9) ? SERIAL_DEBUG.print(me->value) : SERIAL_DEBUG.print(atoi(me->value));

                      Mais transformer String en nombre ne sert quasiment à rien pour l'afficher ?
                      (hormis effacer le zéros non significatifs et revérifier qu'il ne s'agit bien que de chiffres)
                      Une double erreur peut provoquer un checksum OK.

                      CharlesC 1 Reply Last reply Reply Quote
                      • CharlesC Offline
                        Charles @Géryko
                        last edited by

                        @Géryko Oui dans la librairie tous les champs sont traité en mode natif, c'est à dire des char, après sur l'affichage ou autre il faut faire du spécifique cf
                        https://github.com/hallard/LibTeleinfo/issues/22

                        1 Reply Last reply Reply Quote
                        • First post
                          Last post

                        2

                        Online

                        5.7k

                        Users

                        534

                        Topics

                        5.0k

                        Posts

                        Top Topics

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

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

                        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