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

    WifiInfo, le serveur WEB Téléinfo aux multiples facettes

    Scheduled Pinned Locked Moved WifInfo
    ftdiapiesp8266librairiejson
    79 Posts 22 Posters 99.5k 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.
    • D Offline
      Doume
      last edited by

      Je ne comprends pas pourquoi la structure _ValueList contient , pour name et value, des pointeurs vers elle-même sur les tableaux de char alloués en même temps que la structure, de manière contigüe...

      Pourquoi ne pas allouer directement les tableaux de char dans la structure , comme suit :

      struct _ValueList
      {
      ValueList *next; // next element
      uint8_t checksum;// checksum
      uint8_t flags; // specific flags
      char name[16]; // LABEL of value name
      char value[16]; // value

      };

      Note : Il semble qu'aucun nom ne dépasse 8 caractères (MODETAT) et aucune valeur ne dépasse 12 ( N° ADCO )

      Je pense qu'il y aurait moins de soucis d'alignements , non ?

      1 Reply Last reply Reply Quote
      • D Offline
        Doume
        last edited by

        Je me suis fait une version de LibTeleinfo qui n'utilise plus du tout de malloc / free.
        Un tableau de 50 entrées maximum est alloué en statique, dans lequel sont gérées les variables et leur valeur.
        Pour l'instant, je n'ai plus constaté la moindre altération des noms de variables.
        Après des tests sur la durée, je mettrai en ligne cette version modifiée de Wifinfo si la robustesse se confirme.

        Je pense que la gestion dynamique de la mémoire par malloc et free est buggée sur le SDK Arduino IDE. Ou alors, le fait de faire des malloc d'un structure + lgname+1 + lgvalue+1 sème la zizanie dans la gestion de mémoire. C'est la seule explication plausible que je vois à l'altération aléatoire des noms de variables. Car elles étaient bonnes au moment où elles sont créées (checksum correcte) , et on les retrouve altérées quand on les relit : Donc il y a eu recouvrement des allocations !

        A suivre....

        1 Reply Last reply Reply Quote
        • D Offline
          Doume
          last edited by

          Je pense que la preuve est faite, en ce qui me concerne :
          Version officielle de LibTeleinfo (utilisant malloc / free ) : En 48 heures, 55 détections de data altérées
          Version modifiée (tableau statique) : En 48 heures, 0 détection de data altérée...

          1 Reply Last reply Reply Quote
          • D Offline
            difful
            last edited by difful

            bonjour doume,

            j ai aussi des problèmes comme toi.enfin moi je suis en monophasé. mes retour sont bon un moment et après un temp variable 5min a 24h c'est caractère bizarre et décalage.
            si ça peux faire avance le schmilblick et que tu veux bien partager ta modif je la testerai.

            merci par avance.

            1 Reply Last reply Reply Quote
            • D Offline
              Doume
              last edited by Doume

              @difful

              Je te propose de flasher le binaire pointé ci-dessous :
              http://www.dambrain.fr/zip/Wifinfo.cpp.bin.gz
              Tu devras bien sûr le dézipper pour obtenir un fichier Wifinfo.cpp.bin pour le flasher.

              Tu verras que dans l'onglet 'Système', il y a une ligne 'Altérations Data détectées' qui affiche un compteur des noms de variables abîmés : Il devrait rester à zéro (c'est mon cas sur les dernières 72 heures).

              Alors qu'avec la version classique, j'avais environ 50 altérations sur 48 heures.

              Note : Cette version contient aussi la fonctionnalité "HttpRequest" dans la configuration, qui permet d'interfacer Domoticz....Mais pour cela il faut aussi flasher le SPIFFS correspondant :
              http://www.dambrain.fr/zip/Wifinfo.spiffs.bin.gz
              Mais ça n'est pas nécessaire si tu n'as pas besoin de cette interface !

              Si tu me confirmes que c'est OK chez toi, en monophasé, je mettrai les sources modifiées en ligne sur Github

              1 Reply Last reply Reply Quote
              • CharlesC Offline
                Charles
                last edited by

                Bonjour et merci pour ces informations.

                C'est Super curieux car ce problème a été réglé l'année dernière et je sais de quoi je parle j'y ai passé un moment avant de trouver le problème et depuis il a complètement disparu.
                Donc d'une soit la librairie utilisée par le compilateur n'est pas la dernière où il ne prends pas les sources au bon endroit soit c'est un bug introduit par une maj du SDK.
                Je recompilerais donc tout avec tout à jour pour vérifier si j'ai aussi le soucis. @AuFilElec tu as le soucis toi ?

                1 Reply Last reply Reply Quote
                • D Offline
                  Doume
                  last edited by

                  Je suis convaincu de ne pas utiliser la dernière release du SDK, car les versions récentes de Arduino IDE ne voulaient pas fonctionner sur Ubuntu 16.04 64 bits.
                  J'utilise donc l'IDE version 1.6.5
                  En ce qui concerne la LibTeleinfo, je me suis assuré qu'il compilait bien la dernière version en y introduisant une erreur de syntaxe, pour vérifier que le compilateur coinçait !
                  Je penche indéniablement pour un SDK buggé sur la gestion de mémoire, au moins sur ESP-8266 .

                  Mais plutôt que de chercher une aiguille dans une meule de foin, j'ai préféré me passer des malloc / free, et opter pour une allocation statique : Je doute qu'un installation Wifinfo dépasse les 50 variables, et aucun nom ni valeur ne dépasse 16 octets...
                  Au moins, ce genre de solution est robuste, et ne sera pas dépendant de la version SDK

                  Par contre, je n'ai pas pu essayer la solution sur autre chose qu'un ESP-8266 (Wemos D1 mini).

                  1 Reply Last reply Reply Quote
                  • CharlesC Offline
                    Charles
                    last edited by Charles

                    @Doume
                    je viens de vérifier un truc, tu pourrais essayer en supprimant tous les #pragma pack / push de la LibTeleinfo pour voir, j'ai un doute.

                    D 1 Reply Last reply Reply Quote
                    • D Offline
                      difful
                      last edited by

                      @Doume
                      merci je viens de finir l install non sans mal l' update par wifinfo plantait bon il ne faut pas utiliser Firefox comme browser ça marche pas avec chrome impeccable.
                      donc en test je donne un retour d ici 48h.
                      merci encore.

                      1 Reply Last reply Reply Quote
                      • D Offline
                        Doume @Charles
                        last edited by

                        @Charles said in WifiInfo, le serveur WEB Téléinfo aux multiples facettes:

                        @Doume
                        je viens de vérifier un truc, tu pourrais essayer en supprimant tous les #pragma pack / push de la LibTeleinfo pour voir, j'ai un doute.

                        Je l'avais essayé, sans succès : Je continuais à détecter des noms de variable altérés....

                        1 Reply Last reply Reply Quote
                        • CharlesC Offline
                          Charles
                          last edited by

                          bon, je viens de vérifier et faire un pull de toutes les versions des librairies et de LibTeleinfo.
                          J'ai refait une compilation de WifInfo toute fraîche, voici ce que ça donne une fois tout uploadé.

                          0_1500225753787_2e963216-2f3a-40bf-8480-98f8d18c9cd8-image.png

                          Plus qu'a attendre de voir si j'ai des étiquettes altérées. J'en avais pas jusqu'ici mais au moins on saura si ça vient du SDK

                          1 Reply Last reply Reply Quote
                          • D Offline
                            Doume
                            last edited by

                            Effectivement, ma version de SDK est 1.5.3, alors que tu as compilé avec une version 2.0.0.
                            Ca peut faire la différence quant à la gestion de la mémoire

                            1 Reply Last reply Reply Quote
                            • D Offline
                              difful
                              last edited by

                              bonjour,

                              bon pour le moment cela fait 26h et une erreur.

                              lors de ma première compil j avais le sdk 1.5.2 avec la version 1.0 de wifinfo et j ai jamais reçu d'erreur du jour ou je suis passé a la version 1.0.1 et le sdk 2.0.0 plus moyen d'avoir des données correcte en moyenne ça tenait entre 8 et 10 jours, je devais reboot hard le module esp pour avoir des données OK pour un temps.

                              cordialement.

                              1 Reply Last reply Reply Quote
                              • D Offline
                                Doume
                                last edited by Doume

                                Tu peux préciser, quand tu dis '1 erreur' ?
                                C'est le compteur affiché dans l'onglet 'Système' , ou bien un blocage de l'interface emoncms ou jeedom ?
                                La version que je t'ai proposé d'installer, en cas de détection d'erreur, redémarre l'interface Teleinfo, donc ça devrait pas bloquer....

                                1 Reply Last reply Reply Quote
                                • D Offline
                                  difful
                                  last edited by

                                  bonjour,

                                  oui c'est une erreur dans l’onglet système enfin aujourd'hui j'en ai une de plus.
                                  rien de mieux qu'une capture d’écran.

                                  0_1500393201488_Capture_wifinfo.JPG

                                  1 Reply Last reply Reply Quote
                                  • D Offline
                                    Doume
                                    last edited by Doume

                                    Damned : Cela veut dire qu'il y a encore un loup quelque part....
                                    Chez moi, ce compteur est à 0 depuis 5 jours....

                                    En fait, a chaque fois que la table des variables est balayée pour construire une page, ou préparer la requête vers emoncms, ~chaque nom de la table~ est comparé aux 35 noms connus.
                                    Si le nom est inexistant dans la liste de référence ( caractère binaire au milieu, par exemple ) , le compteur est incrémenté de 1 et à la prochaine boucle loop() , on réinitialise la Teleinfo ( tinfo.init() 😉

                                    Le canard est donc encore vivant !

                                    Par contre tu ne devrais plus constater de blocage complet, grâce au réinit sur erreur

                                    @difful : Tu pourrais me préciser quelles interfaces tu utilises ( emoncms, jeedom, httprequest ) ?
                                    et avec quelle fréquence ?

                                    1 Reply Last reply Reply Quote
                                    • CharlesC Offline
                                      Charles
                                      last edited by

                                      Pour information, depuis 4 jours que j'ai tout recompilé et que ça tourne, je n'ai pas la moindre erreur ou étiquette corrompue.

                                      1 Reply Last reply Reply Quote
                                      • D Offline
                                        difful
                                        last edited by difful

                                        bonjour,

                                        donc déjà même si j ai des erreurs le fonctionnement est continu grâce au reinit.
                                        j'utilisais jeedom jusqu'il y a 10 jours depuis 1an mais mes courbe étaient horrible et depuis le 15 juin en parallèle j'ai domoticz ou j'ai un script lua qui lit les données en httprequest a une fréquence de 2 minutes.
                                        et les erreurs étaient toujours la, donc je ne pense pas que cela soit les "send" qui marche pas mais les étages avant ou meme le materiel que j'ai (nodemcu).

                                        1 Reply Last reply Reply Quote
                                        • D Offline
                                          Doume
                                          last edited by

                                          Eventuellement, s'il y a des gens intéressés, la version 'LibTeleinfo statique' est disponible ici :
                                          https://github.com/Doume/LibTeleinfo.git
                                          Utiliser la branche 'static' du Github (branche par défaut)

                                          Voir le README pour la liste des modifications apportées.

                                          Pour info, elle tourne depuis 9 jours chez moi, avec 0 altération détectées, sur un Wemos D1.

                                          1 Reply Last reply Reply Quote
                                          • D Offline
                                            delawich
                                            last edited by

                                            Bonjour,

                                            j'ai depuis 1 an ou 2 un wifinfo, qui fonctionne a merveille, il est intégré a jeedom.
                                            Récement je suis passer chez direct energie,car il proposait un contrat super heure creuse (linky)

                                            j'ai souscris a ce contrat, le problème que je recnotre, le wifinfo, reconnai mon contrat comme un contrat base, et donc je n'ai plus de remonté des compteurs HP, et Super HC.

                                            Pour info sur le linky, j'ai trois compteur HP, HC et Super HC

                                            j'en ai discuté sur le forum jeedom (photo du linky et du wifiinfo)
                                            https://www.jeedom.com/forum/viewtopic.php?p=646331&sid=61ec0667a6d205fe30e45291ec460478#p646331

                                            merci

                                            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