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.
    • O Offline
      Obi_Yoann @Charles
      last edited by

      @Charles Merci pour ton retour, je pense que mon problème est différent, de base j'étais sans SSL et j'ai pas testé avec (le emoncms est local, je crains pas trop les interceptions) mais j'ai testé à l'instant de désactiver le script (et rebooter) mais pareil toujours autant d'erreur checksum :
      0c8d6e70-e789-4d5f-b09c-3e010f713f42-image.png
      Mon père est passé aussi en TIC Standard sur le sien et très très peu d'erreur, même avec le même script berry que sur le mien et sans skip. Ca sent la différence de compteur, mais je sais pas ce qu'il a...
      Sur la version précompilée de @Nicolas-Bernaerts, je n'ai pas encore testé le script Berry (pas sûr qu'il marche tel quel d'ailleurs, je pense qu'il faut que j'ajoute le support de Berry qui n'est pas dedans je crois de base), mais aucune erreur checksum avec le wemos tic et l'esp32s2. Il interprête, apparemment, tout parfaitement!
      Le energy total est correct, la barre de "charge" est correcte aussi, current est plus précis et active power aussi :
      f5feff4c-c4a6-49b5-8b8c-db314c898897-image.png
      @Nicolas-Bernaerts merci beaucoup! je récupère tout et tente la compilation!!! 😎🙏🏻

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

        @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

        O 1 Reply Last reply Reply Quote
        • O Offline
          Obi_Yoann @Charles
          last edited by

          @Charles said in Tasmota:

          @Obi_Yoann tu n’as pas flashé la dernière version de tasmota spécial car la barre et le contrat sont fixés depuis cette semaine 😉

          Tout à fait!!! Merci de l'info!!!
          Flashé et effectivement la barre fonctionne!
          420c46f7-04ef-43e7-8841-bea6a6d83362-image.png
          Hélas toujours les checksums, et energy total est "négatif".
          Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé! 😅
          En tout cas c'est top, merci!

          @Nicolas-Bernaerts je suis vraiment désolé d'être aussi pénible mais toujours pas possible de compiler hélas avec la dernière release, j'ai bien tout récupéré et replacé aux bons endroits, mais en 12.1.1 et en 12.2.0 j'ai des erreurs à la toute fin de la compilation.
          Le script que je passe pour placer tes fichiers aux bons endroits (j'espère) :

          cp ../tasmota/teleinfo/platformio_override.ini .
          cp ../tasmota/teleinfo/user_config_override.h tasmota/
          cp ../tasmota/common/esp8266_16M14M.json boards/
          cp ../tasmota/teleinfo/xnrg_15_teleinfo.ino tasmota/tasmota_xnrg_energy/
          cp ../tasmota/teleinfo/xdrv_01_9_webserver.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xdrv_50_filesystem_cfg_csv.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xdrv_94_ip_address.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xdrv_96_ftp_server.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xdrv_97_tcp_server.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xdrv_98_esp32_board.ino tasmota/tasmota_xdrv_driver/
          cp ../tasmota/common/xsns_120_timezone.ino tasmota/tasmota_xsns_sensor/
          unzip ../tasmota/common/FTPClientServer.zip -d lib/default/
          
          

          Mon arborescence :
          ~/platformio-core/tasmota (ton repo github)
          ~/platformio-core/Tasmota-12.1.1_MOD (version 12.1.1 avec tes fichiers)
          ~/platformio-core/Tasmota-12.2.0_MOD (version 12.2.0 avec tes fichiers)
          Le script ci-dessus je le passe depuis les dossiers Tasmota*_MOD naturellement.
          Pour la 12.1.1 l'erreur que j'ai :

          Creating filesystem with content:
          No files added -> will NOT create littlefs.bin and NOT overwrite fs partition!
          Unexpected naming conventions in this build environment -> Undefined behavior for further build process!!
          Expected build environment name like 'tasmota32-whatever-you-want'
          Will download safeboot binary from URL:
          http://ota.tasmota.com/tasmota32/release/teleinfo32s2-safeboot.bin
          safeboot binary written to variants dir.
              Offset | File
           -  0x1000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin
           -  0x8000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/partitions.bin
           -  0xe000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin
           -  0x10000 | /home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin
           - 0xe0000 | /home/yoann/platformio-core/Tasmota-12.1.1_MOD/.pio/build/teleinfo32s2/firmware.bin
          usage: esptool merge_bin [-h] --output OUTPUT [--format {r,a,w}]
                                   [--flash_freq {keep,80m,60m,48m,40m,30m,26m,24m,20m,16m,15m,12m}]
                                   [--flash_mode {keep,qio,qout,dio,dout}]
                                   [--flash_size FLASH_SIZE]
                                   [--spi-connection SPI_CONNECTION]
                                   [--target-offset TARGET_OFFSET]
                                   [--fill-flash-size FILL_FLASH_SIZE]
                                   <address> <filename> [<address> <filename> ...]
          esptool merge_bin: error: argument <address> <filename>: [Errno 2] No such file or directory: '/home/yoann/.platformio/packages/framework-arduinoespressif32/variants/tasmota/tasmota32s2-safeboot.bin'
          *** [.pio/build/teleinfo32s2/firmware.bin] Explicit exit, status 2
          ============================================================================================================================= [FAILED] Took 46.89 seconds =============================================================================================================================
          
          Environment    Status    Duration
          -------------  --------  ------------
          teleinfo32s2   FAILED    00:00:46.890
          ======================================================================================================================== 1 failed, 0 succeeded in 00:00:46.890 ========================================================================================================================
          

          J'ai regardé dans le dossier mentionné, je n'ai effectivement pas ce fichier mais un autre :

          (platformio-core) yoann@powerripper:~/platformio-core/Tasmota-12.1.1_MOD$ ls ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/
          teleinfo32s2-safeboot.bin
          

          teleinfo32s2 au lieu de tasmota32s2, aucune idée de pourquoi!
          Avant de compiler teleinfo32s2, et avant d'incorporer tes fichiers via mon script, j'avais compilé avec succès tasmota32s2 depuis ce même dossier Tasmota-12.1.1_MOD (puis j'ai purgé les dossier .cache et .pio).

          Pour la version 12.2.0 :

          Compiling .pio/build/teleinfo32s2/FrameworkArduino/stdlib_noniso.c.o
          Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_pulse.c.o
          Compiling .pio/build/teleinfo32s2/FrameworkArduino/wiring_shift.c.o
          Archiving .pio/build/teleinfo32s2/libFrameworkArduino.a
          Indexing .pio/build/teleinfo32s2/libFrameworkArduino.a
          Linking .pio/build/teleinfo32s2/firmware.elf
          /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
          /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/ccBxihnE.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
          <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
          collect2: error: ld returned 1 exit status
          *** [.pio/build/teleinfo32s2/firmware.elf] Error 1
          ============================================================================================================================= [FAILED] Took 52.68 seconds =============================================================================================================================
          
          Environment    Status    Duration
          -------------  --------  ------------
          teleinfo32s2   FAILED    00:00:52.682
          ======================================================================================================================== 1 failed, 0 succeeded in 00:00:52.682 ========================================================================================================================
          

          Là je sèche complètement, aucune idée de pourquoi ça fait ça. 😞
          Vraiment désolé, je sais pas pourquoi je galère à ce point mais je pense pas être très loin de "la vérité"! ^^

          Nicolas BernaertsN CharlesC 2 Replies Last reply Reply Quote
          • Nicolas BernaertsN Offline
            Nicolas Bernaerts @Obi_Yoann
            last edited by Nicolas Bernaerts

            @Obi_Yoann Hello,
            En fait il faut compiler au préalable tasmota32s2 en version fastboot. Il l'utilise au moment de la compilation pour générer l'image .firmware.bin

            • soit tu la compiles avec le projet tasmota officiel
            • soit tu la récupères depuis le download de tasmota. Tu la places ensuite là où il l'attend ... et cela devrait rouler.

            Je te confirme que la 1ere compilation d'une cible esp32 est toujours galère 😔

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

              @Obi_Yoann said in Tasmota:

              Ah et pour une raison qui m'échappe, le contrat n'est plus bon, j'étais en 6A et j'ai pas changé!

              En fait c'était buggué le contrat en historique est en Ampères et en standard en KVA donc ça affichait 6A au lieu de 6KVA (ce qui fait 30A) donc maintenant c'est correct.

              energy total est "négatif

              tu as bien fait un reset du compteur d'énergie? ca m'est arrivé au début puis ça à disparu il est possible que j'ai un bug mais j'ai regardé ce qu'a fait @Nicolas-Bernaerts je n'ai pas vu de différence, si il a un oeil expert sur le sujet je suis preneur.

              Hélas toujours les checksum

              Peux-tu essayer le programme de test ESP32 Passthru, ça se compile et flash avec l'Arduino IDE (board ESP32 type Denky)

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

                @Nicolas-Bernaerts YES!
                J'ai réussi à compiler la version 12.1.1 avec cette technique! 👍🏻
                Pas possible de compiler la cible tasmota32s2 avec tes fichiers présents, j'ai une erreur sur un include incorrect :

                Indexing .pio/build/tasmota32s2/lib8be/libWire.a
                Archiving .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                Indexing .pio/build/tasmota32s2/liba79/libAdafruit_CCS811-1.0.0.14.a
                Archiving .pio/build/tasmota32s2/lib345/libSPI.a
                Indexing .pio/build/tasmota32s2/lib345/libSPI.a
                /home/yoann/platformio-core/Tasmota-12.1.1_MOD/tasmota/tasmota_xdrv_driver/xdrv_17_rcswitch.ino:44:10: fatal error: RCSwitch.h: No such file or directory
                
                ******************************************************************
                * Looking for RCSwitch.h dependency? Check our library registry!
                *
                * CLI  > platformio lib search "header:RCSwitch.h"
                * Web  > https://registry.platformio.org/search?q=header:RCSwitch.h
                *
                ******************************************************************
                
                 #include <RCSwitch.h>
                          ^~~~~~~~~~~~
                compilation terminated.
                Archiving .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                Indexing .pio/build/tasmota32s2/lib5c1/libAdafruit_MAX31865-1.1.0-custom
                Archiving .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                Indexing .pio/build/tasmota32s2/lib325/libAdafruit_MCP9808_Tasmota.a
                Archiving .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                Indexing .pio/build/tasmota32s2/lib628/libAdafruit_SGP30-1.2.0.a
                

                A la place j'ai téléchargé dans le dossier ~/.platformio/packages/framework-arduinoespressif32/variants/tasmota/ le fichier http://ota.tasmota.com/tasmota32/release/tasmota32s2-safeboot.bin et relancé la compilation de teleinfo32s2, je confirme que ça fonctionne...
                Bref, j'ai pu compiler la version 12.1.1 c'est déjà cool! Merci de ton aide!
                J'essaierais plus tard de regarder pourquoi ça foire avec la 12.2.0, il y a du y avoir une évolution importante sur cette version.

                @Charles mais c'est TRES juste ce que tu dis ma foi! Encore une défaillance de mes yeux, je n'avais même pas remarqué! ^^

                Je vais tenter le reset, je l'avais essayé sur une ancienne version mais pas sur la dernière.

                Je vais aussi tenter l'ESP32 Passthru dont tu parles, mais ça implique un pc pas loin du compteur j'imagine j'ai juste?

                CharlesC 1 Reply Last reply Reply Quote
                • O Offline
                  Obi_Yoann
                  last edited by Obi_Yoann

                  @Nicolas-Bernaerts je reviens sur le sujet compilation de la 12.1.1, a priori le plus simple serait de renommer la cible, au lieu de teleinfo32s2 j'ai changé en tasmota32s2-ticnb et ça compile direct sans manipulation, et sans devoir placer une fichier manuellement... Plutôt cool! Pas encore trouvé de solution pour la 12.2.0...

                  EDIT : ok j'ai la raison de l'erreur lors de la compilation en 12.2.0.
                  Pour rappel j'ai ce message lors de la phase "linking" en fin de compilation :

                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/stdlib_noniso.c.o
                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_pulse.c.o
                  Compiling .pio/build/tasmota32s2-ticnb/FrameworkArduino/wiring_shift.c.o
                  Archiving .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                  Indexing .pio/build/tasmota32s2-ticnb/libFrameworkArduino.a
                  Linking .pio/build/tasmota32s2-ticnb/firmware.elf
                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o:(.literal+0x300): undefined reference to `ESP_getFlashChipRealSize()'
                  /home/yoann/.platformio/packages/toolchain-xtensa-esp32s2@8.4.0+2021r2-patch5/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: /tmp/cc9rHlIH.ltrans5.ltrans.o: in function `HTTPClient::HTTPClient()':
                  <artificial>:(.text+0x428f): undefined reference to `ESP_getFlashChipRealSize()'
                  collect2: error: ld returned 1 exit status
                  *** [.pio/build/tasmota32s2-ticnb/firmware.elf] Error 1
                  ============================================================================================================================= [FAILED] Took 57.43 seconds =============================================================================================================================
                  
                  Environment        Status    Duration
                  -----------------  --------  ------------
                  tasmota32s2-ticnb  FAILED    00:00:57.428
                  ======================================================================================================================== 1 failed, 0 succeeded in 00:00:57.428 ========================================================================================================================
                  

                  Le problème concerne effectivement la fonction ESP_getFlashChipRealSize, appelée dans le fichier xdrv_01_9_webserver.ino ligne 2453 :
                  WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP_getFlashChipRealSize() / 1024);

                  Le problème c'est qu'entre la 12.1.1 et la 12.2.0, la déclaration de cette fonction a sauté dans le fichier ./tasmota/tasmota_support/support_esp.ino !
                  Elle est bien déclarée mais uniquement dans une section ESP8266, plus dans la section ESP32.
                  A priori c'est le commit 452c6fabb05f5700e59c4d9bb90eb4b0cafada47 du 17 septembre : https://github.com/arendst/Tasmota/commit/452c6fabb05f5700e59c4d9bb90eb4b0cafada47
                  d5a99825-6b14-440f-9379-74a4d83ce052-image.png

                  Si je comprends l'évolution suivante :
                  75acc9e1-bdb1-424a-bf97-dc323b7d8825-image.png
                  Il faudrait probablement faire une modification similaire... 🙂

                  EDIT 2 :
                  f029274f-20b8-4179-8dcd-7a98d449c564-image.png
                  Et la lumière fut! 😎
                  J'ai modifié la ligne 2453 du fichier ./tasmota/tasmota_xdrv_driver/xdrv_01_9_webserver.ino comme suivant :

                  WSContentSend_P(PSTR("}1" D_FLASH_CHIP_SIZE "}2%d KB"), ESP.getFlashChipSize() / 1024);
                  
                  Nicolas BernaertsN 2 Replies Last reply Reply Quote
                  • Nicolas BernaertsN Offline
                    Nicolas Bernaerts @Obi_Yoann
                    last edited by

                    @Obi_Yoann très smart ...
                    Je vais tester avec la 12.2
                    Si cela fonctionne, je change le nom de la destination.

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

                      @Obi_Yoann said in Tasmota:

                      Je vais aussi tenter l'ESP32 Passthru dont tu parles, mais ça implique un pc pas loin du compteur j'imagine j'ai juste?

                      yes un portable quelconque avec une console série 🙂

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

                        @Charles Hello,
                        Je pense que la différence se situe ligne 2148 et 2149 de teleinfo.ino. De mémoire c'est la différence de modèle de données apparue avec la version 12.1.

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

                          @Obi_Yoann hello,
                          Bien joué !
                          En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                          #ifdef EXTENSION_NAME
                          "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                          #endif

                          Cela me permet entre autre d'avoir la version de build dans la home page.

                          Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

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

                            @Nicolas-Bernaerts said in Tasmota:

                            @Charles Hello,
                            Je pense que la différence se situe ligne 2148 et 2149 de teleinfo.ino. De mémoire c'est la différence de modèle de données apparue avec la version 12.1.

                            Hello, merci de ta réponse effectivement je faisais

                            Energy.import_active[0] = (float)total/1000.0f;
                            EnergyUpdateTotal();
                            

                            Je vais essayer avec

                            Energy.total[0] = (float) total / 1000.0f;
                            Energy.import_active[0] = Energy.total[0];
                            

                            du coups tu confirmes tu n'appelles jamais EnergyUpdateTotal() ?

                            Edit ah si pardon, c'est pas super clair pour moi de ce qui doit être fait et quand, et j'ai pas trouvé de doc sur le module energy de tasmota

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

                              @Nicolas-Bernaerts said in Tasmota:

                              @Obi_Yoann hello,
                              Bien joué !
                              En fait concernant ce fichier xdrv_01_9_webserver.ino, c'est encore plus simple ... j'ajoute seulement ces lignes au fichier d'origine :

                              #ifdef EXTENSION_NAME
                              "<div style='text-align:right;font-size:11px;'>" EXTENSION_NAME " " EXTENSION_VERSION " <small>(" EXTENSION_BUILD ")</small> " D_BY " " EXTENSION_AUTHOR "</div>"
                              #endif

                              Cela me permet entre autre d'avoir la version de build dans la home page.

                              Donc dans le fichier de la 12.2.0, tu ajoutes ces lignes au même endroit ...et c'est tout.

                              Effectivement c'est bien plus simple et propre! Modification faite et compilée chez moi, ras nickel.
                              Pour info petit script berry pour cette version pour la remontée vers emoncms :

                              import json
                              
                              var api_url = "http://192.168.xxx.xxx/input/post"
                              var api_key = "xxx"
                              var node_name = "ENERGY"
                              
                              def setcolor(iinst, isousc)
                                var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                var green = 255 - red
                                var channels = [red, green, 0]
                                light.set({"channels":channels, "bri":64, "power":true})
                              end
                              
                              def rule_tic(value, trigger)
                                # Convert map to json
                                var obj_json = json.dump(value)
                                # Create URL to call
                                var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                # Post Data to EMONCMS
                                var cl = webclient()
                                cl.begin( api_url + param)
                                var r =  cl.GET()
                                print(r, param) 
                              end
                              
                              # Callback on each MQTT interception
                              tasmota.add_rule("METER",rule_tic)
                              tasmota.add_rule("ENERGY",rule_tic)
                              

                              Cela transmets à emoncms deux objets, METER en fonction du délai de journalisation (par défaut 300s/5mn), et ENERGY apparemment à chaque trame reçue du TIC (si je dis pas de bêtise).
                              Voici ce qui est envoyé pour ENERGY :
                              c63a4a8a-9b8d-4d86-b1db-cceedad41a44-image.png
                              Et pour METER :
                              34444e5d-63a3-43b4-9cf0-858d1101c104-image.png
                              La puissance souscrite utilisée pour calculer le "LOAD" et règler la couleur de la led n'est hélas présent que dans l'objet "METER", du coup que toutes les 5mn (ou moins si on règle moins).
                              C'est une alternative qui peut être intéressante quand on est une buse comme moi en MQTT et pas fichu de comprendre comment faire pour envoyer les données de Tasmota vers emoncms via MQTT!!! 🤣

                              CharlesC Nicolas BernaertsN 2 Replies Last reply Reply Quote
                              • CharlesC Offline
                                Charles @Obi_Yoann
                                last edited by Charles

                                @Obi_Yoann tu as levé un point sur lequel j'ai eu une discussion avec @Barbu-Dor cet après midi. Le berry que j'ai mis en exemple est pas bon, je m'explique le

                                tasmota.add_rule("TIC",rule_tic)
                                

                                que j'avais mis ne tient pas compte du skip (c'est fait comme ça en fait) donc toutes les trames tu post emoncms genre tt les secondes, tu satures le tout et c'est pour ça que j'avais des soucis et de checksum aussi (tu m'étonnes), je ne sais pas comment se comporte la version METER ou ENERGY à tester

                                J'ai réglé ce problème autrement dans le berry à chaque trame j'update les valeurs et je poste seulement toutes les 15s ça donne un truc comme ça beaucoup plus efficace et un payload bien plus light (avec le LOAD).

                                import json
                                var node_name = "maison"
                                var post_every = 15000
                                var payload = {}
                                
                                def send_emoncms()
                                  # Convert JSON object to string 
                                  var obj_json = json.dump(payload)
                                  #print(obj_json) 
                                
                                  # Create URL to call
                                  var param="?fulljson="+obj_json + "&node="+node_name + "&apikey="+api_key 
                                  # Post Data to EMONCMS
                                  var cl = webclient()
                                  cl.begin( api_url + param)
                                  var r =  cl.GET()
                                  #print(r, load, param) 
                                  tasmota.set_timer(post_every, send_emoncms)
                                end
                                
                                def setcolor(iinst, isousc)
                                  var red = tasmota.scale_uint(iinst, 0, isousc, 0, 255)
                                  var green = 255 - red
                                  var channels = [red, green, 0]
                                  light.set({"channels":channels, "bri":64, "power":true})
                                #  tasmota.set_timer(200, led_off)
                                end
                                
                                def led_off()
                                  var channels = [0, 0, 0]
                                  light.set({"channels":channels, "power":true})
                                end
                                
                                def rule_tic(value, trigger)
                                  # Calculate current percent Load 
                                  var iinst = value['IRMS1']
                                  var isousc= value['PREF']*5
                                  if iinst != nil && isousc != nil 
                                    # Drive RGB LED
                                    setcolor(iinst, isousc)
                                    if isousc > 0
                                      load = 100 * iinst / isousc
                                      payload['LOAD'] = load
                                    end
                                  end
                                  # build the light payload 
                                  # Here I keep name of historique mode
                                  payload['ADCO']  = value['ADSC']
                                  payload['HTOT']  = value['EAST']
                                  payload['HCHP']  = value['EASF01']
                                  payload['HCHC']  = value['EASF02']
                                  payload['ISOUSC']= isousc
                                  payload['PAPP']  = value['SINSTS']
                                  payload['IINST'] = iinst
                                end
                                
                                # Callback on each frame interception
                                tasmota.add_rule("TIC",rule_tic)
                                # fire 1st post
                                tasmota.set_timer(post_every, send_emoncms)
                                

                                j'ai aussi un PR en cours pour augmenter la taille du buffer série et régler les soucis de total négatif suite aux conseil de @Nicolas-Bernaerts

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

                                  @Obi_Yoann La fréquence d'envoi de METER est paramétrable a travers Configure / Teleinfo.
                                  Tu peux envoyer METER seulement, ENERGY seulement ou les 2 et le faire à chaque Telemetry ou dès que la puissance varie en %.
                                  Si j'ai bien compris, cela devrait régler ton problème.

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

                                    @Charles Je te confirme que la doc du module Energy est ... minimaliste.
                                    Je suis allé regarder le code de EnergyUpdateTotal pour comprendre ce qui est fait et ce qui doit être mis à jour. A priori cela fonctionne bien ... La prochaine étape sera de gérer les totaux en mode triphasé afin de prendre en compte l'évolution du modèle.

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

                                      @Nicolas-Bernaerts Merci de ton retour.

                                      A quand une intégration de ton travail (qui est bien plus avancé que le mien) en direct dans tasmota ? ça t'éviterais de devoir suivre les montées de version (je sais que c'est lourd pour l'avoir fait) 🙂

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

                                        @Charles c'est une très bonne idée, mais je ne sais par quel bout le prendre. Si quelqu'un peut m'aider à proposer le premier merge request, why not...

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

                                          @Nicolas-Bernaerts ça je peux t'aider j'ai un peu l'habitude
                                          je vois que dans la nouvelle version du coups tu as changé que très peu de fichiers (juste 2) le ficher nrg de téléinfo (ça logique) et juste le web serveur c'est bien ça ?

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

                                            @Charles hello,
                                            C'est cela. Je suis en train de faire évoluer la gestion des graphs pour accélérer l'affichage et afficher les consos annuelles sous forme de bargraph mois/mois.
                                            Mais au final c'est principalement le nrg teleinfo qui évolue.
                                            Mon questionnement sur le merge est le suivant :

                                            • Comment faire pour merger ta version et la mienne côté Teleinfo nrg ?
                                            • Comment faire pour intégrer les librairies ou extensions sur lesquelles je me base (FTP, TCP, CSV, ...) ?

                                            Pour le reste, j'essaye de suivre au maximum les règles de codage de tasmota.
                                            Merci

                                            CharlesC 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
                                              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