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

    Tasmota

    Scheduled Pinned Locked Moved Téléinfo
    525 Posts 31 Posters 180.9k 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.
    • Barbu DorB Offline
      Barbu Dor @Patrice Becquet
      last edited by

      @patrice-becquet Je pense qu'il y a un problème dans l'activation de "TInfo RX"
      Voici les lignes importantes concernant Teleinfo dans le log de demarrage:

      00:00:00.062 TIC: RX on GPIO13, baudrate 1200
      00:00:00.063 TIC: always enabled
      00:00:00.077 SNS: Hardware Serial
      00:00:00.077 TIC: using hardware serial
      00:00:00.078 TIC: Ready
      

      Confirmant l'init du module Teleinfo avec la GPION 13 en reception à 1200 baud et l'utulisation de l'UART hardware.

      Dans "Configure" => "Configure autres" , est-ce que la case "activer" est bien cochée ?
      36e72a5a-252f-4821-92fa-955821575e9b-image.png

      Dans quel écran as tu configuré "TInfo RX" ?

      Généralement quand j'utilise un mini-D1 ou un NoceMCU (par opposition à un équipement type Sonoff, interrupteur mural, etc), Dans "Configure Modèle" je suis sur "Generic 18" et toutes les broches sont sur "User" sauf les 2 broches 9 et 10 sur "None".
      Ensuite c'est dans "Configure Module" que j'assigne mes broches <=> fonctions

      Dans Tasmota, un modèle (template) correspond à un modèle d'équipment de référence connu dont les pins et le comportement est en dur dans le code. Sur un Sonoff Dual, telle pin est le Relay1, telle autre le Relay2 etc....) et seules certaines pins sont accessibles à l'utilisateur (User). Seules les pins User peuvent ensuite est customisées dans "Configure Module".
      Par exemple sur un Sonoff TH, la pin GPIO14 accessible a l'extérieur sur un jack. Quand tu choisit "Sonoff TH (4)", les pins correspondant au boutons, à la led et au relay sont automatiquement assignée. La pin GPIO14 est en User et les pins non accessibles, sont en None (GPIO1..4 sont accessibles mais en interne uniquement). Avec cela, tu obtiens le comportement standard d'un Sonoff TH.
      Après tu peux décider ce que tu veux faire de la pin GPIO14 : mettre un capteur de temperature DS18B20, un Temp+Hum DHT22 ou un interrupteur extérieur et tu définis ton usage dans "Configure Module".

      Mais avec le nombre d'équipement supporté qui augmentait, ils ont introduit la notion de Template JSON que tu peux saisir dans "Configure autres". Dans ce cas, le template peut se référer à un des templates originaux pré-codé pour le comportement mais avec des pins associées différentes...

      Je comprend que cela soit bizarre mais Tasmota a un lourd historique et des fois certains concepts sont compliqués du fait de l'évolution dans le temps avec de plus en plus d'équipements supportés.

      Généralement je n'ai pas de soucis si la cache "Activate" est cochée. Si ce n'est pas le cas, certaines config ne sont pas prises en compte.

      Patrice BecquetP 1 Reply Last reply Reply Quote
      • Barbu DorB Offline
        Barbu Dor @Patrice Becquet
        last edited by

        @patrice-becquet

        Un truc pour vérifier quelles pins sont effectivement prise en compte : la commande gpio te retourne un JSON avec les pins :

        23:09:38.248 CMD: gpio
        23:09:38.261 MQT: stat/nodemcu/GPIO = {"GPIO0":{"608":"I2C SCL"},"GPIO1":{"0":"None"},"GPIO2":{"640":"I2C SDA"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"5152":"TInfo Rx"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"}}
        

        Ou l'on voit bien le "TInfoRX" sur la GPIO13

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

          @barbu-dor à raison, si t'as pas de TIC dans les log c'est curieux surtout que t'as bien compilé avec l'OPTION téléinfo sinon la pin TInfo rx n'apparaitrait pas. C'est l'indicateur ultime.

          J'arrive pas à comprendre pourquoi t'as aucun log concernant la téléinfo (les fameux TIC)

          Tu peux mettre ce template ci (basic) avec Téléinfo sur GPIO13

           {"NAME":"TIinfo_IO13","GPIO":[1,1,1,1,640,608,1,1,1,5152,1,1,1,1],"FLAG":0,"BASE":18}
          

          Et surtout n'oublies pas de cocher activate cette case à la con m'a value de nombreuses prise de têtes

          1 Reply Last reply Reply Quote
          • Patrice BecquetP Offline
            Patrice Becquet @Barbu Dor
            last edited by

            @barbu-dor
            VICTOIRE !!!Capture d’écran 2021-02-25 à 09.58.36.png

            La case activée était bien là. Mais en reprenant les vérifications, et grace a tes explication et un éclair de lucidité (en fin de journée après avoir tourné en rond, on est plus bon a grand chose !). J'ai noté que j'avais bien affecté la pin Rx a GPIO13. Oui, mais la pin "Série RX", au lieu de TéléInfoRX ! (Sur la précédente capture d'écran de l'autre Wemos, on constate que c'était OK à ce niveau). Je subodorais un détail trivial, mais radical dans le genre.

            Mais bon, le dernier problème était là. J'ai bien la Télé Info sur la page d'accueil de Tasmota, dans les messages MQTT, jusqu'au Broker. Nickel.

            Un énorme merci pour ton aide. Je te dois une bière comme on dit dans le milieu ! Si tu passe en Essonne, quand les bars seront ouverts !!!...

            1 Reply Last reply Reply Quote
            • SebHS Offline
              SebH
              last edited by SebH

              Ca y ai , après de nombreux essais , j'ai basculé mes 3 compteurs existants de wifinfo sur tasmota.

              La première problématique est que visiblement tasmota n'arrive pas à gérer 2 compteurs HP/HC indépendamment et de ce fait renvoit uniquement un seul compteur sur Domoticz.

              Mais de mon coté je suis passé récement en tarification de BASE unique, donc je ne suis plus concerné par ce soucis. Néanmoins, la solution proposé est de récupérer les trames MQTT via NODE RED, de récupérer l'état des 2 compteur et de le renvoyer à domoticz via JSON, mais faut il encore connaitre un minimum NODE RED.

              Ayant maintenant 3 compteurs (dont 2 en 1200 baud et 1 en 9600 baud), j'ai donc exploité tasmota pour essayer de se rapprocher au même fonctionnement de Winfo, mais je tombe sur des bugs.

              La 1ère des chose est de caler le compteur total de tasmota sur l'index du compteur réel , suivant l’exemple ci dessous par la commande EnergyReset3 4014698

              7cb06879-7f5e-4d2c-b8f7-28d8b15d1304-image.png

              Le soucis principal dans ce cas, c'est qu'à la moindre perte secteur, on va désynchroniser les deux compteurs...

              En fouillant dans la doc des commandes tasmota, j'ai trouvé la Setoption72 qui permettrait pour certain compteur (comme le DDS238) de copier l'état du compteur hardware dans le compteur total de tasmota. J'ai tester avec notre module téléinfo, et ça ne fonctionne pas. Ca serait possible de l'inclure, vous en pensez quoi ?? Du coup, le compteur total de tasmota = index du compteur téléinfo, avec ou sans coupure secteur !

              8e79e2de-b5e3-4e3e-bef3-a5dce1664046-image.png

              Autre chose, que je constate en utilisant l’envoi de données sur domoticz géré par tasmota. Tasmota envoi dans une trame jusqu’à 4 index de compteurs, mais avec la particularité d'utiliser un chiffre derrière la virgule, par exemple dans le cas ci dessous, il envoit à domoticz 2069838.1 alors que le compteur total est a 2069.838 Kwh. Cette gestion de virgule dans le temps vient rendre incohérent l'état de l'index et le compteur total car un décalage se fait au fur et à mesure. Maintenant, si on arrive en activant l'option 72 , à dire compteur hardware = compteur total cela corrigerait certainement aussi ce problème?

              74f95e07-36f7-45c3-99f9-bc5b7fa41535-image.png

              SebHS 1 Reply Last reply Reply Quote
              • SebHS Offline
                SebH @SebH
                last edited by

                @sebh
                Voici une capture au bout de 2 jours après avoir calé le compteur total sur le compteur teleinfo BASE. Je confirme bien un décalage entre les 2 compteurs... Naturellement on parle pas de Kwh, on parle de quelques Wh entre 2 jours. C'est normal docteur ??

                2d9bac6c-0ee4-434e-8d08-cbe066246186-image.png

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

                  @sebh je ne suis pas surpris que tu trouves un décalage, en fait le module Energy de tasmota calcul tout seul ta consommation (avec la puissance, et tout ce qu'il peut mesurer) or effectivement ça peut shifter en fonction des échantillonnages et reception des valeurs.
                  Je maitrise pas les entrailles de tasmota mais ca mériterait une petite investigation. Clairement la synchro sur le compteur réel est la solution sauf que pour ça je pense que la téléinfo doit être de type module "smart meter" comme les autres (SDM, PZEM, ..) or la teleinfo est tellement spécifique (et encore plus avec le linky) que ca deviendrait ingérable de les intégrer (j'avais commencer à regarder à l'époque)
                  Tu as 2 solutions:

                  • soit via un node red script ou autre tu récupères les données via MQTT et tu les renvois au bon format dans domoticz
                  • normalement dans la trame de télémétrie ENERGY envoyée par tasmota tu as les etiquettes des compteurs, et c'est celles-ci que domoticz doit prendre (mais ça nécessite un ajustement dans domoticz)

                  La encore je n'utilise pas domoticz donc je ne te serais pas d'une grande aide sur le sujet mais ça de devrait pas être trop compliqué.

                  SebHS 1 Reply Last reply Reply Quote
                  • SebHS Offline
                    SebH @Charles
                    last edited by SebH

                    @charles Merci pour ton retour.

                    Clairement, je pense couper l'emission de la trame domoticz/in de tasmota , et je pense que NodeRed est la solution mais les script JS je ne connais pas du tout. J'ai fait un peu de VB dans le temps avec des fonctions de recherche de chaine de caractère mais c'est vieux LOL !

                    Je viens de publier sur le forum domoticz en espérant que quelqu'un puisse me conseiller afin de pouvoir écrire un script JS . Je suis sur le coup, mais si jamais quelqu'un veut me filer un coup de patte 🙂 , voici le lien de mon post https://www.easydomoticz.com/forum/viewtopic.php?f=10&t=11224

                    Sinon, je viens de voir ça à l'instant sur le tasmota qui tourne sur mon linky en mode standard.

                    e766949d-277e-49be-84a9-0b79430f4f8f-image.png

                    Par moment j'ai une erreur checkline err checksum 0x51 != 0x43

                    En fait, je m'aperçoit qu'il me fait un paquet d'erreur en fait (j'avais pas fait attention)
                    3068ee8f-4b23-4e0b-a7a6-3d02e5372c78-image.png

                    C'est quoi le soucis avec cette erreur ??

                    1 Reply Last reply Reply Quote
                    • Nicolas BernaertsN Offline
                      Nicolas Bernaerts @SebH
                      last edited by

                      @sebh bonsoir, aucun problème pour intégrer cette version dans la branche officielle tasmota. Mais j'avoue ne pas savoir quelle démarche suivre.

                      SebHS 1 Reply Last reply Reply Quote
                      • SebHS Offline
                        SebH @Nicolas Bernaerts
                        last edited by

                        @nicolas-bernaerts Bonjour Nicolas, je viens de vous mettre un mail car on a déjà échangé il y a quelques temps...
                        Alors pour l'intégration officielle , je ne sais pas comment s'y prendre, c'est plutôt @Charles Charles qui pourra répondre
                        Sinon j'ai demandé de l'aide pour essayer d'écrire un script sous Nodered mais pas eu un seul coup de main... 😢

                        SebHS Nicolas BernaertsN 2 Replies Last reply Reply Quote
                        • SebHS Offline
                          SebH @SebH
                          last edited by

                          ci joint une petite copie écran d'un de mes tasmota, après une semaine en fonctionnement
                          077d51e0-dffa-446b-9518-7b60bae9b990-image.png
                          Donc actuellement on transmet à Domoticz 2097547.8 Wh , alors que le compteur total de tasmota est a 2097548 Wh et que l'index transmis par le linky est a 2097569 Wh . On a pratiquement un décalage de 20 Wh en une semaine ...

                          CharlesC 2 Replies Last reply Reply Quote
                          • CharlesC Offline
                            Charles @SebH
                            last edited by

                            @sebh je suis en train de regarder comment fonctionne tasmota avec domoticz

                            Le truc c'est qu'il y a une tonne de contrats différents avec la téléinfo et domoticz gère 2 tarifs, je vais essayer d'implémenter ca pour heures creuse heures pleines du mode historique (car j'ai pas de linky)

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

                              @sebh j'ai trouvé 2/3 trucs dans le code que je vais fixer, peux tu me confirmer ton mode fonctionnement STP

                              • mode historique ou std ?
                              • rawdata ou pas (setOption108) ?

                              le mieux peux tu me coller une trame de ton compteur ?

                              Pour les erreur de checksum peut être la série peine un peu t'es en ESP32 ou 8266, soft ou hard serial ?

                              SebHS 1 Reply Last reply Reply Quote
                              • SebHS Offline
                                SebH @Charles
                                last edited by SebH

                                @charles J'ai plusieurs compteurs.

                                • J'ai un linky en mode standard , avec maintenant une tarification de BASE (donc je pourrais plus tester la tarification HP/HC en mode standard).
                                • J'ai un autre compteur ancienne génération en mode historique et tarification BASE.
                                • Non je n'utilise pas le mode rawdata actuellement

                                Quand tu dis que tu veux une trame du compteur, tu parles des trames qui passe dans la console tasmota, ou bien tu parles d'une capture du port série en sortie de téléinfo ??

                                Concernant le hard, je suis en esp8266 sur le port D7 (c'était le hard que j'utilisais déjà pour wifinfo)

                                Je crois que je l'ai déjà posté mais voici la trame qui part de tasmota pour domoticz. J'ai notifier dans la trame la position de chaque index. En sachant qu'actuellement en tarif BASE, la position relevé est bien la bonne , en HP/HC je crois que la position indiqué actuellement est HP (donc il restera juste a renseigné HC)

                                7349aec7-3227-44ec-aab1-04fa7139ee1c-image.png

                                Tu penses pouvoir inclure ma demande initiale en remontant a tasmota un copier/coller de l'index du compteur ENEDIS sur le compteur total de tasmota ??

                                1 Reply Last reply Reply Quote
                                • Nicolas BernaertsN Offline
                                  Nicolas Bernaerts @SebH
                                  last edited by Nicolas Bernaerts

                                  @sebh j'ai bien recu ton mail.
                                  J'ai la forte impression que les erreurs de checksum apparaissent plus souvent en mode standard du fait de la vitesse de 9600 bauds et du buffer série des Esp. J'ai modifié la boucle de réception à 100ms avec un buffer de 256 octets et les erreurs apparaissent beaucoup moins.
                                  Pour ce qui est des divergences de totaux entre tasmota et la teleinfo, j'ai modifié ma version teleinfo pour forcer la mise a jour de tasmota sur la référence teleinfo toutes les heures. Les deux sont donc totalement synchro régulièrement.
                                  https://github.com/NicolasBernaerts/tasmota/tree/master/teleinfo

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

                                    @nicolas-bernaerts outch j'ai dejà fait un PR pour ça qui a été intégré dans la branche developpement de tasmota.

                                    Tu pourrais indiquer tes modifs que je regarde si j'ai fait correctement?

                                    Idéalement faut faire des pull request pour les améliorations, ca permet à tout le monde d'en profiter et de pas bosser à plusieurs sur les mêmes problématiques 🙂

                                    Nicolas BernaertsN 1 Reply Last reply Reply Quote
                                    • Nicolas BernaertsN Offline
                                      Nicolas Bernaerts @Charles
                                      last edited by

                                      @charles Le probleme est que j'avais fait une version totalement differente de la tienne sous tasmota avant que la tienne ne soit officiellement portée. Du coup, il y a trop de divergences car presque tout est différent... Un PR me semble donc très difficile. La version dont je parle est publiée sur le lien github de ma réponse prédente.

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

                                        @nicolas-bernaerts oui c'est ce que je viens de voir c'est top ta version 🙂
                                        avant je faisais ca aussi mais j'ai arrêté car dès que tu veux maintenir les fork en synchro avec les master c'est compliqué (surtout qd t'as 15 forks différents à gérer)

                                        normalement @Barbu-Dor a fixé le pb du mode standard 9600 donc ce qui m'intéresse c'est ce point la

                                        forcer la mise a jour de tasmota sur la référence teleinfo

                                        tu as fais comment ?

                                        Nicolas BernaertsN 1 Reply Last reply Reply Quote
                                        • Nicolas BernaertsN Offline
                                          Nicolas Bernaerts @Charles
                                          last edited by

                                          @charles Merci 😀
                                          La synchro est faite ligne 955 de xnrg_15_teleinfo.ino
                                          Je récupère les différents compteurs utilisés suivant le contrat dans la boucle 100ms et je les additionne à chaque message complet. Je synchronise ensuite toutes les heures pour éviter une écriture en ram statique trop souvent.

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

                                            @nicolas-bernaerts ok merci c'est exactement ce qui est fait dans le fix de ma PR d'hier 🙂

                                            https://github.com/arendst/Tasmota/pull/11563

                                            D'ailleurs je viens de voir que l'option 72 doit être activée pour que ca fonctionne. ça sauvegarde seulement si il y a une difference de 0.01 (kWh j'espère) donc je ne sais pas si nécessaire de temporiser en amont l'écriture. A suivre

                                            void EnergyUpdateTotal(float value, bool kwh)
                                            {
                                            //  AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %4_f %sWh"), &value, (kwh) ? "k" : "");
                                            
                                              uint32_t multiplier = (kwh) ? 100000 : 100;  // kWh or Wh to deca milli Wh
                                            
                                              if (0 == Energy.start_energy || (value < Energy.start_energy)) {
                                                Energy.start_energy = value;  // Init after restart and handle roll-over if any
                                              }
                                              else if (value != Energy.start_energy) {
                                                Energy.kWhtoday = (unsigned long)((value - Energy.start_energy) * multiplier);
                                              }
                                            
                                              if ((Energy.total < (value - 0.01)) &&       // We subtract a little offset to avoid continuous updates
                                                  Settings.flag3.hardware_energy_total) {  // SetOption72 - Enable hardware energy total counter as reference (#6561)
                                                RtcSettings.energy_kWhtotal = (unsigned long)((value * multiplier) - Energy.kWhtoday_offset - Energy.kWhtoday);
                                                Settings.energy_kWhtotal = RtcSettings.energy_kWhtotal;
                                                Energy.total = (float)(RtcSettings.energy_kWhtotal + Energy.kWhtoday_offset + Energy.kWhtoday) / 100000;
                                                Settings.energy_kWhtotal_time = (!Energy.kWhtoday_offset) ? LocalTime() : Midnight();
                                            //    AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total updated with hardware value"));
                                              }
                                              EnergyUpdateToday();
                                            }
                                            
                                            SebHS 1 Reply Last reply Reply Quote
                                            • First post
                                              Last post

                                            0

                                            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
                                              303

                                            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